RAID 5 奇偶校验位 - 恢复数据

RAID 5 奇偶校验位 - 恢复数据

这是一个老话题,但我对 RAID 5 奇偶校验位有一个疑问,令我困惑。

我的问题是:

因此,在对 RAID 5 的每一个解释中,都会提到 RAID 5 在每个磁盘上都有奇偶校验位。并且在每个演示中,所有来源都显示 RAID 5 如下:

Disk 1 | Disk 2 | Disk 3 | Disk 4
Data     Data     Data     Parity
Data     Data     Parity   Data
Data     Parity   Data     Data
Parity   Data     Data     Data
             Figure a

互联网上展示 RAID 5 的资料显示,每个磁盘的块中都有一个奇偶校验位(仅 1)。这在 4 个磁盘 4 个块的情况下是有意义的,因为如果例如磁盘 4 发生故障,我们可以恢复所有数据,因为我们拥有精确数量的奇偶校验位来恢复磁盘 4 中丢失的所有数据。但是,为了恢复更多块磁盘(例如 8 个块)中的数据,情况应如下所示:

Disk 1 | Disk 2 | Disk 3 | Disk 4
Data     Data     Data     Parity
Data     Data     Parity   Data
Data     Parity   Data     Data
Parity   Data     Data     Data
Data     Data     Data     Parity
Data     Data     Parity   Data
Data     Parity   Data     Data
Parity   Data     Data     Data
             Figure b

问题是,正如我提到的,所有资料都说 RAID 5 在每个磁盘上都有 1 个奇偶校验位,就像我在图 a 中显示的那样。但是,为了从 8 个块存储中恢复数据,我们需要类似图 b 的东西,这样 1 个磁盘中就有 2 个奇偶校验信息(如果磁盘更多,奇偶校验信息应该更多)。但是,RAID 5 的解释并没有这样解释,而且还有 RAID 6 配置,其特点是具有 2 个奇偶校验位。所以这种情况完全是错误的。正确的图片应该是这样的:

Disk 1 | Disk 2 | Disk 3 | Disk 4
Data     Data     Data     Parity
Data     Data     Parity   Data
Data     Parity   Data     Data
Parity   Data     Data     Data
Data     Data     Data     Data
Data     Data     Data     Data
Data     Data     Data     Data
Data     Data     Data     Data
             Figure c

在这种情况下,RAID 5 的解释是准确的。让我们再次假设磁盘 4 已损坏。磁盘 4 中第 5、6、7 和第 8 个块中的数据将如何恢复?我的假设是,raid 控制器取 1 个奇偶校验位(例如,磁盘 1 的奇偶校验位),然后从磁盘的第 5 个块(第 2、3 个磁盘的第 5、6、7、8 个块)对第 1 个磁盘的奇偶校验(第 1 个磁盘的第 4 个块(奇偶校验))的奇偶校验位和磁盘 2 和 3 的第 5、6、7、8 个块中的数据进行异或。这样,raid 控制器可以取一个随机奇偶校验位,并对第 1、2、3 个磁盘的数据进行异或,这些数据来自第 5、6、7 和第 8 个块。我想我的假设是错误的。

问题的摘要是,RAID 5如何处理奇偶校验位并使用8块磁盘恢复数据?

谢谢大家的关心。

我的消息来源是: https://datapacket.com/blog/advantages-disadvantages-various-raid-levels/ https://searchstorage.techtarget.com/definition/RAID http://sort.symantec.com/public/documents/sfha/6.2/aix/productguides/html/sfcfs_admin/ch03s03s09.htm https://blog.open-e.com/how-does-raid-5-work/ http://www.freeraidrecovery.com/library/raid-5-6.aspx

答案1

图b是正确的。

首先,您使用“位”这个词来表示“块”。位是 0 或 1。我们谈论的是“数据块”和“奇偶校验块”(或“奇偶校验单元”,取决于来源,但不仅仅是单个“位”)。理论上,块的大小可能是 1 位,但实际上 512 字节是最小值,因为这是块设备的常见扇区大小。

你的一个消息来源包含三块磁盘和四条带组成 RAID 5 的图片。其中一个磁盘包含两个奇偶校验块(这显然与您的图c)然后文章写道:

每个条带都有一个包含奇偶校验条带单元的列和包含数据的列。奇偶校验分布在阵列中的所有磁盘上 [...]

(要清楚:在您的图中,条纹是一条单线,就像Data Data Parity Data)。

这意味着在 RAID 5 中,每个条带(不是“每个磁盘”!)都恰好有一个奇偶校验块(在 RAID 6 中,每个条带都恰好有两个奇偶校验块)。如果一个磁盘发生故障(RAID 6 最多两个磁盘),每个条带都包含足够的信息,可以独立于其他条带重建此特定条带的缺失部分。

相关内容