RAID 控制器如何确定哪个磁盘有故障?

RAID 控制器如何确定哪个磁盘有故障?

因此我想到,使用 XOR 奇偶校验我无法确定条带集中哪个磁盘有故障。

假设磁盘组中的某个磁盘正在悄悄地翻转盘片上的位(又称为位衰减),例如由于固件损坏。该磁盘没有发生故障或报告坏块,但它偶尔会向磁盘提交输入以外的内容。

与任何其他校验和一样,使用 XOR 不会说明条带中的哪个磁盘是导致奇偶校验计算错误的原因,但您知道其中一个磁盘有问题。

鉴于 raid 5 的限制,这种情况必须以某种方式解决,但老实说,我不明白。我可以想象,具有水平(raid-4'ish)和对角奇偶校验的 raid-6 可以对坏块进行三角测量并显示哪个磁盘包含坏区……但这个问题与 raid-5 组有关。

先感谢您。

答案1

RAID 控制器通过查看哪个磁盘出现 I/O 错误或没有响应来确定哪个磁盘有故障。

现代硬盘(即过去 20 年左右制造的硬盘)使用扇区级 ECC 来发现和纠正位翻转错误。当前使用的 ECC 系统可以纠正扇区中的任何单比特错误,并可以发现所有双比特错误。如果重复读取某个扇区始终产生单比特错误,驱动器固件将默默地将该扇区重新映射到驱动器的未使用部分(所有现代硬盘都为此留有一点备用空间);如果产生双比特错误,固件将向控制器报告 I/O 错误,RAID 控制器将标记驱动器为故障。为了使数据损坏到无法检测的程度,单个扇区中至少需要翻转三个比特——这种情况极其罕见。

如果您怀疑坏固件导致位翻转,您可以通过运行一致性检查在 RAID 级别(针对 RAID 1、10、5 和 6)发现此问题,但这只会告诉您存在奇偶校验/镜像不匹配的条带;它不会告诉您哪个驱动器坏了。您可以通过从阵列中拉出驱动器并使用您最喜欢的磁盘检查工具对坏块运行“表面扫描”来找到坏驱动器:如果固件坏了,扫描应该会发现数十万个坏扇区。

相关内容