个人技术空间关于本站

Btrfs 单盘Single模式下替换磁盘

有一块运行 btrfs 的磁盘空间告急,需要替换一块更大的硬盘上去。
下面记录一下过程

环境信息

root@linux:~# cat /etc/issue
Ubuntu 24.04.4 LTS \n \l

root@linux:~# btrfs version
btrfs-progs v6.6.3

首先这种情况下,更换硬盘有两种方式

  1. 直接执行替换Replace。
    • 优点:
      • 数据迁移效率高
      • 后台执行
    • 缺点:
      • 执行过程中磁盘容量不变
  2. 先添加一块新磁盘,然后移除旧的硬盘。
    • 优点:
      • 执行过程中会扩展磁盘容量
    • 缺点:
      • 前台执行(利用 screen 解决)
      • 数据迁移效率低(相当于做了一次Rebalance重平衡)

然而目前磁盘空间只剩下几个 G 了,并且还有数据在一直写入。
所以就算迁移速度慢,也要采用第二种方式,先添加一个磁盘,再移除旧硬盘。

看一下当前的存储情况

root@linux:~# btrfs filesystem show /data/
Label: none  uuid: 975198bd-0476-45d9-afd4-ec62feebd131
	Total devices 1 FS bytes used 194.64GiB
	devid    1 size 200.00GiB used 199.02GiB path /dev/sdc

添加新磁盘,再次查看存储情况

root@linux:~# btrfs device add /dev/sde /data/
Performing full device TRIM /dev/sde (400.00GiB) ...
root@linux:~# btrfs filesystem show /data/
Label: none  uuid: 975198bd-0476-45d9-afd4-ec62feebd131
	Total devices 2 FS bytes used 194.75GiB
	devid    1 size 200.00GiB used 199.02GiB path /dev/sdc
	devid    2 size 400.00GiB used 0.00B path /dev/sde

这是可以看到已经添加了 400G 的硬盘,通过 df 查看能看到分区已经扩容。

接下来移除旧的磁盘

#首先执行 screen 命令启用一个新窗口
#执行移除操作,会在前台卡住
btrfs device remove /dev/sdc /data/
#再将screen窗口放到后台,Mac下是control+A+D的组合键

下面就可以通过查看磁盘使用情况来监控数据迁移状态

root@linux:~# btrfs filesystem show /data/
Label: none  uuid: 975198bd-0476-45d9-afd4-ec62feebd131
	Total devices 2 FS bytes used 196.01GiB
	devid    1 size 0.00B used 196.02GiB path /dev/sdc
	devid    2 size 400.00GiB used 4.00GiB path /dev/sde

可以看到目前已经迁移了 4G 到新的 sde 硬盘中。
等待数据迁移完成,然后把旧硬盘物理移除。

CreateBy:2026-03-09,UpdateBy:2026-03-09

评论

还没有评论,欢迎第一个留言。
← 请输入您的姓名
← 请输入常用邮箱(不会公开)
← 请输入个人网站(可选)
← 请输入评论内容,文明交流
← 请先完成人机验证