RAID 1和RAID 5(及其兄弟10和50)分别通过镜像和奇偶校验实现数据冗余。这样,当磁盘(或整个磁盘)上的扇区变得不可读时,RAID阵列仍可以访问数据。RAID 6(或60)使用附加检查以允许出现双重故障。
但是,RAID阵列如何处理完全不可读但完全不一致的数据?
如果发生某些错误,从而使条带上的fe数据在磁盘上发生更改,但该更改未传播到其他磁盘,则整个条带将变得不一致。如果在一个镜像集中,一个磁盘说“此位为0”,而另一个磁盘说“此位为1”,那么RAID控制器如何知道哪个是正确的?可以将相同的推理应用于RAID-5条带,但是增加了复杂性,您不容易知道该条带中哪个扇区实际出错。另外,RAID 6是否具有双重优点来缓解该问题,或者当数据实际可读但在某些地方错了,尤其是RAID 6阵列往往有很多磁盘时,它仍然可能无法从数据损坏中恢复吗?
从理论上讲,这可以通过校验和解决,以确保数据(或奇偶校验)的哪个副本是正确的;但是,任何RAID控制器是否实际上实现了这种校验和(这当然会占用额外的空间)?还是需要在大多数文件系统可以并且将对它们的内容进行校验的操作系统级别上进行处理?如果是这种情况,那么当RAID控制器的一般方法是从底层存储层抽象出尽可能多的操作系统时,他们如何告诉RAID控制器“条带Z上磁盘Y的扇区X上的数据错误”。可能?