本发明属于独立磁盘冗余阵列领域,具体涉及一种raid多校验方法。
背景技术:
1、在现代存储领域,为了提高存储数据的可靠性和改善存储系统的输入、输出性能,人们设计了多种数据存储方案,这些数据存储方案通常是各种类型的独立磁盘冗余阵列(redundant arrays of independent disks,raid)。通过使用特定的硬件或软件,raid把多个物理存储设备如磁盘,联合起来,形成一个统一的逻辑存储设备。
2、比较常用的raid有raid 0、raid 1、raid 5、raid 6、raid 10等。其中raid 0不具有冗余能力,raid 1只是对磁盘做了镜像,其它3种阵列分别由多个磁盘组成,它们以条带的方式向阵列中的磁盘写数据,校验数据存放在阵列中的各个磁盘上。raid 5的每个条带含有1个校验块,支持任意损坏其中一个磁盘、通过其它磁盘上的校验块来重建数据;raid6的每个条带含有2个校验块,支持任意损坏其中两个磁盘、通过其它磁盘上的校验块来恢复数据;raid tp的每个条带含有3个校验块,支持任意损坏其中三个磁盘、通过其它磁盘上的校验块来恢复数据。
3、现存的技术是对一个条带上的数据块进行校验码编码时,校验码生成的方程的系数不能成比例:
4、d1+d2+d3+d4+…+dn=p
5、k1*d1+k2*d2+k3*d3+k4*d4…+kn*dn=q
6、m1*d1+m2*d2+m3*d3+m4*d4…+mn*dn=g
7、其中,d1、d2、d3…dn一个条带上所有数据块的值,q、g分别表示校验码,k1、k2、k3…kn是校验码q生成时的系数,m1、m2、m3…mn是校验码g生成时的系数,两个方程式的系数不能成比例,即k1/m1≠k2/m2≠k3/m3…≠kn/mn,如果用硬件来实现,会需要两套逻辑实现,增加硬件成本,如果用软件实现,也需要两个算法,增加算法的开发。
技术实现思路
1、本发明的目的在于针对解决背景技术中提出的问题,提出一种raid多校验方法。
2、为实现上述目的,本发明所采取的技术方案为:
3、本发明提出的一种raid多校验方法,包括:
4、获取raid的一个条带上的所有数据块;
5、当一个条带上存在两个校验块时,采用如下方式生成各校验块的校验码:
6、k1*d1+k2*d2+k3*d3+…+kn*dn=q
7、kn*d1+k(n-1)*d2+k(n-2)*d3+…+k1*dn=g
8、其中,d1、d2、d3…dn一个条带上数据块的值,q、g分别表示校验码,k1、k2、k3…kn是校验码q生成时的系数,kn、k(n-1)、k(n-2)…k1是校验码g生成时的系数。
9、优选地,当一个带上存在三个校验块时,采用如下方式生成各校验块的校验码:
10、d1+d2+d3…+dm=p
11、k1*d1+k2*d2+k3*d3+k4*d4…+kn*dm=q
12、kn*d1+k(n-1)*d2+k(n-2)*d3+…+k1*dm=g
13、其中,p表示校验码。
14、优选地,生成各校验码的系数采用伽罗华域有限循环域生成。
15、优选地,对于raid 6,在一个条带有两个数据块时,生成校验码p、q:
16、d1+d2=p
17、d1+2*d2=q。
18、优选地,对于raid tp,生成校验码p、q、g:
19、d1+d2+d3…+dn=p
20、k1*d1+k2*d2+k3*d3+k4*d4…+kn*dn=q
21、kn*d1+k(n-1)*d2+k(n-2)*d3+…+k1*dn=g。
22、与现有技术相比,本发明的有益效果为:
23、本raid多校验方法在一个条带有多个校验码时,一个校验码生成的系数是另一个校验码生成系数的倒序,如果用硬件来实现,只需要一套逻辑实现,减少硬件成本,如果用软件实现,只需要一个算法,减少算法的开发。
1.一种raid多校验方法,其特征在于:所述raid多校验方法,包括:
2.如权利要求1所述的raid多校验方法,其特征在于:当一个带上存在三个校验块时,采用如下方式生成各校验块的校验码:
3.如权利要求1所述的raid多校验方法,其特征在于:生成各校验码的系数采用伽罗华域有限循环域生成。
4.如权利要求1所述的raid多校验方法,其特征在于:对于raid 6,在一个条带有两个数据块时,生成校验码p、q:
5.如权利要求1所述的raid多校验方法,其特征在于:对于raidtp,生成校验码p、q、g: