btrfs RAID 如何在降级模式下工作?

tur*_*rbo 7 mount btrfs raid

我的想法是(使用环回设备)它是这样工作的

  1. 创建raid数组 sudo mkfs.btrfs -m raid1 -d raid1 /dev/loop1 /dev/loop2
  2. 你安装它们sudo mount /dev/loop1 /mnt并标记它们touch goodcondition
  3. 您卸载并模拟磁盘故障(loop2在我的情况下删除磁盘或删除环回设备)
  4. 您安装降级-o degraded并再次标记touch degraded
  5. 你再次添加坏盘 sudo btrfs dev add /dev/loop2
  6. 你重新平衡 sudo btrfs fi ba /mnt

并且 Raid 1 应该可以再次运行。但事实并非如此。sudo btrfs fi show

Total devices 3 FS bytes used 28.00KB
devid    3 size 4.00GB used 264.00MB path /dev/loop1
devid    2 size 4.00GB used 272.00MB path /dev/loop2
*** Some devices missing
Run Code Online (Sandbox Code Playgroud)

当以降级模式挂载时,该文件degraded存在loop1但不存在。这是为什么?loop2loop2

小智 5

在这种情况下,您需要做两件事。首先,您需要向 btrfs 指示丢失的设备已永久消失:(btrfs dev delete missing /mntmissing指示任何丢失设备的关键字)。其次,您需要重新平衡以确保数据正确复制:btrfs fi balance /mnt


psu*_*usi 4

看起来您添加了第三个设备,因此原来的第二个设备仍然丢失。我想您需要先删除丢失的设备,然后再添加新设备。brtfs 邮件列表也可能是提出这个问题的更好地方。