假设您有两个 RAID 阵列,一个有 N 个磁盘,一个有 N+1 个磁盘。具有 N 个磁盘的阵列被格式化为RAID 5并单独放置,而另一个阵列在其中一个磁盘被移除之前被格式化为RAID 6 。现在两个阵列都有 N 个磁盘,N-1 个磁盘的可用存储空间,并且可以在丢失一个(更多)磁盘的情况下幸存下来。
除了 RAID 控制器使用的任何元数据之外,这两个阵列之间是否有任何区别(在数据布局、性能和可靠性方面)?我是否可以将缺少一个磁盘的 RAID 6 阵列转换为具有最少“重塑”/“重写”的预期磁盘的 RAID 5?
我知道 RAID 5 和 RAID 6 中有不同的“策略”/“对齐方式”,但这可能超出了这个问题的范围。也许应该假设两个阵列都使用两个 RAID 级别通用的策略。
是的。RAID5 使用一个旋转奇偶校验,而 RAID6 使用两个。您可能正在可视化专用奇偶校验磁盘,但它们实际上是在旋转。
RAID5 应该相当简单:
使用 RAID6,想象最后一个磁盘丢失:
图表由维基百科提供[*1]
布局明显不同,与完整的 RAID5 阵列相比,降级的 RAID6 需要大量额外的获取和重新计算以补偿丢失的磁盘。
例如,不是直接读取 B3,而是需要读取 [B1, B2, Bp, Bq] 中的任意三个块来重构 B3 - 请注意,此数据重构只是暂时的,需要在每次访问 B3 时进行。另请注意,随机读取的“读取放大”会随着磁盘数量的增加而增加。对于更长的顺序读取,无论如何都必须读取其他块。
预计降级的 RAID6 阵列的性能会更差,具体取决于工作负载以及 RAID 控制器的实施和缓存。RAID 实现倾向于针对正常操作和稳定性进行优化,因此即使使用大缓存,降级阵列的性能也可能低于预期。
是的,理论上,因为所有数据都可以重建。实际上,这取决于手头的 RAID 控制器的功能。由于它需要特殊的迁移算法,因此实现的可能性不大。就个人而言,我认为我从未见过该选项,但我也没有一直在寻找它。
[*1] 您应该注意,在 RAID 阵列中映射数据有不同的方法。上图显示了最简单的、未优化的方案。其他方案将优化特定的工作负载,并且用于顺序读取访问的 RAID5 方案可能是