前面已经讨论了校验,它提供了一种存放于R A I D子系统中数据冗余的手段。现在,将在分块数据的背景下,详细讨论校验是如何实现的。
使用XOR函数建立校验数据
校 验数据是另外一种冗余数据,它是在计算校验值时,由R A I D子系统产生的。正如前面所说的那样,异或(X O R)函数在逐位基础上对实际数据进行操作,建立校验数据。在并行访问R A I D和独立访问R A I D上,建立校验数据的方法是不同的。在介绍如何使用X O R函数建立校验数据,以及在磁盘失败时恢复数据后,我们将研究这两种R A I D之间的差别。
1. 校验的计算
R A I D校验数据的计算使用布尔X O R函数,X O R函数逻辑相当简单:除了真+真导致一个假的结果以外,它的行为就像一个O R函数。
X O R函数事实上可用于更多的位组合,它既与位是否成对地组合及是否成对操作无关,也与每个附加位的X O R对象是否是过去的X O R操作结果无关,好像它是在X O R“链”中一样。事实上,它也与位的操作顺序无关。
按照标准的二进制习惯,“0”位表示假值,“1”位表示真值。对于R A I D,写入阵列的数据位将与其他分区上的相应位进行X O R操作,计算出校验位,并写入校验分区的位置。
可以利用X O R函数对任何4列中的4位进行操作,得到另一列中的值。例如,假如将X O R应用于第2列到第5列,那么,结果将与已经存在的第一列值相同。这说明了当一个磁盘失败时,X O R函数的恢复能力,假如一个磁盘失败,阵列分区中的数据将不可访问,利用阵列中其他分区的相应位,运行X O R操作即可恢复原数据值。
2. XOR的逆操作是X O R
X O R函 数如此有用的原因之一是X O R函数的逆操作是其本身。换而言之,当使用X O R计算校验值时,也可以再使用X O R进行逆运算。X O R函数的这个性质不太直观,因为通常的数学函数拥有自己的反函数,如加法的反函数是减法、乘法的反函数分别是除法。以下是X O R函数的操作和逆操作的例子:
0 XOR 0 = 0 ; 其逆操作是:0 XOR 0 = 0 0 XOR 1 = 1 ;其逆操作是:1 XOR 1 = 0 1 XOR 0 = 1 ;其逆操作是:1 XOR 0 = 1 1 XOR 1 = 0 ;其逆操作是:0 XOR 1 = 1 上述的操作是X O R函数的完整的组合矩阵,对于磁盘阵列,组合的数量将增加,但每一个
计算值都可以从上述的矩阵推出。以下几节的阵列操作将参考这里的X O R函数。
三星硬盘数据恢复,三星硬盘的固件损坏是比较好修复的,大家也都知道大部分三星盘固件一...
虽然 微软 已经亲尽全力推广同时具有移动互联网和传统PC特性的Windows 8系统,但似乎...
本文的重点是RAID阵列的在线容量扩展功能是否类 似于在线I/O容量扩展,因为随着每个驱动...
大数据时代的到来,云计算的应用,政府、军队、企业的数据量越来越大,服务器的销量也是...
当今市场上的存储卡种类繁多,经常会遇到自己的多种设备互不兼容的情况。这时候,各种规...
三分技术,七分数据,得数据者得天下,这是描述大数据重要性时最常用的一句话。 大数据...
近日,IBM在上海向广大中国客户展示了当今最佳的企业级大数据和分析基础架构平台IBM Pow...