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

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

文件degraded可以继续使用,但在降级模式下安装时loop1则无法继续使用。这是为什么?loop2loop2

答案1

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

答案2

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

相关内容