我想建立一个小型 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 仅能容忍单个驱动器发生故障。