我一直在阅读: http : //community.netapp.com/t5/Tech-OnTap-Articles/Back-to-Basics-RAID-DP/ta-p/86123
这基本上将RAID-DP描述为对angular校验RAID。 但是有一件事情让我感到困扰 – 这个例子必须简化,因为它描述了一个总和。 这很公平 – 对于RAID4和RAID5中的“正常”校验 – 您可以执行XOR而不是直接的加法总和,因为异或操作非常高效,所以可以重build。
如果你的平价是:
A xor B xor C = P
然后
P xor B xor C = A
只有一件事情让我感到尴尬 – DP总和不能这样工作,因为如果你做一个“XOR风格”的双重奇偶校验…你会得到一个模棱两可的结果。 你可以创build一堆联立方程式,让你找出位之间的关系 – 例如你知道哪些位相等而不相等。 然而,你最终会得到两个有效的解决scheme – 一个是另一个的“反向”。
我假设这就是为什么这个工作的例子使用可加性总和…但困扰我的事情是:你的加法和总是比源的字节数更大。 如果你总结10个字节长度,你的总和可能会大于一个字节。 你可以“包装”你的总和,但你仍然冒险得到一个模棱两可的结果。
你的平价有效地告诉你哪些比特是相等的,哪些不是。 但最终的结果是模棱两可的 – 你可以有“正确的”答案,或“正确的”答案的倒置。
我错过了什么?
(我怀疑这个答案可能与RAID-6是如何相似的)。
不要担心不适合添加的结果。 只要忽略溢出。 没有歧义。 例如,让我们来想象一个存有一个十进制数字的桶。
5 + 4 + 8 + 3 + 6 => 26。
既然只有一个数字,我们就只写“6”作为奇偶校验。 现在我们需要重build第四个数据位。 加法的逆是减法:
6 – (5 + 4 + 8 + 6)=> -17只需要加10,直到得到正数,3是缺失值。
你说得对,对于双磁盘,你不能在单行上工作并恢复信息。 您必须能够读取多行。 这是一个USENIX论文,其中涵盖了行对angular奇偶校验algorithm。