CN111078472B - 一种raid6缺失磁盘后的数据恢复方法 - Google Patents

一种raid6缺失磁盘后的数据恢复方法 Download PDF

Info

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
Application number
CN201911334835.XA
Other languages
English (en)
Other versions
CN111078472A (zh
Inventor
梁效宁
许超明
刘波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xly Salvationdata Technology Inc
Original Assignee
Xly Salvationdata Technology Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xly Salvationdata Technology Inc filed Critical Xly Salvationdata Technology Inc
Priority to CN201911334835.XA priority Critical patent/CN111078472B/zh
Publication of CN111078472A publication Critical patent/CN111078472A/zh
Application granted granted Critical
Publication of CN111078472B publication Critical patent/CN111078472B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity 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缺失磁盘后的数据恢复方法
技术领域
本发明属于数据恢复与取证领域,涉及一种缺失磁盘的数据恢复方法,尤其涉及一种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缺失磁盘的数据:
表一:伽罗华域正表
Figure GDA0002376745900000021
表二:伽罗华域反表
Figure GDA0002376745900000031
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缺失磁盘的数据:
表一:伽罗华域正表
Figure GDA0002376745900000091
表二:伽罗华域反表
Figure GDA0002376745900000092
表一所示的伽罗华域正表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缺失磁盘的数据:
表一:伽罗华域正表
Figure FDA0004110674430000011
表二:伽罗华域反表
Figure FDA0004110674430000021
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的字节长度相同。
CN201911334835.XA 2019-12-23 2019-12-23 一种raid6缺失磁盘后的数据恢复方法 Active CN111078472B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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数据恢复优化方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
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