BTRFS在RAID1模式下添加了新设备,如何删除?

BTRFS在RAID1模式下添加了新设备,如何删除?

我的磁盘空间不足,所以我像平常一样清理了旧快照。这次,df -h /坚持显示“没有可用空间”,同时btrfs fi df /显示了几 GB 的空间,所以我决定运行一个btrfs balance.

btrfs balance由于“空间不足”错误而失败,我在网上搜索并定向到这篇博文建议通过临时添加一个能够运行的小型设备(甚至是 USB 闪存盘)来解决此问题btrfs balance,然后在完成后将其删除。

我将我的随身碟添加到我的 rootfs 中:

btrfs dev add /dev/sdc1 /

没有显示错误,现在我有一些可用空间。我运行btrfs balance并完成后,我尝试删除 U 盘:

sudo btrfs dev del /dev/sdc1 /
ERROR: error removing device '/dev/sdc1': unable to go below two devices on raid1

BTRFS 以某种方式决定使用 RAID1 配置文件中的驱动器来存储元数据和系统数据:

$ sudo btrfs fi usage / 
Overall:
    Device size:         864.53GiB
    Device allocated:        857.05GiB
    Device unallocated:        7.48GiB
    Device missing:          0.00B
    Used:            830.28GiB
    Free (estimated):         24.93GiB  (min: 21.23GiB)
    Data ratio:               1.00
    Metadata ratio:           2.00
    Global reserve:      512.00MiB  (used: 0.00B)

Data,single: Size:828.01GiB, Used:810.56GiB
   /dev/mapper/masa-root     828.01GiB

Data,RAID1: Size:2.02GiB, Used:2.01GiB
   /dev/mapper/masa-root       2.02GiB
   /dev/sdc1       2.02GiB

Data,DUP: Size:2.00GiB, Used:1.94GiB
   /dev/sdc1       4.00GiB

Metadata,RAID1: Size:2.97GiB, Used:131.61MiB
   /dev/mapper/masa-root       2.97GiB
   /dev/sdc1       2.97GiB

Metadata,DUP: Size:7.50GiB, Used:5.78GiB
   /dev/mapper/masa-root      15.01GiB

System,RAID1: Size:32.00MiB, Used:128.00KiB
   /dev/mapper/masa-root      32.00MiB
   /dev/sdc1      32.00MiB

Unallocated:
   /dev/mapper/masa-root       1.97GiB
   /dev/sdc1       5.51GiB

如何正确删除这个临时设备?

答案1

man btrfs device

删除设备

设备删除必须满足配置文件约束,否则命令将失败。例如:

$ btrfs device remove /dev/sda /mnt
  ERROR: error removing device '/dev/sda': unable to go below two devices on raid1

为了删除设备,您需要在这种情况下转换配置文件:

$ btrfs balance start -mconvert=dup -dconvert=single /mnt
$ btrfs device remove /dev/sda /mnt

相关内容