为什么这些RAID级别不存在?

我一直在看我的RAID设置,我开始真的讨厌RAID 1。在驱动器故障期间,你不知道其他驱动器上的数据是否正确。 而如果一个驱动器读取1而另一个0没有失败呢? 你怎么知道哪个驱动器是正确的?

当然你可以去raid 6,但至less有4个驱动器。 我想你可以用2个驱动器来做同样的事情。

我已经提出了几个RAID级别,但他们为什么不存在?

  1. 袭击一个单一的驱动器,也使用像par2前向纠错
  2. 像#1,但也镜像(现在你可以确保数据在失败期间是正确的)

这将需要一些定制硬件来快速执行par2计算。 另外,从par2开始,对于添加到arrays的每个驱动器,par2文件可以越来越小,因为冗余量是par2文件总大小的总和。 看到这个了解更多关于par2: http ://www.quickpar.org.uk/AboutPAR2.htm

你只需要一个ZFS镜像。 你保证一致的数据基于COW和恒定的校验和。

如果问题是“为什么你不能有一个带有纠错的单个驱动器的RAID”,答案是在RAID(独立磁盘冗余arrays)的“R”中……磁盘故障没有冗余。 RAID的devise目的并不在于防止数据损坏(如par2),它旨在防止磁盘故障。 在带有par2的单个磁盘上发生磁盘故障时,将使用数据进行纠错校验,数据根本不存在。

根据定义,不能在单个驱动器上完成RAID,因为RAID是“独立磁盘冗余arrays”或“廉价磁盘冗余arrays”,具体取决于您要求的人员。

一个适当的RAID控制器不会写入不同的数据到每个驱动器。 当数据被写入一个磁盘时,它也被写入另一个磁盘。 如果一个磁盘不接受写入,那么该块应该被标记为坏。 如果磁盘仍然不可用,则应将其标记为失败。

正如smearp写道RAID不是为了防止数据问题而devise的。 这是一个硬件冗余解决scheme。

你是对的:用镜子,如果不同意,很难知道哪一方是正确的。

RAID有一个类似的问题:奇偶校验不一致。 如果一个数据块被损坏,你希望能够从奇偶校验重build – 但是如果一个奇偶校验块被损坏了呢? 当驱动器发生故障时,匹配重build块中的数据将被损坏。

如果数据块校验和失败,但校验块校验和成功,则可以自信地重新构build数据块。 强校验并不能保证自己,但是:如果一个驱动器错过了一个整块写,它仍然会进行最后validation校验和,尽pipe是过时的。

在为一家企业存储供应商工作了十年之后,我没有任何幻想:RAID比看起来更难。 基本故障模式(如全驱损耗)很容易生存。 需要更多的工作和经验来生存更晦涩的失败模式,如驱动器丢弃写入或把它们放在错误的地方。

最后: RAID6至less需要三个驱动器 ,因为它可以承受两个同时发生的驱动器故障。 它还可以保护您免受媒体错误更常见的问题,防止完全RAID5重build。