CN101770409A - 一种独立磁盘冗余阵列中数据备份、恢复的方法和装置 - Google Patents
一种独立磁盘冗余阵列中数据备份、恢复的方法和装置 Download PDFInfo
- Publication number
- CN101770409A CN101770409A CN200810186600A CN200810186600A CN101770409A CN 101770409 A CN101770409 A CN 101770409A CN 200810186600 A CN200810186600 A CN 200810186600A CN 200810186600 A CN200810186600 A CN 200810186600A CN 101770409 A CN101770409 A CN 101770409A
- Authority
- CN
- China
- Prior art keywords
- data
- unit
- look
- checking
- rendering
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明实施例公开了一种独立磁盘冗余阵列中数据备份、恢复的方法和装置。以独立磁盘冗余阵列的装置为例,可以包括:数据获取单元,用于获取数据盘数据;校验数据P计算模块,用于累加所述数据盘数据得到校验数据P;校验数据Q计算模块,用于通过查迦罗瓦域乘2查找表,累加所述数据盘数据与2的数据盘号次幂的乘积得到校验数据Q。上述实施方式,通过查迦罗瓦域乘2查找表的方法可以不用计算指数等复杂运算,通过查表直接得到计算的结果使得计算速度快,另外,不需要逻辑资源来实现乘法可以节约系统资源。
Description
技术领域
本发明涉及存储技术领域,特别涉及一种独立磁盘冗余阵列中数据备份、恢复的方法和装置。
背景技术
独立磁盘冗余阵列(Redundant Array of Independent Disks,RAID)可以将多台硬盘通过控制器结合成虚拟单台大容量的硬盘;其特色是多台硬盘同时读取可以增加读取速度,并可以提供容错性。
RAID按照实现原理的不同分为不同的级别。从功能上讲,能实现两颗磁盘掉线容错的,都可以成为RAID6。有一种RAID6为RAID6P+Q算法,它使用了基于伽罗瓦域(Galois Field)的算法;能够提供两级冗余,即阵列中的两个成员磁盘失效时(包括:单校验盘P损坏、单校验盘Q损坏、单数据盘x损坏、双校验盘P和Q损坏、数据盘x和校验盘P同时损坏、数据盘x和校验盘Q同时损坏,数据盘x和数据盘y同时损坏),磁盘阵列仍然能够继续工作。算法会根据公式计算出两个相互独立的校验值P和Q;当有两个数据同时失效时,RAID6算法仍然可以根据公式恢复出原数据。
RAID6的P+Q算法实现数据的恢复过程可以是:先是计算出校验数据P和Q,然后根据校验数据恢复出损坏数据;装置的实现中包含3种基本计算单元:异或单元、选择器单元和数字信号处理器(Data Signal Processor,DSP)计算乘法单元,通过对这三种单元的组合调用实现不同的恢复功能。
发明人在实现本发明的过程中发现:在硬件划分上大量使用选择器模块,占用了很多系统资源。
发明内容
本发明实施例要解决的技术问题是提供一种独立磁盘冗余阵列中数据备份、恢复的方法和装置,节约系统资源。
为解决上述技术问题,本发明所提供的独立磁盘冗余阵列的装置实施例可以通过以下技术方案实现,包括:
数据获取单元,用于获取数据盘数据;
校验数据P计算模块,用于累加所述数据盘数据得到校验数据P;
校验数据Q计算模块,用于通过查迦罗瓦域乘2查找表,累加所述数据盘数据与2的数据盘号次幂的乘积得到校验数据Q。
本发明实施例还提供了一种独立磁盘冗余阵列中数据的备份方法,包括:
获取数据盘数据;
累加所述数据盘数据得到校验数据P;
通过查迦罗瓦域乘2查找表,累加所述数据盘数据与2的数据盘号次幂的乘积得到校验数据Q。
本发明实施例还提供了一种独立磁盘冗余阵列中数据的恢复方法,包括:
获取数据盘数据;
当单校验盘P损坏时,累加未损坏数据盘数据得到校验数据Dp,根据校验数据Dp恢复校验盘P数据;
单校验盘Q损坏时,通过查迦罗瓦域乘2查找表累加所述数据盘数据与2的数据盘号次幂的乘积得到校验数据Dq,根据校验数据Dq恢复校验盘Q数据;
单数据盘x损坏时,用校验数据P减去除数据盘x外的其他数据盘数据,得到恢复数据Dx,根据恢复数据Dx恢复数据盘x。
上述技术方案具有如下有益效果:通过查迦罗瓦域乘2查找表的方法可以不用计算指数等复杂运算,通过查表直接得到计算的结果使得计算速度快,另外,不需要逻辑资源来实现乘法可以节约系统资源。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明方法实施例一流程示意图;
图2为本发明装置实施例二结构示意图;
图3为本发明装置实施例二另一结构示意图;
图4为本发明装置实施例三结构示意图;
图5为本发明装置实施例四结构示意图;
图6为本发明装置实施例五结构示意图;
图7为本发明装置实施例六结构示意图;
图8为本发明装置实施例七结构示意图;
图9为本发明装置实施例八结构示意图;
图10为本发明装置实施例九结构示意图;
图11为本发明装置实施例十结构示意图;
图12为本发明装置实施例十一结构示意图;
图13为本发明装置实施例十二结构示意图;
图14为本发明装置实施例十三结构示意图;
图15为本发明装置实施例十四结构示意图;
图16为本发明装置实施例十五结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
英特尔Intel提出的RAID6(P+Q)算法是基于迦罗瓦域理论的一种算法,Intel输入输出处理器(Input/Output Processor,IOP)80333是一款支持RAID6的处理器,给出了基于多项式x8+x4+x3+x2=1的GF域正变换和GF域逆变换的表,依据该表可以生成GF域正变换逆变换的两个查找表,任何一个8位二进制数,都可以直接在表格中查到对应的GF变换结果。在28的GF域中,有以下关系:
1、在GF域中,加法等同于异或算法,乘法可以通过两次查表加简单的加法判断得到;
2、加法和减法运算相同:
A+B=A-B
3、满足交换率、结合率:
A+B=B-A
A·B=B·A
(A+B)+C=A+(B+C)
(A·B)·C=A·(B·C)
(A+B)·C=A·C+B·C
4、任何数与0相乘等于0:A·{00}={00}
5、如果B不等于0则:A·B=C可变换为C/B=A
6、如果A不等于0则:A256={01}·A=A
A255={01}
A254=A255/A={01}/A=A-1
则对于n个数据磁盘D0、D1、......、Dn-1(n<=255),可以有:
P=D0+D1+...+Dn-1
Q=D0+2×D1+22×D2+...+2n-1×Dn-1
其中D和D后面的数字组合可以表示编号为该数字的数据盘的数据;Dp和Dq可以根据上述计算P、Q的公式和正常的数据盘的数据计算出,区别点在于Dp和Dq通过计算未损坏的数据盘得到;P、Q所有数据盘都正常时计算所有数据盘得到。在后续实施例中将会提到参数x和y,上述x和y是上述n个数据盘中的两个,为区别描述方便用编号x和y表示,另外假设y大于x;其中P和Q分别表示校验盘P和Q的校验数据,在后续实施例中将不再对上述几个参数进行说明。
本发明实施例中将会提到的损坏包括:单校验盘P损坏、单校验盘Q损坏、单数据盘x损坏、双校验盘P和Q损坏、数据盘x和校验盘P同时损坏、数据盘x和校验盘Q同时损坏,数据盘x和数据盘y同时损坏七种情况;后续实施例将针对上述七种损坏后校验盘、数据盘的恢复方法和装置进行说明。
在具体实施方式的说明部分,没有特别说明,则加为GF域的加法运算,乘为GF域的乘法运算;后续实施例中不再一一说明。
实施例一,如图1所示,本发明实施例提供了一种独立磁盘冗余阵列中数据的备份方法,可以包括:
步骤101,获取数据盘数据;
步骤102,累加上述数据盘数据得到校验数据P;
步骤103,通过查迦罗瓦域乘2查找表,累加上述数据盘数据与2的数据盘号次幂的乘积得到校验数据Q。
假如数据盘有n个,用数学公式可以表示为:
P=D0+D1+...+Dn-1
Q=D0+2×D1+22×D2+...+2n-1×Dn-1
上述步骤的执行主体可以为数据恢复的装置,上述数据恢复的装置可以集成在磁盘阵列中,也可以为独立的装置;可以理解的是校验数据P、Q可以在计算得到后存储在外部存储器中在需要的时候读取,数据盘数据可以直接从数据盘中读取,所以步骤101和步骤102并不是每次恢复损坏的数据必须执行的步骤;上述恢复损坏的数据也可以是恢复损坏的数据盘和/或校验盘;另外上述获取数据盘数据可以是获取所有数据盘数据,也可以是只获取未损坏数据盘数据,用于计算的为未损坏的数据盘数据。
上述实施例中,使用查表的方法可以不用计算指数等复杂运算,通过查表直接得到计算的结果计算速度快,另外,不需要逻辑资源来实现乘法可以节约系统资源。
上述数据备份之后,本发明实施例还提供了独立磁盘冗余阵列中数据的恢复方法:
当校验盘P、校验盘Q、数据盘有一个损坏时恢复的方法可以是:
当单校验盘P损坏时,累加上述未损坏数据盘数据得到校验数据Dp,根据校验数据Dp恢复校验盘P数据;
单校验盘Q损坏时,通过查迦罗瓦域乘2查找表累加上述数据盘数据与2的数据盘号次幂的乘积得到校验数据Dq,根据校验数据Dq恢复校验盘Q数据;
当单校验盘P损坏时或单校验盘Q损坏时,数据盘都是正常的,此时Dp与P是相同的,Dq与Q是相同的。
上述GF域乘2查找表是在GF域上对一个数乘2,如果结果小于255该结果即计算结果,如果结果大于255需要将这个结果与0x11d做模运算得到计算结果,预置该表的方法可以参考代码:lut_multi_2=(lut_multi_2<<1)^((lut_multi_2&0x80)?0x11d:0);
单数据盘x损坏时,用校验数据P减去除数据盘x外的其他数据盘数据,得到恢复数据Dx,根据恢复数据Dx恢复数据盘x。
双校验盘P和Q损坏时,可以参考上述校验数据P和校验数据Q的计算方法;
当数据盘x和y都损坏时,根据校验数据P、校验数据Q和不包含数据盘x和数据盘y的校验数据的校验数据Dp和Dq计算恢复数据Dy,根据上述恢复数据Dy恢复数据盘y;根据校验数据P、不包含数据盘x和数据盘y的校验数据的校验数据Dp和Dy计算恢复数据Dx,根据上述恢复数据Dx恢复数据盘x。
假如数据盘有n个,上述根据校验数据P、校验数据Q和不包含数据盘x和数据盘y的校验数据的校验数据Dp和Dq计算恢复数据Dy的方法可以是:
计算上述P与Dp的和再与2的y减x次幂减1的商,和Q与Dq的和再与2的y减x次幂减1和2的x次幂的商的和,得到恢复数据Dy;上述2的y减x次幂减1的值和上述2的y减x次幂减1和2的x次幂通过查表得到;可以用公式表示为:
Dy=(Q-Dq)/(2y-2x)-(P-Dp)/(2y-x-1)
=[(P+Dp)+2-x(Q+Dq)]×(2y-x-1)-1
=(P+Dp)×(2y-x-1)-1+[2-x×(2y-x-1)-1]×(Q+Dq)
上述根据校验盘P、不包含数据盘x和数据盘y的校验数据的校验数据Dp和Dy计算恢复数据Dx包括:计算上述P、Dp和Dy的和得到恢复数据Dx。可以用公式表示为:
Dx=P+Dp+Dy
当数据盘x和校验盘Q损坏时,根据除数据盘数据Dx以外的其它数据盘数据和校验数据P计算恢复数据Dx,根据上述恢复数据Dx恢复数据盘x;根据除数据盘数据Dx以外的其它数据盘数据计算校验数据Dq,根据上述校验数据Dq恢复校验盘Q。
上述根据除数据盘数据Dx以外的其它数据盘数据和校验数据P计算恢复数据Dx包括:
累加除数据盘x以外的上述数据盘数据,再与校验数据P的和得到上述恢复数据Dx,根据上述恢复数据Dx恢复数据盘x;所述累加除数据盘x以外的上述数据盘数据,再与校验数据P的和得到上述恢复数据Dx可以用公式表示为:
Dx=D0+D1+...+Dx-1+Dx+1...+Dn-1+P
上述根据数据盘数据计算校验数据Dq包括:
根据除数据盘数据x以外的其它数据盘数据计算校验数据Dq,可以用公式表示为:
Dq=[D0+2×D1+22×D2...+2x-1×Dx-1+2x+1×Dx+1...+2n-1×Dn-1]
+Dx×2x
当数据盘x和校验盘P损坏时,根据校验数据Q和除数据盘x以外的其它数据盘数据计算恢复数据Dx,根据上述恢复数据Dx恢复数据盘x;根据数据盘数据计算校验数据Dp,根据上述恢复校验数据Dp恢复校验盘P。
上述根据校验数据Q和数据盘数据计算恢复数据Dx包括:
计算上述Q与除数据盘x以外的其它数据盘的校验数据的差再与2的x次方的商得到恢复数据Dx;可以用公式表示为:
Dx=[Q-D0+2×D1+22×D2...+2x-1×Dx-1+2x+1×Dx+1...+2n-1×Dn-1]×2-x
上述根据数据盘数据计算校验数据Dp包括:
累加上述数据盘数据得到校验数据Dp,可以用公式表示为:
Dp=D0+D1+...+Dx...+Dn-1
上述方法实施例的应用的场景可以为:前级连接4lane的总线(PCIExpress,PCIE)接口,高速数据经过寄存后送入RAID6计算单元,系统磁盘数为32个,其中,数据盘为30个,校验盘为2个。先根据30个数据盘中的数据调用计算P和Q单元计算出校验数据P和Q,然后存到外部存储器中,当发生磁盘损坏时根据不同的损坏情况调用不同的计算单元,从而达到恢复数据目的。本方案选用的FPGA不带DSP运算模块,而且逻辑单元和RAM块也有限,使用该基于查找表结构的方法或装置能够实现数据的不失真恢复。
实施例二,如图2所示,本发明实施例还提供了一种装置,用于校验数据的获取、校验盘P和或Q损坏后校验盘的恢复,包括:
数据获取单元201,用于获取数据盘数据;
校验数据P计算模块202,用于累加上述数据盘数据得到校验数据Dp;
校验数据Q计算模块203,用于通过查迦罗瓦域乘2查找表累加上述数据盘数据与2的数据盘号次幂的乘积得到校验数据Q。
上述实施例没有使用选择器模块,节约了系统资源。
进一步地,指数运算需要占用很多逻辑资源并且运算速率有限,上述方案采用查表的方式到结果,不用进行计算,节约了系统资源,并且能够达到较高的运算速率;
所述校验数据P计算模块202,还用于当单校验盘P损坏时,累加未损坏数据盘数据得到校验数据Dp,根据校验数据Dp恢复校验盘P;
校验数据Q计算模块203,还用于当单恢复数据盘Q损坏时,通过查迦罗瓦域乘2查找表累加所述数据盘数据与2的数据盘号次幂的乘积得到校验数据Dq,根据校验数据Dq恢复校验盘Q;
如图3所示,上述装置还可以包括:恢复数据x计算模块303;
上述恢复数据x计算模块303,用于当单数据盘x损坏时,用校验数据P减去除数据盘x外的其他数据盘数据,得到恢复数据Dx,根据恢复数据Dx恢复数据盘x。
实施例三,如图4所示,本发明实施例还提供了另一种装置400,作为实施例二的具体说明,用于单校验盘P和或Q损坏后校验盘的恢复,与实施例二对应地,
所述校验数据P计算模块202包括:寄存器单元401、第一异或单元402;
所述校验数据Q计算模块203包括:寄存器单元401、第二异或单元403;
其中,寄存器(buffer,BUF)单元401,用于将上述数据获取单元201获取到的数据盘数据调整时序后发送给第一异或单元402和第二异或单元403;
第一异或(Exclusive OR,XOR)单元402,用于累加上述数据盘数据得到校验数据Dp;
第二异或单元403,用于查迦罗瓦域乘2查找表累加上述数据盘数据与2的数据盘号次幂的乘积得到校验数据Dq;
伽罗瓦域乘2查找表(LUT_2)单元404,用于存储伽罗瓦域乘2查找表。LUT_2是GF域的乘2查找表,可以实现8bit数在GF域上的乘2运算。GF域乘2查找表是计算好的一个表,可以直接查找计算的结果,使用过程不需要占用额外的用于计算GF域乘法的逻辑资源;节约了系统资源;
第二异或单元403的计算可以由
Dq=[D0+2×D1+22×D2...+2x-1×Dx-1+2x+1×Dx+1...+2n-1×Dn-1]+Dx×2x
的一个变形:Q=((...Dn-1...)×2+D2)×2+D1)×2+D0得到;上述变形后的计算方式就可以采用递归调用的结构来设计数字电路;
以上述装置的一个应用场景为例:假设系统由32个磁盘构成,每个时钟周期进入系统的数据为8bit×32=256bit,输入数据经过上述装置只需要1个时钟周期就可以计算出该256bit输入数据对应的校验数据raid_P和raid_Q,这两个校验数据都是为8bit。以此类推,每256bit的输入数据对应两个8bit的校验数据。计算出的校验数据可以传到系统专门的存储空间,当磁盘发生故障的时候,再调出这些数据到其它恢复数据的模块中进行数据恢复。
实施例四,如图5所示,本发明实施例还提供了一种装置500,用于数据盘x和数据盘y损坏时的恢复,包括:
恢复数据y计算模块501,用于根据校验数据P、校验数据Q和不包含数据盘x和数据盘y的校验数据的校验数据Dp和Dq计算恢复数据Dy,上述恢复数据Dy用于恢复数据盘y;
恢复数据x计算模块502,用于根据校验数据P、不包含数据盘x和数据盘y的校验数据的校验数据Dp和上述Dy计算恢复数据Dx,根据上述恢复数据Dx恢复数据盘x。
实施例五,如图6所示,本发明实施例还提供了另一种装置,作为实施例四的具体说明,可以称为恢复x,y模块,用于数据盘x和数据盘y损坏的恢复,与实施例四对应地:
所述恢复数据y计算模块501包括:第一异或单元601、第二异或单元602、第四异或单元604、第一查找表605、第二查找表606、第一迦罗瓦域乘法单元607、第二迦罗瓦域乘法单元608、第二寄存器单元610;
所述恢复数据x计算模块502包括:第一异或单元601、第二异或单元602、第三异或单元603、第四异或单元604、第一查找表605、第二查找表606、第一迦罗瓦域乘法单元607、第二迦罗瓦域乘法单元608、第一寄存器单元609;
其中,第一异或单元601,用于接收并计算校验数据P和不包含数据盘x和数据盘y的校验数据的校验数据Dp的和,然后将上述和发送给第一寄存器单元609和第一迦罗瓦域乘法单元607;
第一查找表(rom_2_yx)605,用于接收损坏数据盘编号x和y,查表得到值:2的y减x次幂与1的差的倒数,并将上述第一查找表605查表得到的值发送给第一迦罗瓦域乘法器607;上述第一查找表605可以对应GF域的(2y-x-1)-1查找表;
第二查找表(rom_2_xyx)606,用于接收损坏数据盘编号x和y,查表得到值:2的y减x次幂减1与2的x次幂的积的倒数,将上述第二查找表606查表得到的值发送给第二迦罗瓦域乘法单元608;上述第二查找表606可以对应GF域的2-x×(2y-x-1)-1查找表;由于GF域中(2y-x-1)-1和2-x×(2y-x-1)-1运算实现起来非常复杂,即需要占用很多逻辑资源并且运算速率有限,上述方案采用的查表的方式到结果,不用再进行计算,节约了系统资源,并且能够达到较高的运算速率;
第四异或单元604,用于接收并计算校验数据Q和不包含数据盘x和数据盘y的校验数据的校验数据Dq的和,然后将上述和发送给第二迦罗瓦域乘法单元608;
第一迦罗瓦域乘法单元607,用于计算第一异或单元601发送的上述和,与第一查找表605发送的上述值的积,将上述第一迦罗瓦域乘法单元607计算的积发送给第二异或单元602;迦罗瓦域乘法单元也可称为GF(28)域乘法模块MULTIPLY;
第二迦罗瓦域乘法单元608,用于计算第二查找表606发送的上述值,与第四异或单元604发送的上述和的积,将第二迦罗瓦域乘法单元608计算的积发送给第二异或单元602;
第二异或单元602,用于计算上述第一迦罗瓦域乘法单元607发送的积与第二迦罗瓦域乘法单元608发送的积的和,将上述第二异或单元602计算的和发送给第三异或单元603和第二寄存器单元610;
第一寄存器单元609,用于调整上述第一异或单元601发送的和的时序后发送给第三异或单元603;
第三异或单元603,用于计算上述第一寄存器单元609发送的和与第二异或单元602发送的上述和的和,得到恢复数据Dx,上述Dx用于恢复数据盘x;
第二寄存器单元610,用于接收到上述第二异或单元602发送的和,调整时序后输出,上述第二异或单元602发送的和为恢复数据Dy,用于恢复数据盘y。
恢复x、y模块中采用查找表、异或逻辑并调用GF(28)域乘法模块和调用计算P、Q模块实现数据的恢复,运算公式可以:
Dy=(Q-Dq)/(2y-2x)-(P-Dp)/(2y-x-1)
=[(P+Dp)+2-x(Q+Dq)]×(2y-x-1)-1
=(P+Dp)×(2y-x-1)-1+[2-x×(2y-x-1)-1]×(Q+Dq)
Dx=P+Dp+Dy
上述公式中,P和Q为预先计算好的校验数据P和校验数据Q;DP和DQ为不包含失效盘x和失效盘y的校验数据的校验数据DP和DQ;x和y分别是两个失效盘在系统中对应的磁盘序号。根据上面的方程可以得到恢复x、y模块的实现框图,其中MULTIPLY为调用的GF域乘法模块,可以完成任意两个8bit数的GF域乘法运算;rom_2_yx可以对应GF域的(2y-x-1)-1查找表;rom_2_xyx可以对应GF域的2-x×(2y-x-1)-1查找表;
设计中调用了两次GF域乘法模块和调用一次计算P、Q模块,raid_P、raid_Q以及X、Y可以直接输入,而raid_Dp和raid_Dq则可以通过调用计算P、Q模块得到,rom_2_yx和rom_2_xyx可以分别为32×8bit的查找表和1024×8bit的查找表。使用流水结构实现设计,从数据输入到数据恢复只需要不到10个时钟周期。
以一个实际应用的场景为例:假设系统的32个数据盘中的2个和第17个盘损坏了,那么根据对应第2个和第17个磁盘的位置知道x=2,y=17;根据x和y的值分别查rom_2_yx查找表和rom_2_xyx查找表得到(2y-x-1)-1的值和2-x×(2y-x-1)-1的值,图中用1a和2a表示;把32个数据盘中除了第2个和第17个盘的数据通过计算P、Q模块计算出新的校验数据raid_DP和raid_DQ,图中用3a和4a表示;raid_DP和原先计算好的raid_P进行异或运算得到5a;raid_DQ和原先计算好的raid_Q进行异或运算得到6a;1a和5a进行GF域乘法运算得到7a;2a和6a进行GF域乘法运算得到8a;7a和8a异或得到9a;9a和5a异或得到10a,即恢复出来第2个盘的数据Dx;9a经过寄存输出后得到11a,即恢复出来第17个盘的数据Dy。
实施例六,如图7所示,在对本上述实施例五作进一步说明前本发明实施例还提供了迦罗瓦域乘法单元700的具体实施例,用于计算两个数在GF域的积,所述迦罗瓦域乘法单元700可以包括:
第一正变换表单元701、第二正变换表单元702、加法器单元703、反变换表单元704;正变换表单元也可以称为GFLOG(28)单元;
第一正变换表单元701,用于接收第一运算数据后查找上述第一运算数据在GF正交变换表上对应的迦罗瓦域值;将上述第一运算数据在GF正交变换表上对应的迦罗瓦域值发送给加法器单元703;
第二正变换表单元702,用于接收第二运算数据后查找上述第二运算数据在GF正交变换表上对应的迦罗瓦域值;将上述第二运算数据在GF正交变换表上对应的迦罗瓦域值发送给加法器单元703;
加法器单元703,用于计算上述第一运算数据在GF正交变换表上对应的迦罗瓦域值与上述第二运算数据在GF正交变换表上对应的迦罗瓦域值的和,然后将上述加法器单元703计算的和发送给反变换表单元704;上述加法器单元703也可以成为ADDER模块;实现GF域上的乘法功能中的加法器使用的加法位为代数的加法;后续实施例中不再一一说明;
反变换表单元704,用于查上述加法器单元703发送的和在GF反变换表上对应的迦罗瓦域值,得到上述第一数据与第二数据在GF域上的积;实现了GF域上的乘法功能;
假设8bit的输入第一运算数据data_a和第二运算数据data_b进行GF域乘法,先将data_a和data_b分别查GF正变换表得到它们对应的GF域的值data_a_gf和data_b_gf;这时data_a_gf和data_b_gf要进入ADDER模块进行加法运算得到data_gf_add,即data_a_gf+data_b_gf=data_gf_add;如果data_gf_add的值大于255就将data_gf_add与8’hff进行模运算得到data_gf_add_mod,如果data_gf_add的值小于255则不需要进行任何运算,即data_gf_add_mod=data_gf_add;最后将data_gf_add_mod查GF反变换表得到最终的GF域乘法的结果data_gf_multip。
实施例七,如图8所示,本实施例将对实施例五作进一步的说明,上述第一迦罗瓦域乘法单元607包括:
第一正变换表单元801、第二正变换表单元802、第一加法器单元803、第一反变换表单元804;
其中,第一正变换表单元801,用于查迦罗瓦域正交变换表得到上述第一异或单元601发送的和对应的迦罗瓦域的值;
第二正变换表单元802,用于查迦罗瓦域正交变换表得到第一查找表605发送的上述值对应的迦罗瓦域的值;
第一加法器单元803,用于计算上述第一异或单元601发送的和对应的迦罗瓦域的值与上述第一查找表605发送的上述值对应的迦罗瓦域的值的和并发送给第一反变换表单元804;
第一反变换表单元804,用于根据上述第一异或单元601发送的和对应的迦罗瓦域的值与上述第一查找表605发送的上述值对应的迦罗瓦域的值的和对应的迦罗瓦域的值与上述第四异或单元604发送的上述和对应的迦罗瓦域的值的和查迦罗瓦域反变换表得到第一异或单元601发送的上述和,与第一查找表605发送的上述值的积,将上述第一反变换表单元804查表得到的积发送给第二异或单元602;
上述第二迦罗瓦域乘法单元608包括:
第三正变换表单元805、第四正变换表单元806、第二加法器单元807、第二反变换表单元808;
其中,第三正变换表单元805,用于查迦罗瓦域正交变换表得到上述第一异或单元601发送的和,或第二查找表606发送的上述值对应的迦罗瓦域的值;
第四正变换表单元806,用于查迦罗瓦域正交变换表得到第一查找表605发送的上述值,或第四异或单元604发送的上述和对应的迦罗瓦域的值;
第二加法器单元807,用于计算上述第二查找表606发送的上述值对应的迦罗瓦域的值与上述第四异或单元604发送的上述和对应的迦罗瓦域的值的和并发送给第二反变换表单元808;
第二反变换表单元808,用于根据上述第二查找表606发送的上述值对应的迦罗瓦域的值与上述第四异或单元604发送的上述和对应的迦罗瓦域的值的和查迦罗瓦域反变换表得到第二查找表606发送的上述值,与第四异或单元604发送的上述和的积;将第二反变换表单元808查表得到的积发送给第二异或单元602。
实施例八,如图9所示,本发明实施例提供了一种装置900,用于数据盘x和校验盘Q损坏时的恢复,包括:
恢复数据x计算模块901,用于根据除数据盘数据x以外的其它数据盘数据和校验数据P计算恢复数据Dx,上述恢复数据Dx用于恢复数据盘x;
恢复数据Q计算模块902,用于根据除数据盘数据x以外的其它数据盘数据计算校验数据Dq,上述校验数据Dq用于恢复校验盘Q。
计算的方式可以参考:
Dx=D0+D1+...+Dx-1+Dx+1...+Dn-1+P
Dq=[D0+2×D1+22×D2...+2x-1×Dx-1+2x+1×Dx+1...+2n-1×Dn-1]+Dx×2x
实施例九,如图10所示,本发明实施例提供了另一种装置1000,作为实施例八的具体实现方式,可以称为恢复x,Q模块,用于数据盘x和校验盘Q损坏的恢复,对应地:
恢复数据x计算模块901包括:校验数据获取单元1001、第一寄存器单元1003,第三寄存器单元1005,第一异或单元1006;
恢复数据Q计算模块902包括:校验数据获取单元1001、迦罗瓦域乘法单元1002、第一寄存器单元1003,第二寄存器单元1004,第一异或单元1006,第二异或单元1007,查找表单元1008;上述查找表单元1008可以为rom_2_x查找表存储查找表:2x
其中,校验数据获取单元1001,用于获取校验数据Dp和校验数据Dq;将校验数据Dp发送给第一异或单元1006,将校验数据Dq发送给第二异或单元1007;
第一寄存器单元1003,用于将上述校验盘的数据P发送给第一异或单元1006;
第一异或单元1006,用于计算上述校验数据获取单元1001发送的校验数据Dp与上述第一寄存器单元1003发送的上述校验盘的数据P的和,将上述第一异或单元1006计算的和发送给第三寄存器单元1005和第二异或单元1007;
第三寄存器单元1005,用于接收上述第一异或单元1006发送的和,调整时序后输出;上述和为恢复数据Dx,用于恢复数据盘x;
第二寄存器单元1004,用于接收损坏的数据盘的编号x,调整时序后发送给查找表单元1008;
查找表单元1008,用于查表得到2的x次幂的值,并将上述查找表单元1008查表得到的值发送给迦罗瓦域乘法单元1002;
迦罗瓦域乘法单元1002,用于计算上述第一异或单元1006发送的和,与上述查找表单元1008发送的值的积,并将上述迦罗瓦域乘法单元1002计算的积发送给第二异或单元1007;
第二异或单元1007,用于计算上述校验数据获取单元1001发送的校验数据Dq与上述迦罗瓦域乘法单元1002发送的积的和,上述和为校验数据Dq用于恢复校验盘Q。
上述恢复x、Q模块可以采用查找表、异或逻辑、调用GF(28)域乘法模块实现数据的恢复,运算公式如下:
当x和Q失效时,根据P算出x:Dx=D0+D1+...+Dx-1+Dx+1...+Dn-1+P
然后再恢复Q:Dq=[D0+2×D1+22×D2...+2x-1×Dx-1+2x+1×Dx+1...+2n-1×Dn-1]+Dx×2x
其中,rom_2_x对应2x查找表;MULTIPLY对应GF域乘法模块,raid_P_Q即调用的计算P、Q模块。在图10中调用了一次GF域乘法模块和一次计算P、Q模块;其中rom_2_x可以是一个32×8bit的查找表。
实施例十,如图11所示,本实施例提供了对实施例九作进一步说明的实施例,上述迦罗瓦域乘法单元1002可以包括:
第一正变换表单元1101、第二正变换表单元1102、加法器单元1103、反变换表单元1104;
其中,第一正交变换单元1101,用于查迦罗瓦域正交变换表得到上述第一异或单元1006发送的和对应的迦罗瓦域的值;
第二正变换表单元1102,用于查迦罗瓦域正交变换表得到上述查找表单元1008发送的值对应的迦罗瓦域的值;
加法器单元1103,用于计算上述第一异或单元1006发送的和对应的迦罗瓦域的值与上述查找表单元1008发送的值对应的迦罗瓦域的值的和并发送给反变换表单元1104;
反变换表单元1104,用于计算上述第一异或单元1006发送的和对应的迦罗瓦域的值与上述查找表单元1008发送的值对应的迦罗瓦域的值的和查迦罗瓦域反变换表得到上述第一异或单元1006发送的和,与上述查找表单元1008发送的值的积,将上述反变换表单元1104查表得到的积发送给第二异或单元1007。
实施例十一,如图12所示,本发明实施例提供了一种装置1200,用于数据盘x和校验盘P损坏的恢复,包括:
恢复数据x计算模块1201,用于根据校验数据Q和除数据盘x以外的其它数据盘数据计算恢复数据Dx,上述恢复数据Dx用于恢复数据盘x;
恢复数据P计算模块1202,用于根据数据盘数据计算恢复校验数据Dp,上述恢复校验数据Dp用于恢复校验盘P。
上述计算的方式可以参考:
Dx=[Q-D0+2×D1+22×D2...+2x-1×Dx-1+2x+1×Dx+1...+2n-1×Dn-1]×2-x
Dp=D0+D1+...+Dx...+Dn-1
实施例十二,如图13所示,本发明实施例提供了另一种装置,作为实施例十一的一个具体实现方式,可以称为恢复x,P模块,用于数据盘x和校验盘P损坏的恢复,对应地;
恢复数据x计算模块1201包括:校验数据获取单元1301、第一寄存器单元1302、第三寄存器单元1304、第四寄存器单元1305、迦罗瓦域乘法单元1306、查找表单元1307、第一异或单元1308;
恢复数据P计算模块1202包括:校验数据获取单元1301、第一寄存器单元1302、第二寄存器单元1303、第三寄存器单元1304、迦罗瓦域乘法单元1306、查找表单元1307、第一异或单元1308、第二异或单元1309;
其中,校验数据获取单元1301,用于获取校验数据Dp和校验数据Dq;将校验数据Dp发送给第二寄存器单元1303,将校验数据Dq发送给第一异或单元1308;
第一寄存器单元1302,用于将上述校验盘的数据Q发送给第一异或单元1308;
第一异或单元1308,用于计算上述校验数据获取单元1301发送的校验数据Dp和第一寄存器单元1302发送的数据Q的和;并将上述第一异或单元1308计算的和发送给迦罗瓦域乘法单元1306;
第三寄存器单元1304,用于接收损坏的数据盘的编号x,调整时序后发送给查找表单元1307;
查找表单元1307,用于查表得到2的x次幂的倒数的值,将上述查找表单元1307查表得到的值发送给迦罗瓦域乘法单元1306;
迦罗瓦域乘法单元1306,用于计算上述第一异或单元1308发送的和,与上述查找表单元1307发送的值的积,将上述迦罗瓦域乘法单元1306计算的积发送给第二异或单元1309和第四寄存器单元1305;
第二寄存器单元1303,用于接收上述校验数据获取单元1301发送的校验数据Dp,调整时序后发送给第二异或单元1309;
第二异或单元1309,用于计算上述第二寄存器单元1303发送的校验数据Dp,与上述迦罗瓦域乘法单元1306发送的积的和,上述和为校验数据Dp用于恢复校验盘P;
第四寄存器单元1305,用于接收上述迦罗瓦域乘法单元1306发送的积,调整时序后输出;上述积为恢复数据Dx,用于恢复数据盘x。
上述恢复x、P模块中采用查找表、异或逻辑、调用GF(28)域乘法模块实现数据的恢复,运算公式如下:
当数据盘x和校验盘P失效时,根据Q算出x:
Dx=[Q-D0+2×D1+22×D2...+2x-1×Dx-1+2x+1×Dx+1...+2n-1×Dn-1]×2-x
然后再恢复P:Dp=D0+D1+...+Dx...+Dn-1
其中,rom_2_x_int对应2-x查找表;MULTIPLY对应GF域乘法模块,raid_P_Q即调用的计算P、Q模块。在图13中调用了一次GF域乘法模块和调用一次计算P、Q模块;上述rom_2_x_int可以为一个32×8bit的查找表。
实施例十三,如图14所示,本实施例提供了对实施例十二作进一步说明的实施例,上述迦罗瓦域乘法单元1306包括:
第一正变换表单元1401、第二正变换表单元1402、加法器单元1403、反变换表单元1404;
其中,第一正交变换单元1401,用于查迦罗瓦域正交变换表得到上述第一异或单元1308发送的和对应的迦罗瓦域的值;
第二正变换表单元1402,用于查迦罗瓦域正交变换表得到上述查找表单元1307发送的值的积对应的迦罗瓦域的值;
加法器单元1403,用于计算上述第一异或单元1308发送的和对应的迦罗瓦域的值与上述查找表单元1307发送的值的积对应的迦罗瓦域的值的和并发送给反变换表单元1404;
反变换表单元1404,用于根据上述第一异或单元1308发送的和对应的迦罗瓦域的值与上述查找表单元1307发送的值的积对应的迦罗瓦域的值的和查迦罗瓦域反变换表得到上述第一异或单元1308发送的和,与上述查找表单元1307发送的值的积,将上述反变换表单元1404查表得到的积发送给第二异或单元1309和第四寄存器单元1305。
上述实施例二到实施例十三的装置,从功能上划分可以为分别从计算P、Q、恢复x、y、恢复x、P和恢复x、Q进行了说明,上述实施例中没有使用选择器模块,解决了大量使用选器模块浪费系统资源的问题,达到节省系统资源的目的;另外上述实施例中也不再使用DSP乘法器,目前并不是所有的FPGA都具有DSP乘法器,相比而言本发明实施例具有更广泛的应用范围。在实施例中多次使用到查找表,通过直接查表的方法得到计算需要的结果,不再使用逻辑部件来进行运算,能够节约逻辑部件,并且能够提升计算的速度。
上述装置应用的场景可以为:前级连接4lane的总线(PCI Express,PCIE)接口,高速数据经过寄存后送入RAID6计算单元,系统磁盘数为32个,其中,数据盘为30个,校验盘为2个。先根据30个数据盘中的数据调用计算P和Q单元计算出校验数据P和Q,然后存到外部存储器中,当发生磁盘损坏时根据不同的损坏情况调用不同的计算单元,从而达到恢复数据目的。本方案选用的FPGA不带DSP运算模块,而且逻辑单元和RAM块也有限,使用该基于查找表结构的方法或装置能够实现数据的不失真恢复。经测试,该RAID6系统使用的逻辑单元为2000左右,实际上板的最大吞吐率为635MB/s,接近4lane的PCIE通道的800MB/s的线速。
实施例十四,如图15所示,本发明实施例还提供了上述装置实施例二到十三装置的整体结构实施例;包括:计算P、Q模块1501(compute_P_Q.v)、恢复x、y模块1502(recover_x_y_PQ.v)、恢复x、P模块1503(recover_x_P.v)和恢复x、Q模块1504(recover_x_Q.v);
表1 raid计算模块的引脚说明
具体恢复数据的方式可以参考实施例二到实施例十三。
实施例十五,如图16所示,本发明实施例还提供了从宏观上综合说明实施例四到实施例十三的实施例;可以一并参考图15,包括:计算P、Q模块1501(compute_P_Q.v)、恢复x、y模块1502(recover_x_y_PQ.v)、恢复x、P模块1503(recover_x_P.v)和恢复x、Q模块1504(recover_x_Q.v);外部存储器1601
计算P、Q模块1501(compute_P_Q.v),用于根据数据盘数据计算出校验数据P和校验数据Q,将上述校验数据P和校验数据Q发送给外部存储器存储;
外部存储器1601,用于接收计算P、Q模块1501发送的校验数据P和校验数据Q;将上述校验数据P和校验数据Q发送给恢复x、y模块1502、恢复x、P模块1503和恢复x、Q模块1504;
当数据盘x和数据盘y损坏时,计算P、Q模块1501用于计算除数据盘x和数据盘y外的其他数据盘的校验数据Dp和校验数据Dq,并将校验数据Dp和校验数据Dq发送给恢复x、y模块1502;
恢复x、y模块1502,用于接收到校验数据Dp和校验数据Dq、校验数据P和校验数据Q后计算恢复数据Dx和Dy用于恢复数据盘x和数据盘y;
当数据盘x和校验盘P损坏时,计算P、Q模块1501用于计算校验数据Dp,并将校验数据Dp发送给恢复x、P模块1503;
恢复x、P模块1503,用于根据未损坏数据盘数据和校验数据Q计算恢复数据Dx,用于恢复数据盘x;接收计算P、Q模块1501发送的校验数据Dp用于恢复校验盘P;
当数据盘x和校验盘Q损坏时,计算P、Q模块1501用于计算校验数据Dq并将校验数据Dq发送给恢复x、Q模块1504;
恢复x、Q模块1504,用于根据校验数据P和未损坏数据盘数据计算恢复数据Dx,用于恢复数据盘x;接收计算P、Q模块1501发送的校验数据Dq用于恢复校验盘Q;
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明实施例所提供的一种独立磁盘冗余阵列中数据备份、恢复的方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (18)
1.一种独立磁盘冗余阵列的装置,其特征在于,包括:
数据获取单元,用于获取数据盘数据;
校验数据P计算模块,用于累加所述数据盘数据得到校验数据P;
校验数据Q计算模块,用于通过查迦罗瓦域乘2查找表,累加所述数据盘数据与2的数据盘号次幂的乘积得到校验数据Q。
2.根据权利要求1所述装置,其特征在于,
所述校验数据P计算模块,还用于当单校验盘P损坏时,累加未损坏数据盘数据得到校验数据Dp,根据校验数据Dp恢复校验盘P;
所述校验数据Q计算模块,还用于当单恢复数据盘Q损坏时,通过查迦罗瓦域乘2查找表累加所述数据盘数据与2的数据盘号次幂的乘积得到校验数据Dq,根据校验数据Dq恢复校验盘Q;
还包括:
恢复数据x计算模块,用于当单数据盘x损坏时,用校验数据P减去除数据盘x外的其他数据盘数据,得到恢复数据Dx,根据恢复数据Dx恢复数据盘x。
3.根据权利要1所述装置,其特征在于,
所述校验数据P计算模块包括:寄存器单元、第一异或单元;
所述校验数据Q计算模块包括:所述寄存器单元、第二异或单元;
其中,所述寄存器单元,用于将所述数据获取单元获取到的数据盘数据调整时序后发送给第一异或单元和第二异或单元;
第一异或单元,用于累加所述数据盘数据得到校验数据P;
第二异或单元,用于查迦罗瓦域乘2查找表,累加所述数据盘数据与2的数据盘号次幂的乘积得到校验数据Q;
伽罗瓦域乘2查找表单元,用于存储伽罗瓦域乘2查找表。
4.根据权利要求1所述装置,其特征在于,还包括:
恢复数据y计算模块,用于据盘x和数据盘y损坏时,根据校验数据P、校验数据Q和不包含数据盘x和数据盘y的校验数据的校验数据Dp和Dq计算恢复数据Dy,所述恢复数据Dy用于恢复数据盘y;
恢复数据x计算模块,用于据盘x和数据盘y损坏时,根据校验数据P、不包含数据盘x和数据盘y的校验数据的校验数据Dp和所述Dy计算恢复数据Dx,所述恢复数据Dx恢复数据盘x。
5.根据权利要求4所述装置,其特征在于,
所述恢复数据y计算模块包括:第一异或单元、第二异或单元、第四异或单元、第一查找表、第二查找表、第一迦罗瓦域乘法单元、第二迦罗瓦域乘法单元、第二寄存器单元;
所述恢复数据x计算模块包括:第一异或单元、第二异或单元、第三异或单元、第四异或单元、第一查找表、第二查找表、第一迦罗瓦域乘法单元、第二迦罗瓦域乘法单元、第一寄存器单元;
其中,第一异或单元,用于接收并计算校验数据P和不包含数据盘x和数据盘y的校验数据的校验数据Dp的和,然后将所述和发送给第一寄存器单元和第一迦罗瓦域乘法单元;
第一查找表,用于接收损坏数据盘编号x和y,查表得到值:2的y减x次幂与1的差的倒数,并将所述第一查找表查表得到的值发送给第一乘法器单元;所述y大于x;
第二查找表,用于接收损坏数据盘编号x和y,查表得到值:2的y减x次幂减1与2的x次幂的积的倒数,将所述第二查找表查表得到的值发送给第二迦罗瓦域乘法单元;
第四异或单元,用于接收并计算校验数据Q和不包含数据盘x和数据盘y的校验数据的校验数据Dq的和,然后将所述和发送给第二迦罗瓦域乘法单元;
第一迦罗瓦域乘法单元,用于计算第一异或单元发送的所述和,与第一查找表发送的所述值的积,将所述第一迦罗瓦域乘法单元计算的积发送给第二异或单元;
第二迦罗瓦域乘法单元,用于计算第二查找表发送的所述值,与第四异或单元发送的所述和的积,将第二迦罗瓦域乘法单元计算的积发送给第二异或单元;
第二异或单元,用于计算所述第一迦罗瓦域乘法单元发送的积与第一迦罗瓦域乘法单元发送的积的和,将所述第二异或单元计算的和发送给第三异或单元和第二寄存器单元;
第一寄存器单元,用于调整所述第一异或单元发送的和的时序后发送给第三异或单元;
第三异或单元,用于计算所述第一寄存器单元发送的和与第二异或单元发送的所述和的和,得到恢复数据Dx,所述Dx用于恢复数据盘x;
第二寄存器单元,用于接收到所述第二异或单元发送的和,调整时序后输出,所述第二异或单元发送的和为恢复数据Dy,用于恢复数据盘y。
6.根据权利要求5所述装置,其特征在于,所述第一迦罗瓦域乘法单元包括:
第一正变换表单元、第二正变换表单元、第一加法器单元、第一反变换表单元;
其中,第一正变换表单元,用于查迦罗瓦域正交变换表得到所述第一异或单元发送的和对应的迦罗瓦域的值;
第二正变换表单元,用于查迦罗瓦域正交变换表得到第一查找表发送的所述值对应的迦罗瓦域的值;
第一加法器单元,用于计算所述第一异或单元发送的和对应的迦罗瓦域的值与所述第一查找表发送的所述值对应的迦罗瓦域的值的和并发送给第一反变换表单元;
第一反变换表单元,用于根据所述第一异或单元发送的和对应的迦罗瓦域的值与所述第一查找表发送的所述值对应的迦罗瓦域的值的和对应的迦罗瓦域的值与所述第四异或单元发送的所述和对应的迦罗瓦域的值的和查迦罗瓦域反变换表得到第一异或单元发送的所述和,与第一查找表发送的所述值的积,将所述第一反变换表单元查表得到的积发送给第二异或单元;
所述第二迦罗瓦域乘法单元包括:
第三正变换表单元、第四正变换表单元、第二加法器单元、第二反变换表单元;
其中,第三正变换表单元,用于查迦罗瓦域正交变换表得到所述第一异或单元发送的和,或第二查找表发送的所述值对应的迦罗瓦域的值;
第四正变换表单元,用于查迦罗瓦域正交变换表得到第一查找表发送的所述值,或第四异或单元发送的所述和对应的迦罗瓦域的值;
第二加法器单元,用于计算所述第二查找表发送的所述值对应的迦罗瓦域的值与所述第四异或单元发送的所述和对应的迦罗瓦域的值的和并发送给第二反变换表单元;
第二反变换表单元,用于根据所述第二查找表发送的所述值对应的迦罗瓦域的值与所述第四异或单元发送的所述和对应的迦罗瓦域的值的和查迦罗瓦域反变换表得到第二查找表发送的所述值,与第四异或单元发送的所述和的积;将第二反变换表单元查表得到的积发送给第二异或单元。
7.根据权利要求1所述装置,其特征在于,还包括:
恢复数据x计算模块,用于数据盘x和校验盘Q损坏时,根据除数据盘数据Dx以外的其它数据盘数据和校验数据P计算恢复数据Dx,所述恢复数据Dx用于恢复数据盘x;
恢复数据Q计算模块,用于数据盘x和校验盘Q损坏时,根据数据盘数据计算校验数据Dq,所述校验数据Dq用于恢复校验盘Q。
8.根据权利要求7所述装置,其特征在于,
所述恢复数据Q计算模块包括:校验数据获取单元、迦罗瓦域乘法单元、第一寄存器单元,第二寄存器单元,第一异或单元,第二异或单元,查找表单元;
所述恢复数据x计算模块包括:校验数据获取单元、第一寄存器单元,第三寄存器单元,第一异或单元;
其中,校验数据获取单元,用于获取校验数据Dp和校验数据Dq;将校验数据Dp发送给第一异或单元,将校验数据Dq发送给第二异或单元;
第一寄存器单元,用于将所述校验盘的数据P发送给第一异或单元;
第一异或单元,用于计算所述校验数据获取单元发送的校验数据Dp与所述第一寄存器单元发送的所述校验盘的数据P的和,将所述第一异或单元计算的和发送给第三寄存器单元和第二异或单元;
第三寄存器单元,用于接收所述第一异或单元发送的和,调整时序后输出;所述和为恢复数据Dx,用于恢复数据盘x;
第二寄存器单元,用于接收损坏的数据盘的编号x,调整时序后发送给查找表单元;
查找表单元,用于查表得到2的x次幂的值,并将所述查找表单元查表得到的值发送给迦罗瓦域乘法单元;
迦罗瓦域乘法单元,用于计算所述第一异或单元发送的和,与所述查找表单元发送的值的积,并将所述迦罗瓦域乘法单元计算的积发送给第二异或单元;
第二异或单元,用于计算所述校验数据获取单元发送的校验数据Dq与所述迦罗瓦域乘法单元发送的积的和,所述和为校验数据Dq用于恢复校验盘Q。
9.根据权利要求1所述装置,其特征在于,还包括:
恢复数据x计算模块,用于数据盘x和校验盘P损坏时,根据校验数据Q和除数据盘x以外的其它数据盘数据计算恢复数据Dx,所述恢复数据Dx用于恢复数据盘x;
恢复数据P计算模块,用于数据盘x和校验盘P损坏时,根据数据盘数据计算校验数据Dp,所述恢复校验数据Dp用于恢复校验盘P。
10.根据权利要求9所述装置,其特征在于,
所述恢复数据x计算模块包括:校验数据获取单元、第一寄存器单元、第三寄存器单元、第四寄存器单元、迦罗瓦域乘法单元、查找表单元、第一异或单元;
恢复数据P计算模块包括:校验数据获取单元、第一寄存器单元、第二寄存器单元、第三寄存器单元、迦罗瓦域乘法单元、查找表单元、第一异或单元、第二异或单元;
其中,校验数据获取单元,用于获取校验数据Dp和校验数据Dq;将校验数据Dp发送给第二寄存器单元,将校验数据Dq发送给第一异或单元;
第一寄存器单元,用于将所述校验盘的数据Q发送给第一异或单元;
第一异或单元,用于计算所述校验数据获取单元发送的校验数据Dp和第一寄存器单元发送的数据Q的和;并将所述第一异或单元计算的和发送给迦罗瓦域乘法单元;
第三寄存器单元,用于接收损坏的数据盘的编号x,调整时序后发送给查找表单元;
查找表单元,用于查表得到2的x次幂的倒数的值,将所述查找表单元查表得到的值发送给迦罗瓦域乘法单元;
迦罗瓦域乘法单元,用于计算所述第一异或单元发送的和,与所述查找表单元发送的值的积,将所述迦罗瓦域乘法单元计算的积发送给第二异或单元和第四寄存器单元;
第二寄存器单元,用于接收所述校验数据获取单元发送的校验数据Dp,调整时序后发送给第二异或单元;
第二异或单元,用于计算所述第二寄存器单元发送的校验数据Dp,与所述迦罗瓦域乘法单元发送的积的和,所述和为校验数据Dp用于恢复校验盘P;
第四寄存器单元,用于接收所述迦罗瓦域乘法单元发送的积,调整时序后输出;所述积为恢复数据Dx,用于恢复数据盘x。
11.一种独立磁盘冗余阵列中数据的备份方法,其特征在于,包括:
获取数据盘数据;
累加所述数据盘数据得到校验数据P;
通过查迦罗瓦域乘2查找表,累加所述数据盘数据与2的数据盘号次幂的乘积得到校验数据Q。
12.一种独立磁盘冗余阵列中数据的恢复方法,其特征在于,包括:
获取数据盘数据;
当单校验盘P损坏时,累加未损坏数据盘数据得到校验数据Dp,根据校验数据Dp恢复校验盘P数据;
单校验盘Q损坏时,通过查迦罗瓦域乘2查找表累加所述数据盘数据与2的数据盘号次幂的乘积得到校验数据Dq,根据校验数据Dq恢复校验盘Q数据;
单数据盘x损坏时,用校验数据P减去除数据盘x外的其他数据盘数据,得到恢复数据Dx,根据恢复数据Dx恢复数据盘x。
13.根据权利要求12所述方法,其特征在于,还包括:
当数据盘x和y损坏时,根据校验数据P、校验数据Q和不包含数据盘x和数据盘y的校验数据的校验数据Dp和Dq计算恢复数据Dy,根据所述恢复数据Dy恢复数据盘y;根据校验数据P、不包含数据盘x和数据盘y的校验数据的校验数据Dp和Dy计算恢复数据Dx,根据所述恢复数据Dx恢复数据盘x;所述y大于x。
14.根据权利要求13所述方法,其特征在于,所述根据校验数据P、校验数据Q和不包含数据盘x和数据盘y的校验数据的校验数据Dp和Dq计算恢复数据Dy包括:
计算所述P与Dp的和再与2的y减x次幂减1的商,和Q与Dq的和再与2的y减x次幂减1和2的x次幂的商,的和,得到恢复数据Dy;所述2的y减x次幂减1的值和所述2的y减x次幂减1和2的x次幂通过查表得到;
所述根据校验盘P、不包含数据盘x和数据盘y的校验数据的校验数据Dp和Dy计算恢复数据Dx包括:计算所述P、Dp和Dy的和得到恢复数据x。
15.根据权利要求12所述方法,其特征在于,还包括:
当数据盘x和校验盘Q损坏时,根据除数据盘数据Dx以外的其它数据盘数据和校验数据P计算恢复数据Dx,根据所述恢复数据Dx恢复数据盘x;根据数据盘数据计算校验数据Dq,根据所述校验数据Dq恢复校验盘Q。
16.根据权利要求15所述方法,其特征在于,所述根据除数据盘数据Dx以外的其它数据盘数据和校验数据P计算恢复数据Dx包括:
累加除数据盘x以外的所述数据盘数据,再与校验数据P的和得到所述恢复数据Dx,根据所述恢复数据Dx恢复数据盘x;
所述根据数据盘数据计算校验数据Dq包括:
累加所述数据盘数据与2的数据盘号次幂的乘积得到校验数据Dq。
17.根据权利要求12所述方法,其特征在于,还包括:
当数据盘x和校验盘P损坏时,根据校验数据Q和除数据盘x以外的其它数据盘数据计算恢复数据Dx,根据所述恢复数据Dx恢复数据盘x;根据数据盘数据计算校验数据Dp,根据所述恢复校验数据Dp恢复校验盘P。
18.根据权利要求17所述方法,其特征在于,所述根据校验数据Q和数据盘数据计算恢复数据Dx包括:
计算所述Q与除数据盘x以外的其它数据盘的校验数据的差再与2的x次方的商得到恢复数据Dx;
所述根据数据盘数据计算校验数据Dp包括:
累加所述数据盘数据得到校验数据Dp。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810186600A CN101770409A (zh) | 2008-12-31 | 2008-12-31 | 一种独立磁盘冗余阵列中数据备份、恢复的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810186600A CN101770409A (zh) | 2008-12-31 | 2008-12-31 | 一种独立磁盘冗余阵列中数据备份、恢复的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101770409A true CN101770409A (zh) | 2010-07-07 |
Family
ID=42503283
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810186600A Pending CN101770409A (zh) | 2008-12-31 | 2008-12-31 | 一种独立磁盘冗余阵列中数据备份、恢复的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101770409A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102147759A (zh) * | 2011-03-18 | 2011-08-10 | 浪潮电子信息产业股份有限公司 | 一种raid硬盘掉线的处理方法 |
CN103365739A (zh) * | 2013-08-02 | 2013-10-23 | 深圳市瑞耐斯技术有限公司 | 一种nand闪存存储设备及其数据恢复方法 |
CN104516679A (zh) * | 2013-09-30 | 2015-04-15 | 杭州宏杉科技有限公司 | 一种raid数据处理方法及装置 |
CN105487938A (zh) * | 2015-11-30 | 2016-04-13 | 浪潮(北京)电子信息产业有限公司 | 一种gf乘法器、校验位生成装置、主控芯片及固态硬盘 |
CN108647110A (zh) * | 2018-03-30 | 2018-10-12 | 深圳忆联信息系统有限公司 | 一种增强型raid保护方法及ssd |
CN108984113A (zh) * | 2018-06-07 | 2018-12-11 | 苏州互盟信息存储技术有限公司 | 一种独立介质的冗余阵列 |
CN111258807A (zh) * | 2020-01-16 | 2020-06-09 | 四川效率源科技有限责任公司 | 一种逻辑卷管理中raid6缺失磁盘的数据恢复方法 |
-
2008
- 2008-12-31 CN CN200810186600A patent/CN101770409A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102147759A (zh) * | 2011-03-18 | 2011-08-10 | 浪潮电子信息产业股份有限公司 | 一种raid硬盘掉线的处理方法 |
CN103365739A (zh) * | 2013-08-02 | 2013-10-23 | 深圳市瑞耐斯技术有限公司 | 一种nand闪存存储设备及其数据恢复方法 |
WO2015014110A1 (zh) * | 2013-08-02 | 2015-02-05 | 深圳市瑞耐斯技术有限公司 | 一种nand闪存存储设备及其数据恢复方法 |
CN103365739B (zh) * | 2013-08-02 | 2016-03-02 | 深圳市瑞耐斯技术有限公司 | 一种nand闪存存储设备及其数据恢复方法 |
CN104516679A (zh) * | 2013-09-30 | 2015-04-15 | 杭州宏杉科技有限公司 | 一种raid数据处理方法及装置 |
CN104516679B (zh) * | 2013-09-30 | 2017-10-17 | 杭州宏杉科技股份有限公司 | 一种raid数据处理方法及装置 |
CN105487938A (zh) * | 2015-11-30 | 2016-04-13 | 浪潮(北京)电子信息产业有限公司 | 一种gf乘法器、校验位生成装置、主控芯片及固态硬盘 |
CN108647110A (zh) * | 2018-03-30 | 2018-10-12 | 深圳忆联信息系统有限公司 | 一种增强型raid保护方法及ssd |
CN108984113A (zh) * | 2018-06-07 | 2018-12-11 | 苏州互盟信息存储技术有限公司 | 一种独立介质的冗余阵列 |
CN111258807A (zh) * | 2020-01-16 | 2020-06-09 | 四川效率源科技有限责任公司 | 一种逻辑卷管理中raid6缺失磁盘的数据恢复方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101770409A (zh) | 一种独立磁盘冗余阵列中数据备份、恢复的方法和装置 | |
CN112860475B (zh) | 基于rs纠删码的校验块恢复方法、装置、系统及介质 | |
CN102122959B (zh) | 提高计算机主存可靠性的数据压缩装置及其方法 | |
CN105512007B (zh) | 一种pcie硬盘状态灯的控制方法及系统 | |
CN103294446A (zh) | 一种定点乘累加器 | |
CN116266148A (zh) | 用于存储器内计算/邻存储器计算的端到端数据保护 | |
CN102354535A (zh) | 逻辑单元复用系统 | |
CN110554854A (zh) | 数据处理器、方法、芯片及电子设备 | |
CN100470489C (zh) | 磁碟阵列中处理资料运算的方法及其控制器 | |
CN103020014A (zh) | 一种大点数fft的实现方法 | |
CN110825346B (zh) | 一种低逻辑复杂度的无符号近似乘法器 | |
CN111258541B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN109614149B (zh) | 对称矩阵的上三角部分存储装置和并行读取方法 | |
CN101986261A (zh) | 基为16的高速Montgomery模乘法器VLSI | |
CN110377877A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN102646033B (zh) | 提供了加密和签名功能的rsa算法的实现方法和装置 | |
CN101833540B (zh) | 信号处理方法和装置 | |
CN210109789U (zh) | 数据处理器 | |
CN103092816A (zh) | 一种并行rs编码中常系数矩阵的生成装置和方法 | |
CN109614582B (zh) | 自共轭矩阵的下三角部分存储装置和并行读取方法 | |
CN109558567B (zh) | 自共轭矩阵的上三角部分存储装置和并行读取方法 | |
CN103023512B (zh) | Atsc系统rs编码中常系数矩阵的生成装置和方法 | |
CN100419700C (zh) | 磁盘容错系统及方法 | |
CN110688087A (zh) | 数据处理器、方法、芯片及电子设备 | |
CN105487938A (zh) | 一种gf乘法器、校验位生成装置、主控芯片及固态硬盘 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20100707 |