我首先克隆了现有的硬盘,这样我现在就有了两个完全相同的副本。现在我想用它们设置 RAID1,但避免重写添加的磁盘,因为我没有其他存储用于备份,而且我不想冒险只拥有一个副本。
如果我没记错的话,从没有 RAID 配置开始添加/dev/sdb
的正常程序是:/dev/sda
/dev/sda
btrfs device add /dev/sdb /
btrfs balance start -dconvert=raid1 -mconvert=raid1
但 btrfs-device 手册说:
如果适用,在添加设备之前执行整个设备丢弃 (TRIM) 操作。 blkid(8) 检测到具有现有文件系统的设备将阻止设备添加,并且必须强制添加。操作即时且不影响现有数据。
我应该如何执行?
答案1
btrfs 的逐字节克隆非常危险,请阅读以下内容:
https://btrfs.wiki.kernel.org/index.php/Gotchas#Block-level_copies_of_devices
将现有 btrfs 转换为 btrfs RAID1 的唯一方法是执行您在问题中提到的命令,但在此之前您必须手动擦除其中一个驱动器 ( wipefs -a /dev/sdX
),因为必须安装要扩展的 btrfs 并且您当带有该 btrfs 副本的块设备对内核可见时,切勿尝试挂载它。
如果您在某个时候不小心这样做了,则可能损坏了其中一个副本或两者,因此至少对要扩展的 btrfs 运行清理和只读检查(为此断开另一个驱动器与系统的连接)当然)。
如果您的 btrfs 中有 >50% 的可用空间,您可能可以在转换时始终在 2 个设备上保留至少 2 个副本,但使用全驱动器 btrfs' 时,这比分区更难。