因此,我开始在 4 驱动器 btrfs RAID10 阵列上遇到文件系统错误,并且btrfsck
无法成功修复它们(进入无限循环,连续几天产生相同的输出)。
绝大多数数据仍然可读,因此重建文件系统似乎是最明智的方法。
鉴于手头没有备用驱动器,到目前为止该计划看起来类似于:
- 删除冗余并将 RAID10“转换”为 RAID0,从而释放两个驱动器;
- 重新格式化新释放的驱动器;
- 将可读数据从旧文件系统复制到新文件系统 (
rsync
/btrfs send | btrfs receive
); - Nuke 旧文件系统;
- 将旧驱动器添加到新文件系统并重新平衡,使其恢复到 RAID10。
问题是第一步该怎么做。据我了解,btrfs device delete
这里不适合,因为它会不断尝试满足 RAID1 配置文件。并且,如何找到可以删除哪两个驱动器以最大程度地减少需要进行的数据整理量?
答案1
要从 RAID10 转换为 RAID0:
- 运行
man btrfs-balance
以熟悉将完成大部分工作的命令。有一些特定于内核版本的警告,以及与是否使用混合块相关的警告。 - 用于
btrfs balance start -mconvert=raid0 -dconvert=raid0 /path
转换文件系统的元数据和数据(系统块也会转换)。正如手册所述,剥离转换需要每个驱动器上有大量可用空间,因此您可能需要单独转换元数据和数据。 - 用于
btrfs device delete /dev/somedevice
删除有问题的设备。
至于根据使用情况确定要删除的驱动器,您可以使用btrfs fi usage /path