假设有两个RAID数组,一个带有N个磁盘,另一个带有N+1磁盘。N个磁盘的数组被格式化为RAID 5,而另一个数组在删除其中一个磁盘之前被格式化为RAID 6。现在这两个阵列都有N个磁盘,N-1个磁盘值可用的存储空间,并且可以在丢失一个(多个)磁盘时存活下来。
?
我知道RAID 5和RAID 6中有不同的“策略”/“对齐”,但这可能超出了这个问题的范围。也许应该假设这两个数组都使用了对两个RAID级别都通用的策略。
发布于 2022-03-01 05:38:02
除了RAID控制器使用的元数据之外,这两个数组之间是否存在差异(在数据布局、性能、可靠性方面)?
是。RAID5使用单个旋转奇偶校验,而RAID6使用2。您可能正在可视化专用奇偶校验磁盘,但它们实际上是旋转的。
RAID5应该相当直截了当:

使用RAID6,想象最后一个磁盘丢失了:

维基百科 *1提供的图表
布局显然不同,与完整的RAID6数组相比,降级的RAID5需要大量额外的抓取和重新计算来补偿丢失的磁盘。
例如,与直接读取B3不同,需要读取B1,B2,Bp,Bq中的任何三个块来重建B3 --注意,这种数据重构只是暂时的,每次访问B3时都需要进行。还请注意,这种随机读取的“读取放大”随磁盘数量的增加而增加。对于更长的、连续的读取,其他块无论如何都必须读取。
根据工作负载和RAID控制器的实现和缓存,被降级的RAID6数组的性能预期要差得多。RAID实现往往是为正常操作和稳定性而优化的,因此降级数组的性能可能低于预期,即使使用大型缓存也是如此。
我是否可以将一个缺少一个磁盘的RAID6数组转换为一个少了期望的磁盘的RAID5,并且最小的“整形”/“重写”?
是的,从理论上讲,因为所有的数据都可以重建。实际上,这取决于当前RAID控制器的功能。因为它需要一个特殊的迁移算法,所以不太可能实现。就我个人而言,我认为我从未见过这样的选择,但我也没有去寻找它。
*1您应该注意到,RAID数组中的数据映射有不同的方法。上面的图表显示了最简单的,而不是优化的方案。其他方案将优化特定的工作负载,用于顺序读取访问的RAID5方案可以是
A1-A2-A3-Ap
B2-B3-Bp-B1
C3-Cp-C1-C2
Dp-D1-D2-D3https://serverfault.com/questions/1095017
复制相似问题