Raid系统和使用伽罗瓦域的数据恢复装置的制作方法

文档序号:6458253阅读:168来源:国知局
专利名称:Raid系统和使用伽罗瓦域的数据恢复装置的制作方法
技术领域
本发明涉及独立磁盘冗余阵列(RAID)系统以及使用伽罗瓦(Galois) 域的数据恢复装置,所述RAID系统用于生成数据的奇偶校验(parity) 并利用所生成的奇偶校验来恢复数据。更具体的说,本发明涉及一种 RAID系统以及使用伽罗瓦域的数据恢复装置,所述RAID系统使用伽罗 瓦域乘法表来生成数据的奇偶校验并使用所生成的奇偶校验来恢复数 据。
背景技术
由于近年来数字化的发展,数据正变得越来越重要。因此,需要用 于从其他数据和奇偶校验来恢复丢失数据的数据恢复技术。从双重故障 中恢复数据的一种方法是RAID-6。在RAID-6方案中,提出了线性冗余 技术,例如在日本特开2000-259359号公报中所公开的(图5和图6)。
以下,在如图8所示RAID-6系统配置的背景下,对此技术进行说 明。5个数据磁盘单元(硬盘驱动器)101、 102、 103、 104以及105和 两个奇偶校验磁盘单元(硬盘驱动器),即磁盘单元106及107,通过其 间的总线112连接到RAID控制器110。
在线性冗余技术中,基于数据生成两个奇偶校验。如图10所示,如 已知的RAID-5方案那样,将数据项DO、 Dl、 D2、 D3以及D4相加, 即,计算其异或(XOR),从而生成第一奇偶校验P。将第一奇偶校验P 保存在奇偶校验磁盘单元106中。在以下说明中,符号"+ "代表XOR。 在以下说明中,对其进行伽罗瓦域计算的数据项(例如,D0、 Dl、 D2、 D3,…)也被称为"符号"。
通过分别使用伽罗瓦域乘积生成元AO到A4 ( a g到a 4)对数据项 D0、 Dl、 D2、 D3以及D4进行加权,并计算结果值的XOR,来生成第二奇偶校验Q。即,从等式(1)来生成第二奇偶校验Q。Q = A0*D0+A1*D1+A2*D2+A3*D3+A4*D4…(1)然后,将第二奇偶校验Q存储在第二奇偶校验磁盘单元107中。 在伽罗瓦域生成元A0到A4 ( a °到a 4)中,为每个数据磁盘单元 101、 102、 103、 104以及105分配一个伽罗瓦域生成元。为了从单磁盘 故障或双磁盘故障中恢复数据,分配给各数据磁盘单元101、 102、 103、 104以及105的伽罗瓦域生成元需要彼此不同。例如,如图10所示,如 果数据位数为16,则提供2"个有限元素作为伽罗瓦域GF (216)。此外,可以根据预定规则对该伽罗瓦域执行四则算术运算(同次的伽罗瓦域生 成元的XOR得到0,(例如,a、a^0),伽罗瓦域生成元的乘法运算导 致次数的加法运算,(例如,a2xa3=a5))。线性冗余技术允许分布奇偶 校验,而且对于检测双磁盘故障的发生并从这种故障中恢复数据是是有 效的。在例如数据磁盘单元102中发生单磁盘故障的情况下,为了恢复数据D1,通过对等式(1)进行变形得到以下等式(2)。 A1*D1 =A0*D0+A2*D2+A3*D3+A4*D4+Q…(2) 基于等式(2),通过使用奇偶校验Q和除了数据D1以外的其它数据(即,数据DO和数据D2到D4,以及诸如AO和A2到A4以及(A1)"的伽罗瓦域生成元),可以根据以下等式(3)来恢复数据D1。 D1=(A1)"* (A0*D0+A2*D2+A3*D3+A4*D4+Q)…(3) 可以使用奇偶校验P来恢复数据D1。然而,考虑到奇偶校验P的可靠性较低的情况,准备了使用奇偶校验Q来恢复数据Dl的算法。在例如数据磁盘单元102和103中发生双磁盘故障的情况下,为了恢复数据D1和D2,从等式(1)得到以下等式(4)。 A1*D1+A2*D2=A0*D0+A3*D3+A4*D4+Q…(4) 如果由F表示等式(4)的右侧,则得出以下等式(5)。 A1*D1+A2*D2 = F…(5)然后,通过对图IO所示用于生成奇偶校验P的等式进行变形,得到 以下等式(6)。D1+D2 = D0+D3+D4+P…(6)如果由G表示等式(6)的右侧,则得到以下等式(7)。 Dl+D2-G…(7)通过使用等式(5)和(7),建立了用于数据D1和D2的联立等式, 并求解。首先,通过将等式(7)乘以A1,得到以下等式(8)。 A1*D1+A1*D2=A1*G…(8)通过将等式(5)和(8)相加(XOR),确定了以下等式(9)。(Al+A2) *D2 = F+A1*G…(9) 通过对等式(9)进行变形,得到以下用于数据D2的等式(10)。 D2= (Al + A2) 一" (F+A1*G) …(10)通过对等式(7)进行变形,得到以下用于数据D1的等式(11)。 Dl =D2+G…(11)通过将等式(4)和(5)中的F及等式(6)和(7)中的G代入等 式(10)的右侧,得到以下用于恢复数据D2的等式(12)。D2= (Al+A2) _1 * (A0*D0+A3*D3+A4*D4+Q+A1*D0+A1*D3+ A1*D4+A1*P) …(12)类似的是,通过将等式(6)和(7)中的G代入等式(11)的右侧, 得到以下用于恢复数据D1的等式(13)。Dl = D0+D2+D3+D4+P ...... (13)在通过使用伽罗瓦域来生成奇偶校验并恢复数据的过程中,诸如数 据D和伽罗瓦域生成元A的两个变量是执行伽罗瓦域乘积计算所必需 的。因此,与RAID-5方案的XOR计算(即,普通奇偶校验P的计算) 相比,生成奇偶校验需要更长的处理时间,由此降低了性能。为了简化伽罗瓦域乘积计算,已经提出了例如在日本特开 2000-259359号公报中所公开的以下技术(图5和图6)。在该技术中,生 成存储数据D和伽罗瓦域生成元A的乘法结果的伽罗瓦域乘积计算表 120(如图9所示),并且通过参照伽罗瓦域乘积计算表120,获得各个数 据项和伽罗瓦域生成元的乘积计算结果。现在假设,在RAID系统中,使用n个数据和两个奇偶校验,并且一个符号具有16位,伽罗瓦域为GF (216)。在这种情况下,对数据磁盘 进行加权所需要的伽罗瓦域生成元A由a "、 a i2、 a i3、 a in(ijE{0, 1,…: 65534})表示。当使用上述伽罗瓦域生成元A时,用于从单磁盘故障中恢复数据的 加权值是a—"、 a—i2、 a—i3、…a —in,如等式(3)所示。用于双磁盘故 障的加权值可基于等式(12)通过等式(14)确定。(aij+aik) -1 (j=l, ...,n—l,k=j+l, .",n) ... (14)因此,如果如现有技术中那样随机地选择加权值,则用于单磁盘故 障的加权值和用于双磁盘故障的加权值不重叠,因此,所需要的伽罗瓦 域生成元的数目,等于数据磁盘单元数目n、可能的单磁盘故障数目n及 可能的双磁盘故障数目n (n-1) /2的总和。能够被当作为一个符号(16位)D的可能的值的数目为216^65536 个。因此,如图9所示,如果生成了存储用于加权的伽罗瓦域生成元A 和一个符号的可能符号值的伽罗瓦域乘积计算表120,则需要(n+n+n (n-l)/2) X65536个数据元素。例如,如果n二14,则需要119X65536 个数据。这极大增加了该表的数据量,即存储器空间,从而使得RAID 系统和数据恢复装置变得昂贵。发明内容本发明的目的在于提供一种恢复数据的装置,其能够降低伽罗瓦域 乘积计算表的数据量。本发明的另一目的在于提供一种装置,其能够通过降低伽罗瓦域乘 积计算表的数据量来降低其成本。本发明的又一目的在于提供一种装置,其中能够通过降低伽罗瓦域 乘积计算表的数据量来实现快速乘积计算。根据本发明,提供一种恢复数据的装置。该装置用于在通过分割所 述数据而产生的N个部分数据块的单重损坏或双重损坏的情况下,恢复 所述数据,其中,N是大于l的自然数。该装置基于通过组合所述N个 部分数据块而产生的第一奇偶校验数据、通过在伽罗瓦域中对从所述N个部分数据块获得的符号执行乘法运算而产生的第二奇偶校验数据、以 及伽罗瓦域乘积计算表,来恢复所述数据。所述伽罗瓦域乘积计算表包括第一检索主键数据、第二检索主键数 据以及每一对第一检索主键数据与第二检索主键数据中的第一检索主键 数据和第二检索主键数据的乘积。第一检索主键数据包括可能的符号值, 第二检索主键数据包括加权值集和逆加权值集。所述加权值集包括一对 一分配给所述N个部分数据块且彼此不同的加权值,并且所述加权值集 在所述伽罗瓦域中的加法下是封闭的。所述逆加权值集包括分别是所述加权值集中每个加权值的乘法逆元(multiplicative inverse)的加权值。所述装置在所述N个部分数据块出现双重损坏的情况下,通过使用 包括在所述伽罗瓦域乘积计算表的逆加权值集中的加权值来恢复所述数 据,由此降低了所述伽罗瓦域乘积计算表的大小。根据本发明的实施方式,可以获得以下优点。通过使用数据存储单 元的加权值(该加权值的集合(加权值集)在加法(XOR)下世封闭的), 能够构成用于存储上述加权值、用于从单磁盘故障中恢复数据的加权值 (该加权值是上述加权值的乘法逆元)以及可能的符号值与加权值的乘 法结果(乘积)的伽罗瓦域乘积计算表。所述伽罗瓦域乘积计算表也可 用于从双磁盘故障中恢复数据。因此,能够降低所述伽罗瓦域乘积计算 表的数据量,这有助于降低RAID系统和数据恢复装置的成本。


图1为例示了根据本发明的实施方式的RAID系统的框图;图2例示了根据本发明的实施方式的伽罗瓦域乘积计算表以及用于 产生奇偶校验和恢复数据的计算电路;图3例示了根据本发明的实施方式的用于产生奇偶校验P和Q并用 于恢复数据的算法;图4例示了根据本发明的实施方式的用于图1中数据磁盘单元的加 权矢量;图5例示了根据本发明的实施方式的使用图4中的加权矢量的数据磁盘单元的加权值;图6例示了根据本发明的实施方式的通过使用数据磁盘单元的加权 值,从单磁盘故障或双磁盘故障中恢复数据的加权值;图7例示了根据现有技术的示例的通过使用数据磁盘单元的加权 值,从单磁盘故障或双磁盘故障中恢复数据的加权值;图8为例示了现有技术的RAID-6系统示例的配置的框图;图9例示了用于现有技术的RAID-6系统示例的伽罗瓦域乘积计算 表;以及图IO例示了现有技术的伽罗瓦域乘积计算表的示例。
具体实施方式
以下,依照根据本发明的实施方式和修改实施例的RAID系统和伽 罗瓦域乘积计算表的顺序,对本发明进行描述。但是本发明并不限于这 种配置。图1为例示了根据本发明的实施方式的RAID系统的框图。图2例 示了根据本发明的实施方式的伽罗瓦域乘积计算表以及用于在图1所示 的RAID系统中产生奇偶校验并恢复数据的计算电路。图3例示了图1 所示的RAID系统所执行的奇偶校验生成和数据恢复计算。如图1所示, 该RAID系统包括连接到主机计算机16的RAID控制器12、多个(本实 施方式中为14个)数据磁盘单元(硬盘驱动器)10-1到10-14、以及两 个奇偶校验磁盘单元(硬盘驱动器)10-15和10-16,这些盘单元通过例 如光纤通道(FC)环路14连接到RAID控制器12并受RAID控制器12 所控制。即,图1所示的RAID系统包含具有双奇偶校验的RAID-6配置。如图2所示,RAID控制器12包括伽罗瓦域乘积计算表20和用于产 生奇偶校验P和Q,并在单磁盘故障或双磁盘故障的情况下通过参照伽 罗瓦域乘积计算表20来恢复数据的计算电路22。伽罗瓦域乘积计算表20包括作为第一检索主键数据的可能符号值 (D: 0, 1,, 65535)、作为第二检索主键数据(A: ct Q,…)的加权 值(伽罗瓦域生成元),以及由第一检索主键数据所示的可能符号值与由第二检索主键数据所示的加权值的乘积。如果一个符号有16位,则使用伽罗瓦域GF (216)。以下参照图3, 说明由计算电路22所执行的奇偶校验生成和数据恢复计算。如图3所示,通过分别计算数据磁盘单元10-1到10-14中的串数据 (符号)D0到D13的XOR,来生成第一奇偶校验P,并将其存储在第一 奇偶校验磁盘单元10-15的相应地址中。如图3所示,分别通过伽罗瓦域 乘积计算对数据磁盘单元10-1到10-14中的串数据(符号)D0到D13 进行加权,并通过计算所得加权数据的XOR,来生成第二奇偶校验Q, 如等式(1 )所示。将第二奇偶校验Q存储在第二奇偶校验磁盘单元10-16 的相应地址中。图3中的符号"+"代表XOR计算。由以下等式(15)表示伽罗瓦 域GF (216)的本原多项式。X16+Xl2+X3+X+1…(15)考虑到用于恢复数据的等式,为了在单磁盘故障的情况下恢复数据 Di,从等式(3)计算以下等式(16)。Di= (Ai) —1 * (A0*D0+...+A (i —1) *D (i—1) +A (i+1) *D (i+1) +".+A13*D13+Q) …(16)为了在双磁盘故障的情况下恢复数据Di和Dj,分别从等式(12) 和(13)计算以下等式(17)和(18)。Dj = (Ai+Aj) — 1 * ( A0*D0+A1*D1+…+Ai*Di+…+Aj*Dj+… A13*D13+O+Ai*D0+Ai*Dl+..,+Ai*Di+".+Ai*Di+...+Ai*D13+Ai*P)… (17)Di = D0+Dl+'..+2i+'..Dj+."D13+P…(18) 在等式(17)和(18)中,当计算Di或Dj时,忽略下划线项。 当将数据写入数据磁盘单元10-1到10-14时,RAID控制器12通过 XOR计算来计算奇偶校验P,并将所计算出的奇偶校验P存储在第一奇 偶校验磁盘单元10-15中,而且,还从伽罗瓦域乘积计算表20获得乘积 计算结果,并通过执行XOR计算来计算奇偶校验Q (稍后描述),然后, 将所计算出的奇偶校验Q存储在第二奇偶校验磁盘单元10-16中。类似的是,当从数据磁盘单元10-1到10-14和奇偶校验磁盘单元10-15及10-16中读取数据时,如果检测到单磁盘故障,则RAID控制器 12从伽罗瓦域乘积计算表20获得乘积计算结果,并根据等式(16)执行 XOR计算来恢复数据Di。若检测到双磁盘故障,则RAID控制器12从伽罗瓦域乘积计算表20 获得乘积计算结果,并根据等式(17)执行XOR计算来恢复数据Dj,并 根据等式(18)执行XOR计算来恢复数据Di。图4例示了根据本发明的实施方式的用于数据磁盘单元的伽罗瓦域 生成元(加权值)的设置。图5例示了根据图4中的设置而确定的伽罗 瓦域生成元(加权值)。图6例示了根据本发明的实施方式的伽罗瓦域乘 积计算表的一部分。图7例示了用于与图6所示相比的,现有技术的伽 罗瓦域乘积计算表的一部分的示例。在本发明的该实施方式中,为了减少加权所需的伽罗瓦域生成元的 数目,增加了用于单磁盘故障的加权值和用于双磁盘故障的加权值的重 叠部分。为了实现这方面,应当根据特定规则来选择伽罗瓦域生成元。在本实施方式的RAID系统中,使用了N个数据(或N个符号)和 两个奇偶校验,而且,N小于或等于2"—l (m是2或更大的整数)。优 选的是,N为接近于2m—l的值(例如,N-3,7,14,15,30,31,…)。在上述条件下,根据以下等式(19),确定用于每个数据磁盘单元j 的加权值(伽罗瓦域生成元)Aj。Aj-gfw (j,0).a。+gfW (j,l)'a'+…+gfw (j'm-O'am-1." (19)在等式(19)中,j表示数据磁盘编号,其中,1《j《N, N是数据 磁盘单元的数目,而m表示用于一个符号的位数。例如,如果数据磁盘 单元的数目是14并且用于一个符号的位数是4,则1《《14且a m"= a 3。即,用于每个数据磁盘单元j的加权值(加权值,或伽罗瓦域生成元) Aj被限定为c^到aS的组合。加权值Aj可以被分配给包括在N个部分数据块中的第j个部分数据 块,所述N个部分数据块通过将原始数据分割为N个部分而产生。在这 种情况下,不同的部分数据块被存储在同一磁盘单元中。然后,为j设置等式(19)中的gfHv矩阵(gfw (j,O), gfW(j,l),…, gfW (j,m—l)),如图4所示。即,以二进制来表示十进制的j,而且, 将二进制数按照从LSB到MSB的顺序依次分配给(gfW (j,O), gfW (j,l),…,gfW (j,m—l))。利用这种操作,通过计算图4所示的两个数据磁盘编号j的二进制 数(gfw (j,O), gfw (j,l),…,gfSv (j,m—l))的XOR,使得结果等于 另一磁盘编号j的二进制数(gfw (j,O), gfw (j,l),…,gfW (j,m—1))。 二进制数的集合(gfW (j,O), gfW (j,l),…,gf\v (j,m—l))也称被为 加权矢量。例如,二进制数j-l与二进制数』=2的XOR计算结果等于二进制数 j=3,并且二进制数j-2与二进制数j-3的XOR计算结果等于二进制数j-l。艮P,在加法(XOR)下,该加权值的集合(矩阵)是封闭的。如果 将图4所示加权值的设置应用到等式(19),而且如果每个数据磁盘编号 j的加权值(或伽罗瓦域生成元)由Ai表示,则Ai可以如图5所示。两个数据磁盘单元的加权值的XOR计算结果等于另一数据磁盘单 元的加权值。这样的加权值被分配给每个数据磁盘单元,如图5所示。例如,分配给j=3的加权值(a (>+a ')表示为a棚。从上述图3所 示本原多项式,以下等式(20)成立。a〗6= a 12+a 3+a +1…(20)通过根据上述四则算术运算的规则,将分配给j-3的加权值修改为 单一伽罗瓦域生成元,分配给j=3的加权值(a u+ a 0可以由加权值a 49594 表示。这同样也适用于将通过XOR计算而获得的其他伽罗瓦域生成元的 加权值修改为单一伽罗瓦域生成元的加权值的情况。用于从单磁盘故障恢复数据的加权值是分配给相应数据磁盘编号的 加权值的乘法逆元。因此,用于单磁盘故障的加权值Alj可由以下等式 (21)来表达。Alj= (gfW(j,O)'a 0+gfW(j,l)'a'+…+gfW(j,m—1)'a m一1) —1… (21)同样在等式(21)中,1《j《N,其中,j是发生单磁盘故障的数据磁盘编号,N是数据磁盘的数目,而m指定了用于一个符号的位数。用于双磁盘故障的加权值如下所述。为了从双磁盘故障中恢复数据,需要对两个伽罗瓦域生成元的XOR计算,如等式(12)所示。但是,因 为图4所示的用于针对数据磁盘编号选择加权值的加权值集在XOR下是 封闭的,所以该加权值也可用于双磁盘故障。艮P,由于用于双磁盘故障的加权值A2j是两个伽罗瓦域生成元(或 加权值)的XOR的乘法逆元,所以加权值A2j与某些用于单磁盘故障的 加权值一致。因此,用于双磁盘故障的加权值A2j可由以下等式(22) 来表达。<formula>formula see original document page 14</formula>(22)其中,j指明了用于双磁盘故障的加权值的指针,j的范围是N+l《j 《(2m) —l。例如,如果数据磁盘单元N的数目是14并且m为4 (如 上所述)则只增加j=15为用于双磁盘故障的加权值就足够了。如上所述,与其中随机选择加权值的现有技术的示例不同,在本发 明的该实施方式中,只增加少量用于双磁盘故障的加权值。其原因如下。 为了从双磁盘故障中恢复数据,需要对两个伽罗瓦域生成元(加权值) 进行XOR,如等式(12)所示。但是,因为图4所示的用于针对数据磁 盘编号选择加权值的加权值集在加法(XOR)下是封闭的,所以该加权 值也可用于双磁盘故障。在这种情况下,包括在伽罗瓦域乘积计算表中的数据元素的数目只 有(n+2m—l) X65536,其中每个数据元素包括第一检索主键数据与第 二检索主键数据的乘积。例如,如果N是14, m是4,则伽罗瓦域乘积 计算表只需要(14+16-1) =29X65536个数据元素。因此,与上述现有技术的随机选择技术所需要的119X65536个表数 据量相比,本实施方式的表大小只有其的0.24,即大约1/5。因此,能够 节约表所需要的存储器空间。以下,参照图6和图7,对此进行具体描述。在图6和图7中,假 设数据磁盘单元的数目N为15。如果针对数据磁盘编号j随机选择加权值(如图7所示),即,如果为数据磁盘编号j选择了加权值ctJ,则在加 权值之间的关系中没有数学规则能够遵循,例如,加权值集在加法(XOR)下不是封闭的。用于从单磁盘故障恢复数据的加权值是上述加权值的乘法逆元。例如,如果a i用于数据磁盘编号j=l,则使用增加到幂(216—1一1) = (65536 一2) =65534的ci,即ci 65534,这是a1的乘法逆元。这同样也适用于其 他数据磁盘编号。用于从双磁盘故障恢复数据的加权值,是根据等式(17)的用于两 个数据磁盘编号的XOR结果的乘法逆元。例如,用于在数据磁盘编号j=0 和j=l中发生的双磁盘故障中恢复数据的加权值是(a 、a 。 —', g卩a 15941 。因为在用于数据磁盘编号的加权值之间没有数学关系,如图7所示, 所以用于单磁盘故障的加权值不能用于恢复双磁盘故障。这同样适用于 在数据磁盘编号j=l和数据磁盘编号j=2到j=14之间的一个中发生双磁 盘故障的情况,而且必须使用不同的加权值。与此对照,根据本发明的实施方式,如图6所示,使用了参照图4 和图5所述的基于加权值集在加法(XOR)下封闭的规则的加权值。艮P, 用于特定数据磁盘编号j的加权值等于用于其他两个数据磁盘编号的 XOR结果。如现有技术中所述,用于从单磁盘故障恢复数据的加权值是所述加 权值的乘法逆元。例如,对于发生在数据磁盘编号j-2中的单磁盘故障, 使用216—1—49594=65536 —49594=15941,即a 15941作为加权值,这是 a"5M的乘法逆元。这同样适用于其他数据磁盘编号。用于从发生在两个数据磁盘编号中的双磁盘故障中恢复数据的加权 值,是根据等式(17)的用于两个数据磁盘编号的XOR结果的乘法逆元。 例如,用于发生在数据磁盘编号」=0和]=1中的双磁盘故障中恢复数据的 加权值是(ci、ci1) —i,即a 15941 。艮P,该加权值与用于从发生在数据磁盘编号j=2中的单磁盘故障中恢复数据的加权值一致。这是因为用于数据磁盘编号:h2的加权值等于用于数据磁盘编号j=0和j=l的加权值的XOR结果。类似的是,用于在数据磁盘编号j=0和数据磁盘编号j=2到j=14之 间的一个中从双磁盘故障恢复数据的加权值与用于发生在相应数据磁盘 编号中的单磁盘故障的加权值相一致。基于与上述类似的原因,作为从在数据磁盘编号j=0和数据磁盘编号j=2到j=14之间的一个中发生的双磁盘故障中恢复数据的加权值,可 以使用用于发生在相应数据磁盘编号中的单磁盘故障的加权值,如图6 所示。在图6所示示例中,因为11=15,所以用于单磁盘故障的加权值可以 用于从双磁盘故障中恢复数据,并且无需设置专门用于双磁盘故障的加 权值。图2所示伽罗瓦域乘积计算表20的行数(由第二检索主键数据指明) 等于用于数据磁盘编号的加权值的数目、用于单磁盘故障的加权值的数 目、附加加权值的数目的总和,如等式(22)所示。即,与现有技术不 同,不需要用于从双磁盘故障恢复数据的加权值的行。因此,伽罗瓦域 乘积计算表20的数据大小是现有技术的伽罗瓦域乘积计算表120的1/5, 这对于节约存储器空间是有效的,并且有助于提高使用表的数据恢复的 速度。在图2所示伽罗瓦域乘积计算表20中,针对数据磁盘编号的加权值 的集合成为加权值集,用于单磁盘故障的加权值和附加加权值的集合成 为逆加权值集。在上述实施方式中,RAID-6系统具有14个数据磁盘单元和两个奇 偶校验磁盘单元。但是,数据磁盘单元的数目和奇偶校验磁盘单元的数 目是任意的。已在对RAID-6系统的存储单元中的数据进行恢复的背景下,讨论 了从单磁盘故障或双磁盘故障中的数据恢复。但是,在为多个符号提供 了奇偶校验P和Q,并且转换了所得结果的情况下,也可使用这种数据 恢复技术。例如,根据本发明,通过将原始数据分割为N个部分数据块 并为N个部分数据块中的每一个都分配加权值,能够从N个部分数据块 的单磁盘故障或双磁盘故障中恢复所述原始数据。在这种情况下,对从N个部分数据块所获得的符号执行伽罗瓦域乘积计算,并且N个部分数据 块中的每一个不必一定存储在不同的数据存储部(磁盘单元)中。虽然参照示例性实施方式对本发明进行了说明,但是应该了解本发 明并不限于所公开的示例性实施方式,并且各种修改方式也包含在本发 明的精神范围内。
权利要求
1、一种恢复数据的装置,所述装置包括控制器,所述控制器在通过分割数据而产生的N个部分数据块出现单重损坏或双重损坏的情况下,对所述数据进行恢复,其中N是大于1的自然数,所述控制器基于通过组合所述N个部分数据块而产生的第一奇偶校验数据、通过在伽罗瓦域中对从所述N个部分数据块获得的符号执行乘积运算而产生的第二奇偶校验数据、以及伽罗瓦域乘积计算表,来恢复所述数据,所述伽罗瓦域乘积计算表包括第一检索主键数据、第二检索主键数据以及每一对第一检索主键数据与第二检索主键数据中的第一检索主键数据和第二检索主键数据的乘积,第一检索主键数据包括可能的符号值,第二检索主键数据包括加权值集和逆加权值集,所述加权值集包括一对一分配给所述N个部分数据块且彼此不同的加权值,所述加权值集在所述伽罗瓦域中的加法下是封闭的,所述逆加权值集包括分别作为所述加权值集中包括的加权值之一的乘法逆元的加权值,其中所述控制器在所述N个部分数据块出现双重损坏的情况下,使用包括在所述伽罗瓦域乘积计算表的逆加权值集中的加权值来恢复所述数据。
2、 根据权利要求l所述的装置,所述装置还包括N个数据存储部,所述N个数据存储部分别存储所述N个部分数据 块中的一个;以及奇偶校验存储部,所述奇偶校验存储部用于存储所述第一奇偶校验 数据和所述第二奇偶校验数据,其中所述控制器在所述N个数据存储部出现双重故障的情况下,使用包 括在所述伽罗瓦域乘积计算表的逆加权值集中的加权值来恢复数据。
3、 根据权利要求1所述的装置,其中,所述控制器在所述N个部分 数据块出现单重损坏的情况下,使用从损坏部分数据块以外的其它部分 数据块获得的符号作为第一检索主键数据,并使用分配给所述损坏部分 数据块的加权值的乘法逆元作为第二检索主键数据来检索所述伽罗瓦域乘积计算表,以恢复所述损坏部分数据块,并且所述控制器在所述N个 部分数据块出现双重损坏的情况下,使用从损坏部分数据块以外的其它 部分数据块获得的符号作为第一检索主键数据,并使用从分配给所述损 坏部分数据块的加权值而生成的加权值作为第二检索主键数据来检索所 述伽罗瓦域乘积计算表,从而恢复所述损坏部分数据块。
4、 根据权利要求3所述的装置,其中,在所述N个部分数据块出现双重损坏的情况下,所述控制器使用从损坏部分数据块以外的其它部分 数据块获得的符号作为第一检索主键数据,并使用分配给所述损坏部分 数据块以外的其它部分数据块的加权值作为第二检索主键数据来检索所 述伽罗瓦域乘积计算表,从而针对所述损坏部分数据块以外的其它部分数据块执行乘积运算;对所述乘积运算的结果执行EOR运算;并且使用 所述EOR运算的结果作为第一检索主键数据,并使用从分配给所述损坏 部分数据块的加权值获得的加权值作为第二检索主键数据来检索所述伽 罗瓦域乘积计算表,从而恢复所述损坏部分数据块。
5、 根据权利要求3所述的装置,其中,N是小于或等于2"1—1的自 然数,其中,m是大于1的自然数,表示包括在一个符号内供使用的位 数。
6、 根据权利要求5所述的装置,其中,N被设置为接近于2"1—1的 自然数。
7、 根据权利要求5所述的装置,其中,在伽罗瓦域GF (2k),且k 为自然数的情况下,所述伽罗瓦域乘积计算表被设置为包括2k个主键作 为第一检索主键数据,包括(N+2m—l)个主键作为第二检索主键数据, 并且包括总数为(N+2m—l) X 2k的数据元素,每个数据元素包括所述 伽罗瓦域GF (2k)中的第一检索主键数据与第二检索主键数据的乘积。
8、 根据权利要求4所述的装置,其中,所述控制器通过分别计算符 号Dl到Dn与加权值Al到An的乘积,并对所计算出的乘积执行EOR 运算,来生成所述第二奇偶校验数据Q,并且分别使用以下等式(17) 和(18)来恢复符号Dj和Di:<formula>formula see original document page 3</formula><formula>formula see original document page 4</formula> (17) 以及<formula>formula see original document page 4</formula> ( 18) 其中,当计算符号Dj或Di时,忽略下划线项。
9、 根据权利要求8所述的装置,其中,由以下等式(19)来定义加 权值A1到An:<formula>formula see original document page 4</formula>(19), 其中j是1到N之间的整数,gfW (j,i)是等于j的二进制表达式中 从LSB起第(i+1)位值的二进制值,i是从0到m—l之间的位地址并 表示j的二进制表达式中从LSB起第(i+1)位的位置,由此产生作为加 权值集的加权值Aj的集合,所述加权值集在所述伽罗瓦域中的加法下是 封闭的。
10、 根据权利要求9所述的装置,其中,用于在所述N个部分数据 块出现单重损坏的情况下恢复损坏部分数据块的加权值是分配给所述损 坏部分数据块的加权值Aj的乘法逆元Aj—、
11、 根据权利要求10所述的装置,其中,用于在所述N个部分数据 块出现双重损坏的情况下恢复损坏部分数据块的加权值是对分配给所述 损坏部分数据块的两个加权值执行EOR运算的结果的乘法逆元。
全文摘要
本发明涉及RAID系统和使用伽罗瓦域的数据恢复装置。在此公开了一种恢复数据的装置,该装置在通过分割数据而产生的N个部分数据块出现单重损坏或双重损坏的情况下对所述数据进行恢复,其中N是大于1的自然数。该装置基于包括第一和第二检索主键数据以及第一与第二检索主键数据乘积的伽罗瓦域乘积计算表来恢复所述数据。第一检索主键数据包括可能的符号值。第二检索主键数据包括加权值集和逆加权值集。所述加权值集包括一对一分配给所述N个部分数据块且彼此不同的加权值,而且在所述伽罗瓦域中的加法下是封闭的。所述逆加权值集包括所述加权值集中包括的加权值的乘法逆元。
文档编号G06F7/72GK101236517SQ200810008958
公开日2008年8月6日 申请日期2008年1月31日 优先权日2007年1月31日
发明者伊东利雄 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1