如何计算奇偶校验位?在具有 5 个磁盘的 RAID 3 奇校验中。如何获取奇偶校验位?
答案是
但我想知道这个是怎么计算的?
答案1
“奇校验”是指所有 1 的总和为奇数。这与说 1 的位数为奇数相同。因此,如果 1 的位数为奇数,则校验位必须为 0 才能保持这种状态。如果是偶数,则校验位必须为 1 才能使其为奇数。
答案2
奇偶校验是通过逻辑“排他或”运算 XOR 来计算的。
1
如果计算结果中的一个值为真,则结果为真 ( ),但如果两者都正确则不是- 如果两个值都不为真或都不为真,则结果为假 ( 0
)。使用此逻辑,阵列会生成额外的数据,可用于重建丢失磁盘上的数据。
奇校验的缺点是它是逆的 - 如果 XOR 运算的结果为 a 1
,0
则存储 a 。我不能 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)
使用奇偶校验,可以使用奇偶校验磁盘和所有其他磁盘中的数据重建丢失磁盘中的数据 - 这就是此类 RAID 组可以容忍任何一个磁盘的丢失,但如果第二个磁盘发生故障则会失败的原因。