RAID如何处理不一致的数据?


8

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上的数据错误”。可能?


这就是“巡更读取”或背景一致性检查的目的。
ewwhite

2
这对于在出现实际错误之前及早发现坏块并将数据移动到其他位置很有用。但是它仍然必须处理可读但不一致的数据。以我的RAID-1为例:如果一个磁盘上的一个块可读并且显示为“ 0”,而另一个磁盘上的同一块可读并且显示为“ 1”,那么控制器如何才能知道哪个是正确的呢?
马西莫

由于RAID 1不提供奇偶校验,因此系统将很难检测和纠正问题。您可能必须拉出驱动器并单独读取它们才能获取损坏的文件。
Brian D.

简单的解决方案-使用ZFS
Patrick

Answers:


3
RAID VOLUMES WITH PARITY STRIPE

在一致性检查期间,我们在Areca控制器(以及所有现代硬件RAID控制器)上使用的控制器可以检测到奇偶校验数据,磁盘上的物理数据或两者是否损坏。大多数控制器使用奇偶校验数据和磁盘数据上的简单校验和位来完成此操作。

如果奇偶校验数据已损坏,则在运行一致性检查并重新读取物理磁盘上的正确位并重写奇偶校验条带时,控制器将注意到该问题。用户不会看到任何问题,因为他们在打开文件时正在读取磁盘上的数据。重新保存任何会导致损坏的奇偶校验条带重新写入的内容,也可以解决此问题。

如果发生相反的情况,并且实际磁盘数据有一些翻转,则控制器将在一致性检查期间查看奇偶校验条带,以查看其是否已更改。在这种情况下,控制器将覆盖磁盘上的数据以匹配奇偶校验数据,该奇偶校验数据可以确认其不变/良好。在运行一致性检查并更正错误之前,用户将根据数据是CRC错误或文件损坏。

由于特定磁盘数据的奇偶校验数据永远不会与实际数据存储在同一驱动器上,因此单个驱动器发生故障不会造成任何数据损坏问题。或两个磁盘用于RAID6等。

一致性检查可确保您的数据尽可能准确,如果您让损坏的数据在卷上放置足够长的时间,它可能会被写入奇偶校验数据,这意味着该文件已完全损坏,需要从备份中还原。如果驱动器处于故障前状态(在一致性检查期间显示错误),请立即更换驱动器,而不必等待控制器将其标记为故障。我们每天对较小的卷进行一致性检查,而每周对较大的卷进行一致性检查。

RAID VOLUMES WITHOUT PARITY STRIPE (EX. RAID1)

硬盘驱动器控制器/固件可能能够纠正此问题。如果不可能,则RAID控制器将很难解决该问题。在这种情况下,您可能必须单独读取驱动器以恢复数据。

GENERALLY SPEAKING

以RAID卡制造商建议的间隔运行一致性检查。如果您真的担心损坏,则还可以在RAID卷上堆叠弹性文件系统。现代的弹性文件系统可以纠正许多这些数据完整性问题,并且在RAID6上堆叠弹性FS将为您提供出色的数据正常运行时间而不会损坏。即使发生2个同时发生的驱动器故障,您仍然可以使用FS奇偶校验数据,以避免向用户显示损坏的数据。


2

您可以有效地描述一种情况,即一个磁盘写入(或读取)错误。RAID控制器没有实用的方法(例如,写和回读会降低性能)来防止这种情况。它必须依靠磁盘能够检测到此类错误,并使用其他块或从卷中解脱出来-导致RAID降级。

如果您考虑单磁盘的情况,那么防止写(或读)不一致的唯一保护措施就是磁盘本身。RAID在此基础上构建,但不引入其他保护措施。

注意:根据经验,我知道XFS对阵列中的错误磁盘的反应非常明智。因此,至少我的非低端控制器和操作系统确实能够识别但不能防止这种不一致(已知的故障磁盘被强行添加到卷中)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.