我的想法是(使用环回设备)它的工作方式如下
- 创建 raid 阵列
sudo mkfs.btrfs -m raid1 -d raid1 /dev/loop1 /dev/loop2
- 你把它们安装起来
sudo mount /dev/loop1 /mnt
并做标记touch goodcondition
- 卸载并模拟磁盘故障(
loop2
在我的情况下是删除磁盘或删除环回设备) - 你安装降级
-o degraded
并再次标记touch degraded
- 你再次添加坏盘
sudo btrfs dev add /dev/loop2
- 你重新平衡
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
则无法继续使用。这是为什么?loop2
loop2
答案1
在这种情况下,您需要做两件事。首先,您需要向 btrfs 指示丢失的设备已永久消失:(btrfs dev delete missing /mnt
是missing
表示任何丢失设备的关键字)。其次,您需要重新平衡以确保数据得到正确复制:btrfs fi balance /mnt
。
答案2
看起来您添加了第三个设备,因此原来的第二个设备仍然缺失。我猜您需要先删除缺失的设备,然后再添加新设备。brtfs 邮件列表可能也是提出这个问题的更好的地方。