我一直在查看我的raid 设置,我开始非常讨厌raid 1。在驱动器故障期间,您不知道另一个驱动器上的数据是否正确。如果一个驱动器读取 1 而另一个驱动器读取 0 而没有失败呢?你怎么知道哪个驱动器是正确的?
当然,您可以使用 raid 6,但它至少需要 4 个驱动器。我认为您只需 2 个驱动器就可以做到这一点。
我想出了几个突袭级别,但为什么它们不存在?
- 突袭单个驱动器,该驱动器也使用前向纠错,如 par2
- 与 #1 类似,但也已镜像(现在您可以确保数据在故障期间正确无误)
这将需要一些定制硬件来快速执行 par2 计算。此外,由于它的 par2,对于您添加到阵列的每个驱动器,par2 文件可以越来越小,因为冗余量是 par2 文件总大小的总和。请参阅此以了解有关 par2 的更多信息:http ://www.quickpar.org.uk/AboutPAR2.htm
您只需要一个 ZFS 镜像。基于 COW 和恒定校验和,您可以得到一致的数据。
如果问题是“为什么不能使用具有纠错功能的单个驱动器进行 RAID”,答案在 RAID(独立磁盘冗余阵列)的“R”中......磁盘故障将没有冗余。RAID 并非旨在防止数据损坏(如 par2 那样),它旨在防止磁盘故障。具有 par2 的单个磁盘上的磁盘故障会使纠错校验和随数据下降,使您根本没有数据。
根据定义,RAID 不能在单个驱动器上完成,因为 RAID 是“独立磁盘冗余阵列”或“廉价磁盘冗余阵列”,具体取决于您询问的对象。
适当的 RAID 控制器不会将不同的数据写入每个驱动器。当数据写入一个磁盘时,它也会写入另一个磁盘。如果一个磁盘不接受写入,则该块应标记为坏。如果磁盘仍然不可用,则应将其标记为失败。
正如 smearp 所写,RAID 并非旨在防止数据问题。它是一种硬件冗余解决方案。
你是对的:有了镜子,如果他们不同意,很难知道哪一方是正确的。
RAID 有一个类似的问题:奇偶校验不一致。如果数据块损坏,您希望能够从奇偶校验中重建——但是如果奇偶校验块损坏怎么办?当驱动器发生故障时,匹配的重建块中的数据将被损坏。
跨多个扇区的块的强校验和可以提供帮助:如果数据块校验和失败但奇偶校验块校验和成功,您可以自信地重建数据块。然而,强校验和本身并不能保证:如果驱动器错过了整个块的写入,尽管已经过时,它仍然会携带其最后的验证校验和。
在为企业存储供应商工作了十年之后,我不抱任何幻想:RAID 比看起来更难。很容易在基本故障模式(如完全驱动器丢失)中幸存下来。要在更模糊的故障模式(例如驱动器丢弃写入或将它们放在错误的位置)中存活下来,需要大量的工作和经验。
最后:RAID6 至少需要三个驱动器,因为它旨在承受两个同时驱动器故障。它还可以保护您免受更常见的媒体错误问题,防止完全 RAID5 重建。