奇偶校验在 RAID-5 阵列上如何工作?

奇偶校验在 RAID-5 阵列上如何工作?

我想建立一个小型 RAID 阵列用于专用备份。我希望有大约 2-4TB 的可用空间,因为我有将所有东西数字化的坏习惯。因此,我需要大量存储空间和大量冗余,以防驱动器发生故障。我还将/home使用 Linux 的“Time Machine”克隆之一备份 2-3 台计算机的文件夹。此阵列将通过 SSH 通过我的本地网络访问。

我很难理解 RAID-5 如何实现奇偶校验以及实际需要多少个驱动器。有人会认为它需要 5 个驱动器,但我可能错了。我看到的大多数图表都让我感到困惑。看来 RAID-5 就是这样工作的,请纠正我,因为我肯定我没有正确理解它:

/---STORAGE---\    /---PARITY----\
|   DRIVE_1   |    |   DRIVE_4   |
|   DRIVE_2   |----|     ...     |
|   DRIVE_3   |    |             |
\-------------/    \-------------/

看起来驱动器 1-3 看起来就像一个单一的、巨大的驱动器 ( capacity * number_of_drives),并且奇偶校验驱动器备份这些驱动器。我觉得奇怪的是,我通常在图表中看到 3 个以上的存储驱动器,而只有 1 个或 2 个奇偶校验驱动器。假设我们在 RAID-5 阵列中运行 4 个 1TB 驱动器,其中 3 个运行存储,1 个运行奇偶校验,我们有 3TB 的实际存储空间,但只有 1TB 的奇偶校验!?

我知道我这里漏掉了一些东西,有人能帮我吗?另外,对于我的用例,哪个更好,RAID-5 还是 RAID-6?目前,容错对我来说是最高优先级,因为它将通过仅供家庭使用的网络运行,速度不是巨大地批判的。

答案1

它只是对每个驱动器中的每个相应位进行异或 - 如果丢失任何驱动器,您可以重新构建丢失的数据。

背景:

A B (A XOR B)
0 0    0
1 1    0
0 1    1
1 0    1

假设 D 是其他列的异或,那么只要您只丢失一个驱动器,您就可以找出丢失了什么。

A B C D
1 0 0 1
0 1 0 1
1 1 0 0

有时,条带位将分布在各个驱动器上,但概念是相同的。

因此对于 RAID-5,无论有多少个驱动器,您只需要 1 个驱动器进行奇偶校验,其等于或大于您想要 RAID 的阵列中最小驱动器的奇偶校验。

对于个人用途来说,RAID-5 可能是最好的,因为计算复杂度比 RAID-6 低得多。

RAID-6 更复杂,使用伽罗华域计算奇偶校验。这会给奇偶校验计算带来负担。但是,您可能会丢失更多驱动器,但如果您在发生单个故障时立即重建阵列,那么坚持使用 RAID-5 应该没问题。

答案2

以下是我认为更好的图表,可以展示 RAID4 和 RAID5 中奇偶校验的工作原理

RAID4

Disk1  Disk2  Disk3  Disk4
----------------------------
data1  data1  data1  parity1
data2  data2  data2  parity2
data3  data3  data3  parity3
data4  data4  data4  parity4

RAID5

Disk1   Disk2   Disk3   Disk4
----------------------------
parity1 data1   data1   data1   
data2   parity2 data2   data2  
data3   data3   parity3 data3
data4   data4   data4   parity4

答案3

我建议你阅读这篇关于 Raid 5 和 Raid 6 的维基百科文章

http://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_5_parity_handling

RAID 5 在每个条带中写入奇偶校验块,因此对于 4 个磁盘阵列的条带 A,它会在第 4 个磁盘上写入奇偶校验,而数据则在磁盘 1、2 和 3 上

对于条带 B,奇偶校验块位于磁盘 3 上,数据位于磁盘 1、2 和 4 上...等等。

如果磁盘 4 发生故障,则可以恢复条带 B 的数据,因为您知道磁盘 1 和 2 上的数据,并且对磁盘 3 进行了奇偶校验。

如果条带 B 的奇偶校验为“2”,磁盘 1 的数据为“1”,磁盘 2 的数据为“0”,则磁盘 4 的数据必定等于“1”,因此磁盘写入的数据为“1”

整个磁盘可以通过这种方式重新创建,RAID 6 通过每个条带有 2 个部分块来扩展此功能。

至于 Raid 5 的空间,您只会丢失一个磁盘的空间来进行奇偶校验,因为它只在每个条带上写入奇偶校验块,而使用 Raid 6 您将丢失 2 个磁盘,但也可能丢失两个磁盘,而不是在 Raid 5 中丢失一个磁盘;)

维基百科文章对此进行了更好的解释!

答案4

如果您的目标是容错,RAID-6 将提供足够的冗余以容许两个驱动器发生故障。通常 RAID-5 仅能容忍单个驱动器发生故障。

相关内容