![磁盘阵列为何使用的奇偶校验比数据少?](https://linux22.com/image/1538490/%E7%A3%81%E7%9B%98%E9%98%B5%E5%88%97%E4%B8%BA%E4%BD%95%E4%BD%BF%E7%94%A8%E7%9A%84%E5%A5%87%E5%81%B6%E6%A0%A1%E9%AA%8C%E6%AF%94%E6%95%B0%E6%8D%AE%E5%B0%91%EF%BC%9F.png)
我一直在查看如下所示的磁盘阵列计算器:
https://www.synology.com/en-us/support/RAID_calculator
我放入了 16TB(4+6+6),它说我可以有 10TB 的数据和 6TB 的保护。它怎么能提供这些呢?我认为在条带化 4TB 之后,它应该无法保护剩余的 2TB,因为没有足够的信息来解析奇偶校验
我假设奇偶校验以某种方式被压缩。有没有办法证明压缩奇偶校验需要最大空间量,或者它在撒谎,如果无法获得所需的压缩率,就会耍一些恶作剧,比如假装驱动器已满?
答案1
使用 4、6 和 6 TB 三个驱动器,Synology 会将您的数据配置为:
12TB RAID5 阵列使用每个磁盘的前 4TB - 8 TB 的数据、4 TB 的奇偶校验。
两个 6 TB 磁盘的剩余空间上有一个 4TB RAID1 阵列,每个磁盘镜像 2TB 数据(2TB 数据,2TB“奇偶校验”)。
总计:10 TB 数据,6 TB 冗余副本。无需压缩。
答案2
根据阵列的设置方式,您需要防止单个驱动器发生故障,第三个驱动器包含其他两个驱动器的所谓“奇偶校验”信息。
实际上,您得到的是以下过度简化:
- 驱动器 1:数据块 1
- 驱动器 2:数据块 2
- 驱动器 3:包含数据块 1 和数据块 2 总和的数据块
如果数据块 1 损坏,那么您只需取出驱动器 2 上的数据,并将其从驱动器 3 上的数据中减去,即可恢复驱动器 1 上的信息。通过这种方式,您具有弹性,但不需要像完整备份那样多的空间,并且可以扩展到任意数量的驱动器,并为您提供任何故障的容错能力单身的驱动器故障。
这会比读取原始数据慢,而且如果两个驱动器出现故障,也不会保护您的数据,但这确实意味着您只需要使用一个驱动器进行保护,而不必为每个“数据”驱动器配备一个备份驱动器。
以 RAID 1(镜像)为例,您总是会“浪费”总磁盘数的一半,以便在发生故障时提供冗余。在上述主题(RAID 5)中,您可以拥有四个磁盘,但只需使用其中一个磁盘来存储奇偶校验信息,这意味着您现在只使用了四分之一的磁盘空间,而不是使用一半的磁盘空间来保护数据,而将四分之三的磁盘空间用于存储。