CN111078472B - 一种raid6缺失磁盘后的数据恢复方法 - Google Patents
一种raid6缺失磁盘后的数据恢复方法 Download PDFInfo
- Publication number
- CN111078472B CN111078472B CN201911334835.XA CN201911334835A CN111078472B CN 111078472 B CN111078472 B CN 111078472B CN 201911334835 A CN201911334835 A CN 201911334835A CN 111078472 B CN111078472 B CN 111078472B
- Authority
- CN
- China
- Prior art keywords
- data
- raid6
- check value
- disk
- missing
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明公开了一种raid6缺失磁盘后的数据恢复方法,其特征在于包括以下步骤:S100:加载raid6的各个磁盘,获取raid6的磁盘数量、各个磁盘的序号、raid6条带大小、各个磁盘中raid6开始位置、raid6的旋转方式及raid6的组织方式,其中,raid6分配至一个或多个磁盘上,各个磁盘包含数据条带、校验值P条带及校验值Q条带,所述数据条带用以存储用户数据,所述校验值P条带用以存储校验值P,所述校验值Q条带用以存储校验值Q;S200:判断是否缺失磁盘,如果是,执行步骤S300,否则,结束流程;S300:恢复raid6缺失磁盘的数据;S400:按照基于元数据的raid数据恢复方法恢复数据。
Description
技术领域
本发明属于数据恢复与取证领域,涉及一种缺失磁盘的数据恢复方法,尤其涉及一种raid6缺失磁盘后的数据恢复方法。
背景技术
在数据恢复与取证领域中,随着硬盘容量的不断增加,加上硬盘性能也在不断提高,使得硬盘的用户群不断增加,硬盘的使用次数也急剧增加,硬盘的故障也随之提高。
RAID是"Redundant Array of Independent Disk"的缩写,中文意思是独立冗余磁盘阵列。简单地解释,就是将N台硬盘通过RAID Controller结合成虚拟单台大容量的硬盘使用,同时提高容量、传输速率及增加容错的功能,可以说,raid磁盘存储技术已应用越来越广泛。Raid6相比其他raid6之前的数据,具体突出的优点是能支持多达两块盘的缺盘。通常情况下,缺盘指的是当raid6搭载的系统坏掉、磁盘数据出错或者数据盘不全的情况。
当出现raid6缺盘的情况下,如何恢复raid6的数据成为研究的热点。而raid6的校验值Q的计算方法又是raid6缺失磁盘后数据恢复的关键及难题。目前,现有技术中尚无一种raid6缺失磁盘后的数据恢复方法。
发明内容
针对现有技术的不足,本发明提供了一种raid6缺失磁盘后的数据恢复方法。本发明申请包括以下步骤:
S100:加载raid6的各个磁盘,获取raid6的磁盘数量、各个磁盘的序号、raid6条带大小、各个磁盘中raid6开始位置、raid6的旋转方式及raid6的组织方式,其中,raid6分配至一个或多个磁盘上,各个磁盘包含数据条带、校验值P条带及校验值Q条带,所述数据条带用以存储用户数据,所述校验值P条带用以存储校验值P,所述校验值Q条带用以存储校验值Q;
S200:判断是否缺失磁盘,如果是,执行步骤S300,否则,结束流程;
S300:恢复raid6缺失磁盘的数据,包含以下步骤:
S310:伽罗华域GF(28)中,采用本原多项式为0x11d并生成如下表一所示的伽罗华域正表及表二所示的伽罗华域反表,用以恢复raid6缺失磁盘的数据:
表一:伽罗华域正表
表二:伽罗华域反表
S320:获取伽罗华域正表第n个值作为第n个磁盘的系数Kn,其中,n为对应磁盘的序号且n为不小于0、不大于255的整数;
S330:定义伽罗华域的乘法公式为:
X*Y=GFILOG[(GFLOG[X]+GFLOG[Y])mod 255]
定义伽罗华域的除法公式为:
X/Y=GFILOG[(GFLOG[X]-GFLOG[Y])mod 255]
其中,X、Y为伽罗华域中的值且均为不小于0、不大于255的整数;
S340:判断raid6是否缺失一块磁盘,如果是,执行步骤S360,否则执行步骤S350;
S350:判断raid6是否缺失二块磁盘,如果是,执行步骤S370,否则,结束流程;
S360:根据所获取的系数Kn及所定义伽罗华域的乘法公式/除法公式,对raid6缺失一块磁盘的数据进行恢复,执行步骤S400;
S370:根据所获取的系数Kn及所定义伽罗华域的乘法公式/除法公式,对raid6缺失二块磁盘的数据进行恢复;
S400:按照基于元数据的raid数据恢复方法恢复数据。
优选地,所述步骤S360包括如下步骤:
情况1:对raid6缺失一块磁盘中包含校验值P的情况下进行数据恢复后,执行步骤S400,数据恢复方法包括:
设A、B、C为相同偏移地址的数据条带上顺序存储的数据,所述偏移地址为相对于各个磁盘的raid6的起始地址为首地址的偏移地址,P为校验值P条带存储的校验值P,按下述第一公式计算并获取缺失的校验值P:
P=A⊕B⊕C
其中,运算符号⊕表示异或加;
情况2:对raid6缺失一块磁盘中包含校验值Q的情况下对校验值Q条带进行数据恢复后,执行步骤S400,数据恢复方法包括:
设A、B、C为相同偏移地址的数据条带上顺序存储的数据,所述偏移地址为相对于各个磁盘的raid6的起始地址为首地址的偏移地址;Q为校验值Q条带存储的校验值Q;Ki、Kj及Km分别表示从伽罗华域正表中所获取的第i、第j及第m个值,并各个作为A、B、C的系数,其中,i=0,j=i+1,m=j+1,......以此类推,j、m均为不小于1、不大于255的整数;
按下述第二公式计算并获取缺失的校验值Q:
Q=A*Ki⊕B*Kj⊕C*Km
其中,运算符号⊕表示异或加,运算符号*表示伽罗华域中的所述乘法;
情况3:对raid6缺失一块磁盘中包含数据条带的情况下进行数据条带数据恢复后,执行步骤S400,数据恢复方法包括:
设A、B、C为相同偏移地址的数据条带上顺序存储的数据,所述偏移地址为相对于各个磁盘的raid6的起始地址为首地址的偏移地址;P为校验值P条带存储的校验值P,按所述第一公式的变形进行计算并获取缺失的数据A:
A=P⊕B⊕C
其中,运算符号⊕表示异或减。
优选地,所述步骤S370包括以下步骤:
情况1:对raid6缺失二块磁盘中包含校验值P及校验值Q的情况下进行数据恢复后,执行步骤S400,数据恢复方法包括:
采用所述第一公式及第二公式进行计算并获取缺失的校验值P及校验值Q;
情况2:对raid6缺失二块磁盘中包含校验值P及数据条带的情况下进行数据恢复后,执行步骤S400,数据恢复方法包括:
设A、B、C为相同偏移地址的数据条带上顺序存储的数据,所述偏移地址为相对于各个磁盘的raid6的起始地址为首地址的偏移地址;Q为校验值Q条带存储的校验值Q;Ki、Kj及Km分别表示从伽罗华域正表中所获取的第i、第j及第m个值,并各个作为A、B、C的系数,其中,i=0,j=i+1,m=j+1,......以此类推,j、m均为不小于1、不大于255的整数;按所述第二公式的变形进行计算并获取缺失的数据B:
B=(Q⊕A*Ki⊕C*Km)/Kj
其中,运算符号⊕表示异或减,运算符号*表示伽罗华域中的所述乘法,运算符号/表示伽罗华域中的所述除法;
获取数据B后,按所述公式一恢复校验值P;
情况3:对raid6缺失二块磁盘中包含校验值Q及数据条带的情况下进行数据恢复后,执行步骤S400,数据恢复方法包括:
设A、B、C为相同偏移地址的数据条带上顺序存储的数据,所述偏移地址为相对于各个磁盘的raid6的起始地址为首地址的偏移地址;Ki、Kj及Km分别表示从伽罗华域正表中所获取的第i、第j及第m个值,并各个作为A、B、C的系数,其中,i=0,j=i+1,m=j+1,......以此类推,j、m均为不小于1、不大于255的整数,P为校验值P条带存储的校验值P,按所述第一公式的变形进行计算并获取缺失的数据A:
A=P⊕B⊕C
其中,运算符号⊕表示异或减;
恢复A后,按所述第二公式计算并获取缺失的校验值Q:
Q=A*Ki⊕B*Kj⊕C*Km
其中,运算符号⊕表示异或加,运算符号*表示伽罗华域中的所述乘法;
情况4:对raid6缺失二块磁盘均为数据条带的情况下进行数据恢复后,执行步骤S400,数据恢复方法包括:
设A、B、C为相同偏移地址的数据条带上顺序存储的数据,所述偏移地址为相对于各个磁盘的raid6的起始地址为首地址的偏移地址;Ki、Kj及Km分别表示从伽罗华域正表中所获取的第i、第j及第m个值,并各个作为A、B、C的系数,其中,i=0,j=i+1,m=j+1,......以此类推,j、m均为不小于1、不大于255的整数;P为校验值P条带存储的校验值P;Q为校验值Q条带存储的校验值Q;已知C、P、Q,按所述第一、第二公式的变形进行计算并获取缺失的数据A、B:
P=A⊕B⊕C
Q=A*Ki⊕B*Kj⊕C*Km
A=P⊕B⊕C
Q=(P⊕B⊕C)*Ki⊕B*Kj⊕C*Km
Q=P*Ki⊕B*Ki⊕C*Ki⊕B*Kj⊕C*Km
Q=P*Ki⊕C*Ki⊕C*Km⊕B*Ki⊕B*Kj
Q⊕P*Ki⊕C*Ki⊕C*Km=(Ki+Kj)*B
根据上述的变形及计算,获取缺失的数据A、B:
B=(Q⊕P*Ki⊕C*Ki⊕C*Km)/(Ki+Kj)
A=P⊕B⊕C
其中,运算符号⊕表示异或加/减,运算符号*表示伽罗华域中的所述乘法,运算符号/表示伽罗华域中的所述除法,运算符号+表示加法。
优选地,所述第一、第二公式中的P、Q、A、B、C及系数Ki、Kj及Km的字节长度相同。
本发明具有以下有益效果是:解决了现有技术中尚无一种raid6缺失磁盘后的数据恢复方法的技术问题。
附图说明
图1为本发明所提供的方法的总流程图;
图2为本发明所提供的恢复raid6缺失磁盘的数据的具体流程图;
图3为本发明一个实施例中raid6左旋同步的组织方式的示意图。
具体实施方式
为便于描述,本发明可能包含如下术语:
pe:physical Extent物理块
pv:physical volume物理卷;
pvs:physical volumes物理卷
vg:volume group卷组
vgs:volume groups卷组
lv:logical volume逻辑卷
lvs:logical volumes逻辑卷
segment:区段
其中,一个pv里有多个pe;1个或多个pv构成vg;,vg中存在一个以上的lv;,lv从vg中分配空间;除特别说明的数据格式(如ASCII码、正则字符串),以外,有关偏移地址等数据都是以小端格式存储。
本申请中所指“缺失磁盘”是指组成该lvm raid6的数据块lv缺失或损坏,也就是说,lv对应的pv或者存储设备缺失或者损坏。
此外,本申请将题为《一种基于元数据的raid数据恢复方法》、申请号为2019108135847、申请日为2019年8月30日的发明申请的全文引入本申请作为参考。
图1示出了本发明所提供的方法的总流程图。如图1所示,本发明包括以下步骤:
S100:加载raid6的各个磁盘,获取raid6的磁盘数量、各个磁盘的序号、raid6条带大小、各个磁盘中raid6开始位置、raid6的旋转方式及raid6的组织方式,其中,raid6分配至一个或多个磁盘上,各个磁盘包含数据条带、校验值P条带及校验值Q条带,数据条带用以存储用户数据,校验值P条带用以存储校验值P,校验值Q条带用以存储校验值Q;
S200:判断是否缺失磁盘,如果是,执行步骤S300,否则,结束流程;
S300:恢复raid6缺失磁盘的数据,包含如图2所示的以下步骤::
S310:伽罗华域GF(28)中,采用本原多项式为0x11d并生成如下表一所示的伽罗华域正表及表二所示的伽罗华域反表,用以恢复raid6缺失磁盘的数据:
表一:伽罗华域正表
表二:伽罗华域反表
表一所示的伽罗华域正表GFILOG及表二所示的伽罗华域反表GFLOG均为一维表,为方便查表,表一及表二均图示为16*16的二维形式。
S320:获取伽罗华域正表第n个值作为第n个磁盘的系数Kn,其中,n为对应磁盘的序号且n为不小于0、不大于255的整数;
S330:定义伽罗华域的乘法公式为:
X*Y=GFILOG[(GFLOG[X]+GFLOG[Y])mod 255]
定义伽罗华域的除法公式为:
X/Y=GFILOG[(GFLOG[X]-GFLOG[Y])mod 255]
其中,X、Y为伽罗华域中的值且均为不小于0、不大于255的整数;
S340:判断raid6是否缺失一块磁盘,如果是,执行步骤S360,否则执行步骤S350;
S350:判断raid6是否缺失二块磁盘,如果是,执行步骤S370,否则,结束流程;
S360:根据所获取的系数Kn及所定义伽罗华域的乘法公式/除法公式,对raid6缺失一块磁盘的数据进行恢复,执行步骤S400;
图3示出了本发明一个实施例中raid6左旋同步的组织方式的示意图。以该组织方式为例进行说明。步骤S360包括如下步骤:
情况1:对raid6缺失一块磁盘中包含校验值P的情况下对校验值P条带进行数据恢复后,执行步骤S400,数据恢复方法包括:
如图3的第一行所示,D1、D2、D3为相同偏移地址的数据条带上顺序存储的数据,偏移地址为相对于各个磁盘的raid6的起始地址为首地址的偏移地址,P为校验值P条带存储的校验值P,按下述第一公式计算并获取缺失的校验值P:
P=D1⊕D2⊕D3
其中,运算符号⊕表示异或加;
情况2:对raid6缺失一块磁盘中包含校验值Q的情况下对校验值Q条带进行数据恢复后,执行步骤S400,数据恢复方法包括:
如图3的第一行所示,D1、D2、D3为相同偏移地址的数据条带上顺序存储的数据,偏移地址为相对于各个磁盘的raid6的起始地址为首地址的偏移地址,Q为校验值Q条带存储的校验值Q;Ki、Kj及Km分别表示从伽罗华域正表中所获取的第i、第j及第m个值,并各个作为D1、D2、D3的系数,其中,i=0,j=i+1,m=j+1,......以此类推,j、m均为不小于1、不大于255的整数,本实施例中,i=0,因此,j=1,m=2。故,将K0、K1、K2各个作为D1、D2、D3的系数并按下述第二公式计算并获取图3的第一行中所示缺失的校验值Q:
Q=K0*D1⊕K1*D2⊕K2*D3
同理,如果需要,可计算图3中
第二行Q值=K0*D4⊕K1*D5⊕K2*D6
第三行Q值=K0*D7⊕K1*D8⊕K2*D9
第四行Q值=K0*D10⊕K1*D11⊕K2*D12
第五行Q值=K0*D13⊕K1*D14⊕K2*D15
如果有更多的磁盘,则计算方式以此类推。
可见,raid6缺失磁盘后的数据恢复方法中,相同偏移地址的数据条带上顺序存储的数据的系数Kn总是从K0开始依次取值,依次取值为K0、K1、K2……,以此类推。
其中,运算符号⊕表示异或加,运算符号*表示伽罗华域中的乘法;
情况3:对raid6缺失一块磁盘中包含数据条带的情况下进行数据条带数据恢复后,执行步骤S400,数据恢复方法包括:
如图3的第一行所示,D1、D2、D3为相同偏移地址的数据条带上顺序存储的数据,偏移地址为相对于各个磁盘的raid6的起始地址为首地址的偏移地址,按第一公式的变形进行计算并获取缺失的数据D1:
D1=P⊕D2⊕D3
其中,运算符号⊕表示异或减。
S370:根据所获取的系数Kn及所定义伽罗华域的乘法公式/除法公式,对raid6缺失二块磁盘的数据进行恢复;
以图3所示的组织方式为例进行说明,步骤S370包括以下步骤:
情况1:对raid6缺失二块磁盘中包含校验值P及校验值Q的情况下进行数据恢复后,执行步骤S400,数据恢复方法包括:
采用第一公式及第二公式进行计算并获取缺失的校验值P及校验值Q;
情况2:对raid6缺失二块磁盘中包含校验值P及数据条带的情况下进行数据恢复后,执行步骤S400,数据恢复方法包括:
如图3的第一行所示,D1、D2、D3为相同偏移地址的数据条带上顺序存储的数据,偏移地址为相对于各个磁盘的raid6的起始地址为首地址的偏移地址,Q为校验值Q条带存储的校验值Q;Ki、Kj及Km分别表示从伽罗华域正表中所获取的第i、第j及第m个值,并各个作为D1、D2、D3的系数,其中,i=0,j=i+1,m=j+1,......以此类推,j、m均为不小于1、不大于255的整数,本实施例中,i=0,因此,j=1,m=2。将K0、K1、K2各个作为D1、D2、D3的系数并按第二公式的变形进行计算并获取缺失的数据D2:
D2=(Q⊕D1*K0⊕D3*K2)/K1
其中,运算符号⊕表示异或减,运算符号*表示伽罗华域中的乘法,运算符号/表示伽罗华域中的除法;
获取数据D2后,按公式一恢复校验值P;
情况3:对raid6缺失二块磁盘中包含校验值Q及数据条带的情况下进行数据恢复后,执行步骤S400,数据恢复方法包括:
如图3的第一行所示,D1、D2、D3为相同偏移地址的数据条带上顺序存储的数据,偏移地址为相对于各个磁盘的raid6的起始地址为首地址的偏移地址,P为校验值P条带存储的校验值P;Ki、Kj及Km分别表示从伽罗华域正表中所获取的第i、第j及第m个值,并各个作为D1、D2、D3的系数,其中,i=0,j=i+1,m=j+1,......以此类推,j、m均为不小于1、不大于255的整数,本实施例中,i=0,因此,j=1,m=2。将K0、K1、K2各个作为D1、D2、D3的系数并按第一公式的变形进行计算并获取缺失的数据D1:
D1=P⊕D2⊕D3
其中,运算符号⊕表示异或减;
恢复D1后,按第二公式计算并获取缺失的校验值Q:
Q=K0*D1⊕K1*D2⊕K2*D3
其中,运算符号⊕表示异或加,运算符号*表示伽罗华域中的乘法;
情况4:对raid6缺失二块磁盘均为数据条带的情况下进行数据恢复后,执行步骤S400,数据恢复方法包括:
如图3的第一行所示,D1、D2、D3为相同偏移地址的数据条带上顺序存储的数据,偏移地址为相对于各个磁盘的raid6的起始地址为首地址的偏移地址,P为校验值P条带存储的校验值P,Q为校验值Q条带存储的校验值Q,Ki、Kj及Km分别表示从伽罗华域正表中所获取的第i、第j及第m个值,并各个作为D1、D2、D3的系数,其中,i=0,j=i+1,m=j+1,......以此类推,j、m均为不小于1、不大于255的整数,本实施例中,i=0,因此,j=1,m=2。将K0、K1、K2各个作为D1、D2、D3的系数,这样,已知D3、P、Q,可按第一、第二公式的变形进行计算并获取缺失的数据D1、D2:
P=D1⊕D2⊕D3
Q=K0*D1⊕K1*D2⊕K2*D3
D1=P⊕D2⊕D3
Q=(P⊕D2⊕D3)*K0⊕D2*K1⊕D3*K2
Q=P*K0⊕D2*K0⊕D3*K0⊕D2*K1⊕D3*K2
Q=P*K0⊕D3*K0⊕D3*K2⊕D2*K0⊕D2*K1
Q⊕P*K0⊕D3*K0⊕D3*K2=(K0+K1)*D2
根据上述的变形及计算,获取缺失的数据D1、D2:
D2=(Q⊕P*K0⊕D3*K0⊕D3*K2)/(K0+K1)
D1=P⊕D2⊕D3
其中,运算符号⊕表示异或加/减,运算符号*表示伽罗华域中的乘法,运算符号/表示伽罗华域中的除法,运算符号+表示加法。
值得注意的是,第一、第二公式中的P、Q、D1、D2、D3及系数K2、K3及K4的字节长度相同。
S400:按照基于元数据的raid数据恢复方法恢复数据。完成上述的数据恢复后,在按照基于元数据的raid数据恢复方法恢复数据。具体地,可以参照题为《一种基于元数据的raid数据恢复方法》、申请号为2019108135847、申请日为2019年8月30日的发明申请,在此不作赘述。
通过本发明提供的方法,解决了现有技术中尚无一种raid6缺失磁盘后的数据恢复方法的技术问题。
应当理解的是,本发明不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (2)
1.一种raid6缺失磁盘后的数据恢复方法,其特征在于包括以下步骤:
S100:加载raid6的各个磁盘,获取raid6的磁盘数量、各个磁盘的序号、raid6条带大小、各个磁盘中raid6开始位置、raid6的旋转方式及raid6的组织方式,其中,raid6分配至一个或多个磁盘上,各个磁盘包含数据条带、校验值P条带及校验值Q条带,所述数据条带用以存储用户数据,所述校验值P条带用以存储校验值P,所述校验值Q条带用以存储校验值Q;
S200:判断是否缺失磁盘,如果是,执行步骤S300,否则,结束流程;
S300:恢复raid6缺失磁盘的数据,包含以下步骤:
S310:伽罗华域GF(28)中,采用本原多项式为0x11d并生成如下表一所示的伽罗华域正表及表二所示的伽罗华域反表,用以恢复raid6缺失磁盘的数据:
表一:伽罗华域正表
表二:伽罗华域反表
S320:获取伽罗华域正表第n个值作为第n个磁盘的系数Kn,其中,n为对应磁盘的序号且n为不小于0、不大于255的整数;
S330:定义伽罗华域的乘法公式为:
X*Y=GFILOG[(GFLOG[X]+GFLOG[Y])mod 255]
定义伽罗华域的除法公式为:
X/Y=GFILOG[(GFLOG[X]-GFLOG[Y])mod 255]
其中,X、Y为伽罗华域中的值且均为不小于0、不大于255的整数;
S340:判断raid6是否缺失一块磁盘,如果是,执行步骤S360,否则执行步骤S350;
S350:判断raid6是否缺失二块磁盘,如果是,执行步骤S370,否则,结束流程;
S360:根据所获取的系数Kn及所定义伽罗华域的乘法公式/除法公式,对raid6缺失一块磁盘的数据进行恢复,执行步骤S400;
步骤S360包括如下步骤:
情况1:对raid6缺失一块磁盘中包含校验值P的情况下进行数据恢复后,执行步骤S400,数据恢复方法包括:
设A、B、C为相同偏移地址的数据条带上顺序存储的数据,所述偏移地址为相对于各个磁盘的raid6的起始地址为首地址的偏移地址,P为校验值P条带存储的校验值P,按下述第一公式计算并获取缺失的校验值P:
P=A⊕B⊕C
其中,运算符号⊕表示异或加;
情况2:对raid6缺失一块磁盘中包含校验值Q的情况下对校验值Q条带进行数据恢复后,执行步骤S400,数据恢复方法包括:
设A、B、C为相同偏移地址的数据条带上顺序存储的数据,所述偏移地址为相对于各个磁盘的raid6的起始地址为首地址的偏移地址;Q为校验值Q条带存储的校验值Q;Ki、Kj及Km分别表示从伽罗华域正表中所获取的第i、第j及第m个值,并各个作为A、B、C的系数,其中,i=0,j=i+1,m=j+1,......以此类推,j、m均为不小于1、不大于255的整数;
按下述第二公式计算并获取缺失的校验值Q:
Q=A*Ki⊕B*Kj⊕C*Km
其中,运算符号⊕表示异或加,运算符号*表示伽罗华域中的所述乘法;
情况3:对raid6缺失一块磁盘中包含数据条带的情况下进行数据条带数据恢复后,执行步骤S400,数据恢复方法包括:
设A、B、C为相同偏移地址的数据条带上顺序存储的数据,所述偏移地址为相对于各个磁盘的raid6的起始地址为首地址的偏移地址;P为校验值P条带存储的校验值P,按所述第一公式的变形进行计算并获取缺失的数据A:
A=P⊕B⊕C
其中,运算符号⊕表示异或减;
S370:根据所获取的系数Kn及所定义伽罗华域的乘法公式/除法公式,对raid6缺失二块磁盘的数据进行恢复;
步骤S370包括以下步骤:
情况1:对raid6缺失二块磁盘中包含校验值P及校验值Q的情况下进行数据恢复后,执行步骤S400,数据恢复方法包括:
采用所述第一公式及第二公式进行计算并获取缺失的校验值P及校验值Q;
情况2:对raid6缺失二块磁盘中包含校验值P及数据条带的情况下进行数据恢复后,执行步骤S400,数据恢复方法包括:
设A、B、C为相同偏移地址的数据条带上顺序存储的数据,所述偏移地址为相对于各个磁盘的raid6的起始地址为首地址的偏移地址;Q为校验值Q条带存储的校验值Q;Ki、Kj及Km分别表示从伽罗华域正表中所获取的第i、第j及第m个值,并各个作为A、B、C的系数,其中,i=0,j=i+1,m=j+1,......以此类推,j、m均为不小于1、不大于255的整数;按所述第二公式的变形进行计算并获取缺失的数据B:
B=(Q⊕A*Ki⊕C*Km)/Kj
其中,运算符号⊕表示异或减,运算符号*表示伽罗华域中的所述乘法,运算符号/表示伽罗华域中的所述除法;
获取数据B后,按所述公式一恢复校验值P;
情况3:对raid6缺失二块磁盘中包含校验值Q及数据条带的情况下进行数据恢复后,执行步骤S400,数据恢复方法包括:
设A、B、C为相同偏移地址的数据条带上顺序存储的数据,所述偏移地址为相对于各个磁盘的raid6的起始地址为首地址的偏移地址;Ki、Kj及Km分别表示从伽罗华域正表中所获取的第i、第j及第m个值,并各个作为A、B、C的系数,其中,i=0,j=i+1,m=j+1,......以此类推,j、m均为不小于1、不大于255的整数,P为校验值P条带存储的校验值P,按所述第一公式的变形进行计算并获取缺失的数据A:
A=P⊕B⊕C
其中,运算符号⊕表示异或减;
恢复A后,按所述第二公式计算并获取缺失的校验值Q:
Q=A*Ki⊕B*Kj⊕C*Km
其中,运算符号⊕表示异或加,运算符号*表示伽罗华域中的所述乘法;
情况4:对raid6缺失二块磁盘均为数据条带的情况下进行数据恢复后,执行步骤S400,数据恢复方法包括:
设A、B、C为相同偏移地址的数据条带上顺序存储的数据,所述偏移地址为相对于各个磁盘的raid6的起始地址为首地址的偏移地址;Ki、Kj及Km分别表示从伽罗华域正表中所获取的第i、第j及第m个值,并各个作为A、B、C的系数,其中,i=0,j=i+1,m=j+1,......以此类推,j、m均为不小于1、不大于255的整数;P为校验值P条带存储的校验值P;Q为校验值Q条带存储的校验值Q;已知C、P、Q,按所述第一、第二公式的变形进行计算并获取缺失的数据A、B:
P=A⊕B⊕C
Q=A*Ki⊕B*Kj⊕C*Km
A=P⊕B⊕C
Q=(P⊕B⊕C)*Ki⊕B*Kj⊕C*Km
Q=P*Ki⊕B*Ki⊕C*Ki⊕B*Kj⊕C*Km
Q=P*Ki⊕C*Ki⊕C*Km⊕B*Ki⊕B*Kj
Q⊕P*Ki⊕C*Ki⊕C*Km=(Ki+Kj)*B
根据上述的变形及计算,获取缺失的数据A、B:
B=(Q⊕P*Ki⊕C*Ki⊕C*Km)/(Ki+Kj)
A=P⊕B⊕C
其中,运算符号⊕表示异或加/减,运算符号*表示伽罗华域中的所述乘法,运算符号/表示伽罗华域中的所述除法,运算符号+表示加法;
S400:按照基于元数据的raid数据恢复方法恢复数据。
2.根据权利要求1所述的一种raid6缺失磁盘后的数据恢复方法,其特征在于,所述第一、第二公式中的P、Q、A、B、C及系数Ki、Kj及Km的字节长度相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911334835.XA CN111078472B (zh) | 2019-12-23 | 2019-12-23 | 一种raid6缺失磁盘后的数据恢复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911334835.XA CN111078472B (zh) | 2019-12-23 | 2019-12-23 | 一种raid6缺失磁盘后的数据恢复方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111078472A CN111078472A (zh) | 2020-04-28 |
CN111078472B true CN111078472B (zh) | 2023-06-02 |
Family
ID=70316839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911334835.XA Active CN111078472B (zh) | 2019-12-23 | 2019-12-23 | 一种raid6缺失磁盘后的数据恢复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111078472B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113296999B (zh) * | 2021-05-20 | 2022-11-11 | 山东云海国创云计算装备产业创新中心有限公司 | 一种raid6编码方法及编码电路 |
CN115793985B (zh) * | 2023-01-09 | 2023-04-21 | 苏州浪潮智能科技有限公司 | 一种安全存储方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102023902A (zh) * | 2010-12-28 | 2011-04-20 | 创新科存储技术有限公司 | 一种磁盘阵列重建方法 |
CN110399247A (zh) * | 2019-07-19 | 2019-11-01 | 苏州浪潮智能科技有限公司 | 一种数据恢复方法、装置、设备及计算机可读存储介质 |
CN110532136A (zh) * | 2019-08-30 | 2019-12-03 | 四川效率源信息安全技术股份有限公司 | 一种基于元数据的raid数据恢复方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4905161B2 (ja) * | 2007-01-31 | 2012-03-28 | 富士通株式会社 | Raid装置及びガロア体を用いたデータ復元装置 |
CN101901115B (zh) * | 2010-07-23 | 2011-12-14 | 华中科技大学 | 一种磁盘阵列raid6级别的构建方法 |
CN102033716B (zh) * | 2010-12-01 | 2012-08-22 | 北京同有飞骥科技股份有限公司 | 一种双磁盘容错的节能型磁盘阵列的构建方法 |
CN102043685A (zh) * | 2010-12-31 | 2011-05-04 | 成都市华为赛门铁克科技有限公司 | 独立磁盘冗余阵列系统及其数据恢复方法 |
CN102609221B (zh) * | 2012-02-07 | 2015-07-08 | 无锡众志和达数据计算股份有限公司 | 一种硬件raid5/6存储系统及数据处理方法 |
CN104156276B (zh) * | 2014-08-14 | 2017-06-09 | 浪潮电子信息产业股份有限公司 | 一种防两块磁盘损坏的raid方法 |
CN109918225B (zh) * | 2019-02-18 | 2023-05-09 | 麒麟软件有限公司 | 基于飞腾平台的raid6数据恢复优化方法 |
-
2019
- 2019-12-23 CN CN201911334835.XA patent/CN111078472B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102023902A (zh) * | 2010-12-28 | 2011-04-20 | 创新科存储技术有限公司 | 一种磁盘阵列重建方法 |
CN110399247A (zh) * | 2019-07-19 | 2019-11-01 | 苏州浪潮智能科技有限公司 | 一种数据恢复方法、装置、设备及计算机可读存储介质 |
CN110532136A (zh) * | 2019-08-30 | 2019-12-03 | 四川效率源信息安全技术股份有限公司 | 一种基于元数据的raid数据恢复方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111078472A (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111078472B (zh) | 一种raid6缺失磁盘后的数据恢复方法 | |
EP1953920B1 (en) | RAID system and data recovery apparatus using galois field | |
CN100388221C (zh) | 磁盘阵列从奇偶校验更新操作中断中恢复的方法和系统 | |
CN104809032B (zh) | 用于存储系统中服务感知的奇偶校验放置的方法和系统 | |
CN103049222B (zh) | 一种raid5的写io优化处理方法 | |
US9251154B2 (en) | Priority based reliability mechanism for archived data | |
US10684927B2 (en) | Methods and systems for storing information that facilitates the reconstruction of at least some of the contents of a storage unit on a storage system | |
US20090228680A1 (en) | Combined hash for variable data chunks | |
US20090204846A1 (en) | Automated Full Stripe Operations in a Redundant Array of Disk Drives | |
CN104965768A (zh) | 用于存储系统中的服务感知数据放置的方法和系统 | |
US8489916B2 (en) | Multi-disk fault-tolerant system, method for generating a check block, and method for recovering a data block | |
JP2015508917A (ja) | 消失エラー訂正符号を用いてストレージ・アレイにデータを格納する方法、システム及びプログラム | |
WO2022016900A1 (zh) | 一种存储介质中数据恢复方法、数据恢复系统及相关设备 | |
WO2007012920A1 (en) | Method and system for improving the performance of reed-solomon parity operations in redundant array of inexpensive disks | |
US20150100819A1 (en) | Method of Recovering Data in a Storage Device | |
CN104461926A (zh) | 一种基于二维raid的固态硬盘数据保护方法 | |
CN114442950A (zh) | 一种数据恢复方法、系统、装置及计算机可读存储介质 | |
JP2002278707A (ja) | ディスクコントローラ | |
CN111258807B (zh) | 一种逻辑卷管理中raid6缺失磁盘的数据恢复方法 | |
US20110035549A1 (en) | Data storage device | |
CN108614749B (zh) | 一种数据处理方法及装置 | |
US20060123321A1 (en) | System and method for reconstructing lost data in a storage system | |
CN100470489C (zh) | 磁碟阵列中处理资料运算的方法及其控制器 | |
CN110568993B (zh) | 一种数据更新方法及相关装置 | |
US20050283652A1 (en) | Fault tolerance system and method for one or two failed disks in a disk array |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |