是在mdadm raid10顶部的Btrfs,还是在裸机上的btrfs raid10?


9

我有一个由管理的RAID10,mdadm并且在它上面有EXT4文件系统。但是,我喜欢BTRFS,并且想将EXT4文件系统转换为BTRFS,但是我在考虑性能和可维护性。对于使用BTRFS的示例,我无法像使用mdadm一样轻松地查看将磁盘移除/添加到阵列中时的状态(或者也许我只是不知道如何-我搜索了BTRFS文档,但找不到该状态)。

因此,根据您的经验,更好的选择是:

  1. 只需转换EXT4文件系统并让mdadm管理RAID10?

  2. 要摆脱mdadm,让BTRFS做所有事情?

Answers:


11

让Btrfs做所有事情。

一方面,Btrfs具有自己的集成镜像代码,该代码比madm更为智能。

当然,如果磁盘在madm raid10中以镜像对的形式严重损坏,则可以更换坏磁盘并继续使用(尽管经过一系列令人痛苦的复杂Shell命令)。问题是磁盘是否软故障了:如果有几个块只是返回错误的位,而不是为坏块提供适当的错误代码,那么在读取数据时,您将随机获得坏数据。Btrfs比这更聪明:它对数据的每一位进行校验。老实说,我不知道说“每个BTree节点”还是“每个块”是否更正确,但要点是,当它从镜像数组中读取某些数据时,它会先检查校验和,然后再将其返回给您。用户空间过程。如果校验和不匹配,它将首先查询阵列中的另一个镜像,如果给出正确的校验和,

Btrfs Wiki特别提到了您的问题

如果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先执行。


3

BTRFS仍处于试验阶段,如果某些应用程序崩溃,您可能会获得“有趣的”功能。如果您确实有/想要运行btrfs,那么在软件团队之上运行它比直接运行它要安全得多。当btrfs成熟并投入生产时,这可能不再成立。


大约一年前,我在VM中尝试了btrfs设置。通过弄混rebalance命令,我能够始终如一地锁定内核(!)。时间已经过去,希望这个问题已经解决。
艾利·佩恩
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.