BTRFS 提供的保证(这使它看起来像常规 raid 10)是保证每条数据都存在于两个不同的驱动器上,因此文件系统将在单个驱动器发生故障时幸存下来。与常规 raid 10 相比,它没有提供的是,如果两个驱动器发生故障,您很可能会丢失文件系统,而如果两个故障驱动器位于不同的集群中,则常规 raid 10 可以幸存。
这是真的?如果这是真的,Raid 10 的优势是什么?我在官方维基或文档中没有看到提到这一点?我应该如何考虑 BTRFS 的 Raid 10 提供的与设备故障相关的冗余?
答案1
这是事实,因为 BTRFS 在细粒度块级别而不是设备级别实施 RAID10 等策略。
在一个块中,您可以在两次磁盘故障中幸存下来,就像整个设备上的经典 RAID10 一样,但在大多数情况下,一个块只有 1GiB。一旦您将超过 1GiB 的数据写入文件系统,数据的不同部分将容忍辅助磁盘故障的不同组合;这意味着,很可能您将失去至少部分数据的可用性,而其他数据仍然可用。
鉴于元数据和数据位于不同的块组中,因此 btrfs 中至少有两个包含任何数据的块。
然而,依赖经典 RAID10 在两次磁盘故障中幸存的可能性是相当值得怀疑的。强烈建议您在任何一种情况下都只期待对一次故障的抵抗。