“降级”的 RAID 6 阵列和“干净”的 RAID 5 阵列之间有什么区别?

“降级”的 RAID 6 阵列和“干净”的 RAID 5 阵列之间有什么区别?

假设您有两个 RAID 阵列,一个有 N 个磁盘,另一个有 N+1 个磁盘。具有 N 个磁盘的阵列格式化为RAID 5并保持原样,而另一个数组被格式化为RAID 6在其中一个磁盘被移除之前。现在两个阵列都有 N 个磁盘,N-1 个磁盘的可用存储空间,并且可以承受一个(或多个)磁盘的丢失。

除了 RAID 控制器使用的任何元数据之外,这两个阵列之间还有什么区别吗(在数据布局、性能和可靠性方面)?我是否可以将缺少一个磁盘的 RAID 6 阵列转换为缺少一个预期磁盘的 RAID 5,并且只需进行最少的“重塑”/“重写”?

我知道 RAID 5 和 RAID 6 中有不同的“策略”/“对齐”,但这可能超出了这个问题的范围。也许应该假设两个阵列都使用两个 RAID 级别通用的策略。

答案1

除了 RAID 控制器使用的元数据之外,这两个阵列之间还有什么区别吗(在数据布局、性能、可靠性方面)?

是的。RAID5 使用单个旋转奇偶校验,而 RAID6 使用两个。您可能正在想象专用奇偶校验磁盘,但它们实际上是旋转的。

RAID5 应该相当简单:

在此处输入图片描述

对于 RAID6,想象一下最后一个磁盘丢失:

在此处输入图片描述

图表来源:维基百科[*1]

布局显然不同,与完整的 RAID5 阵列相比,降级的 RAID6 需要大量额外的获取和重新计算来补偿丢失的磁盘。

例如,不是直接读取 B3,而是需要读取 [B1、B2、Bp、Bq] 中的任意三个块来重建 B3 - 请注意,这种数据重建只是暂时的,每次访问 B3 时都需要进行。还请注意,随机读取的这种“读取放大”会随着磁盘数量的增加而增加。对于较长的连续读取,无论如何都必须读取其他块。

性能下降的 RAID6 阵列预计性能会更差,具体取决于工作负载和 RAID 控制器实施和缓存。RAID 实施往往针对正常运行和稳定性进行了优化,因此性能下降的阵列性能可能会低于预期,即使缓存较大。

我是否可以将缺少一个磁盘的 RAID6 阵列转换为缺少一个预期磁盘的 RAID5,并且只需进行最少的“重塑”/“重写”?

是的,理论上是的,因为所有数据都可以重建。实际上,这取决于手头的 RAID 控制器的功能。由于它需要特殊的迁移算法,因此实现的可能性不大。就我个人而言,我认为我从未见过这种选择,但我也没有寻找过它。

[*1] 您应该注意到,在 RAID 阵列中映射数据的方法有很多种。上图显示的是最简单的方案,但不是优化方案。其他方案会优化特定的工作负载,而用于顺序读取访问的 RAID5 方案可能是

A1-A2-A3-Ap
B2-B3-Bp-B1
C3-Cp-C1-C2
Dp-D1-D2-D3

相关内容