如何计算RAID奇偶校验位?

我如何计算奇偶校验位? 在5个磁盘的RAID 3奇偶校验。 我如何获得奇偶位?

答案是

但是我想知道这是如何计算的?

“奇偶校验”是指所有奇数的总和。 这与说1位的数目是奇数相同。 所以如果一个比特的数目是奇数,那么奇偶校验位必须是0才能保持。 如果是偶数,则奇偶校验位必须为1才能使其为奇数。

奇偶校验通过逻辑“异或”操作XOR来计算。

如果其中一个或另一个值是真的,则结果为真( 1 ),但如果两者都为真 (如果两个值均为真,则结果为假( 0 ))。 使用这种逻辑,arrays会生成额外的数据,可以用来重build丢失的磁盘上的数据。

奇数奇偶校验的结果是相反的 – 如果XOR运算结果为1 ,则代之以0 。 我不是100%肯定的,但我不相信奇怪的平价在现实世界中有很大的用处。

所以,在上面的例子中,第二行:

 1(disk0) XOR 0(disk1) = 1 1(last result) XOR 1(disk2) = 0 0(last result) XOR 1(disk3) = 1 (result of the XOR across the entire row) 

在奇校验中,翻转结果,这就是结果位; 0 ,在这种情况下。

这是有趣和有用的原因? 假设磁盘2丢失了,你需要弄清楚它里面是什么。

 1(parity bit from disk4) XOR 1(disk0) = 0 0(last result) XOR 0(disk1) = 0 0(last result) XOR 1(disk3) = 1 (calculated disk2 data) 

使用奇偶校验,来自丢失磁盘的数据可以使用来自奇偶校验磁盘的数据加上所有其他磁盘重build – 这就是此类RAID组可以容忍任何一个磁盘丢失的原因,但是如果第二个磁盘失败。