Skip to content

校验分块数据-使用XOR函数建立校验数据(一)

2013-11-25 09:17:09   来源:技王数据恢复

校验分块数据-使用XOR函数建立校验数据(一)

前面已经讨论了校验,它提供了一种存放于RAID子系统中数据冗余的手段。现在,将在分块数据的背景下,详细讨论校验是如何实现的。 使用XOR函数建立校验数据 校验数据是另外一种冗余数据,它是在计算校验值时,由RAID子系统产生的。正如前面所说的那样,异或(XOR)函数在逐位基础上对实际数据进行操作,建立校验数据。在并行访问RAID和独立访问RAID上,建立校验数据的方法是不同的。在介绍如何使用XOR函数建立校验数据,以及在磁盘失败时恢复数据后,我们将研究这两种RAID之间的差别。 1.校验的计算 RAID校验数据的计算使用布尔XOR函数,XOR函数逻辑相当简单:除了真+真导致一个假的结果以外,它的行为就像一个OR函数。 XOR函数事实上可用于更多的位组合,它既与位是否成对地组合及是否成对操作无关,也与每个附加位的XOR对象是否是过去的XOR操作结果无关,好像它是在XOR“链”中一样。事实上,它也与位的操作顺序无关。 按照标准的二进制习惯,“0”位表示假值,“1”位表示真值。对于RAID,写入阵列的数据位将与其他分区上的相应位进行XOR操作,计算出校验位,并写入校验分区的位置。 可以利用XOR函数对任何4列中的4位进行操作,得到另一列中的值。例如,假如将XOR应用于第2列到第5列,那么,结果将与已经存在的第一列值相同。这说明了当一个磁盘失败时,XOR函数的恢复能力,假如一个磁盘失败,阵列分区中的数据将不可访问,利用阵列中其他分区的相应位,运行XOR操作即可恢复原数据值。 2.XOR的逆操作是XOR XOR函数如此有用的原因之一是XOR函数的逆操作是其本身。换而言之,当使用XOR计算校验值时,也可以再使用XOR进行逆运算。XOR函数的这个性质不太直观,因为通常的数学函数拥有自己的反函数,如加法的反函数是减法、乘法的反函数分别是除法。以下是XOR函数的操作和逆操作的例子: 0XOR0=0;其逆操作是:0XOR0=00XOR1=1;其逆操作是:1XOR1=01XOR0=1;其逆操作是:1XOR0=11XOR1=0;其逆操作是:0XOR1=1上述的操作是XOR函数的完整的组合矩阵,对于磁盘阵列,组合的数量将增加,但每一个 计算值都可以从上述的矩阵推出。以下几节的阵列操作将参考这里的XOR函数。

Back To Top
Search