4

分享关于Linear模式扩容替换硬盘的操作步骤

发表于:2024-10-9 13:00:40 攻略分享 359
首先感谢飞牛团队,给大家带来了非常优秀的产品。
以个人为例,比如两块硬盘组的Linear存储池,空间写满后,增加一块更大的硬盘,替换掉原来的小硬盘,对于我来说是刚需的应用场景。
WEB端只支持扩容,不支持替换硬盘。经过查阅资料和尝试,和大家分享Linear模式扩容替换硬盘的操作步骤。

一、测试环境
虚拟机,飞牛OS v0.8.20,添加了1G、2G、3G共三块硬盘。

1G+2G创建Linear存储池


写入2.1G的文件占用存储池


二、操作步骤
1.在WEB端添加3G的硬盘扩容




2.在终端运行 sudo pvdisplay 查看硬盘卷组结构。我这里1G对应sdc1、2G对应sda1、3G对应sdd1。
根据提示输入管理员密码,下同。



运行 lsblk 记下红框中的一串数字备用



2.此时3G硬盘中应该没有数据,但是freePE(可以理解为卷组的最小存储单元)为0,被预分配了,无法转存其他硬盘数据,需要先进行缩容,释放freePE。
在终端运行 sudo lvreduce -L -2.5G /dev/mapper/trim_3db66039_852a_489c_933e_2549addc03bf-0
以上参数中,缩容的2.5G,建议略小于新硬盘的容量,trim_xxx就是红框中的数字。



3. 将1G硬盘sdc1的数据移动到3G硬盘sdd1
在终端运行 sudo pvmove /dev/sdc1 /dev/sdd1



4. 将1G硬盘sdc1从卷组中删除
sudo vgreduce trim_3db66039_852a_489c_933e_2549addc03bf /dev/sdc1
注意:这时trim_xxx最后面的-0要删除



5. 将1G硬盘sdc1从物理卷中删除
sudo pvremove /dev/sdc1




6. 恢复卷组至全部可用空间
sudo lvextend -l +100%FREE /dev/mapper/trim_3db66039_852a_489c_933e_2549addc03bf-0
注意:这时trim_xxx最后面要加-0

可以看到可用空间已经变为4.99G(2G+3G)

7. 重启机器,此时会报错,因为存储空间大小不一致导致的,WEB端无响应,不要着急



8. SSH终端输入sudo btrfs rescue fix-device-size /dev/dm-0
修复btrfs ctree


9. 再次重启机器,进入WEB端,存储空间变为3G+2G组成的Linear,1G硬盘空闲可以拔出,原文件没有影响




以上是全部流程,缩容时要妥善选择大小,不然有数据丢失风险,适合有一定基础的同学尝试。

收藏
送赞 4
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

发表回复

评论列表(5)

好帖,正好需要更换硬盘,学习了!
2024-10-10 11:28:53 回复
先mark一下 之后硬盘空间不够了可能用得着
锁容时是不是对硬盘使用量有一定需求 太满了就缩不了?
2024-10-10 13:59:54 回复
太满了强行缩容肯定会丢数据。靠谱的操作是先添加新硬盘,缩容空间略小于新硬盘容量,保证缩容的部分没有碰到旧硬盘的数据  详情 回复
6 天前
太满了强行缩容肯定会丢数据。靠谱的操作是先添加新硬盘,缩容空间略小于新硬盘容量,保证缩容的部分没有碰到旧硬盘的数据
6 天前 回复
很好的贴子,刚好要换一块硬盘。缩容空间略小于的量是否也可以理解为大于磁盘空间已经使用的量即可?
6 小时前 回复
比如我现在挂载的是两个1t和一个4t,已用4t多,现把一个1t换为一个4t,缩容容量应该为多少合适? 还有就是第8步重启后还会报错么  详情 回复
6 小时前
比如我现在挂载的是两个1t和一个4t,已用4t多,现把一个1t换为一个4t,缩容容量应该为多少合适?
还有就是第8步重启后还会报错么
6 小时前 回复
rayzhang86

TA还没有介绍自己~

0

主题

2

回帖

2

积分

江湖小虾

积分
2
话题