Answers:
让Btrfs做所有事情。
一方面,Btrfs具有自己的集成镜像代码,该代码比madm更为智能。
当然,如果磁盘在madm raid10中以镜像对的形式严重损坏,则可以更换坏磁盘并继续使用(尽管经过一系列令人痛苦的复杂Shell命令)。问题是磁盘是否软故障了:如果有几个块只是返回错误的位,而不是为坏块提供适当的错误代码,那么在读取数据时,您将随机获得坏数据。Btrfs比这更聪明:它对数据的每一位进行校验。老实说,我不知道说“每个BTree节点”还是“每个块”是否更正确,但要点是,当它从镜像数组中读取某些数据时,它会先检查校验和,然后再将其返回给您。用户空间过程。如果校验和不匹配,它将首先查询阵列中的另一个镜像,如果给出正确的校验和,
如果Btrfs要依靠设备映射器或MD进行镜像,则它将无法通过检查镜像副本来解决校验和失败。较低的层不知道文件系统块的校验和或粒度,因此它们无法验证返回的数据。
最后,即使没有这种实质性的优势,用于处理已删除或已添加的Btrfs设备的命令行工作流程也非常简单。我什至不确定我能否正确地执行“ degraded-mount-then-fix-your-files” shell命令,但是对于Btrfs,它在多个设备页面上的记录非常清楚,如下所示:
mount -o degraded /dev/sdb /mnt
btrfs device delete missing /mnt
此时,如果您剩余的磁盘上有足够的空间,则可以总是公正btrfs rebalance
地完成它;无需更换镜子,因为您绝对需要使用madm!如果要替换它,则可以btrfs device add
先执行。