CN111258807A - 一种逻辑卷管理中raid6缺失磁盘的数据恢复方法 - Google Patents
一种逻辑卷管理中raid6缺失磁盘的数据恢复方法 Download PDFInfo
- Publication number
- CN111258807A CN111258807A CN202010049603.6A CN202010049603A CN111258807A CN 111258807 A CN111258807 A CN 111258807A CN 202010049603 A CN202010049603 A CN 202010049603A CN 111258807 A CN111258807 A CN 111258807A
- Authority
- CN
- China
- Prior art keywords
- data
- raid6
- logical volume
- check value
- 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.)
- Granted
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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种逻辑卷管理中raid6缺失磁盘的数据恢复方法,其特征在于包括以下步骤:S100:加载逻辑卷管理中raid的各个磁盘,其中,逻辑卷管理的raid分配至一个或多个磁盘上,各个磁盘包含数据条带、校验值P条带及校验值Q条带,所述数据条带用以存储用户数据,所述校验值P条带用以存储校验值P,所述校验值Q条带用以存储校验值Q;S200:解析逻辑卷管理的配置区域的数据,获取逻辑卷管理的raid类型、磁盘数量、条带大小、组织方式及旋转方向;S300:判断逻辑卷管理的类型是否为raid6系列,如果是,执行步骤S400,否则,结束流程;S400:获取未缺失磁盘的逻辑卷并记录缺失的逻辑卷的磁盘序号及磁盘个数;S500:恢复缺失磁盘的数据;S600:按照基于元数据的raid数据恢复方法恢复数据。
Description
技术领域
本发明属于数据恢复与取证领域,涉及一种缺失磁盘的数据恢复方法,尤其涉及一种逻辑卷管理中raid6缺失磁盘的数据恢复方法。
背景技术
在数据恢复与取证领域中,随着硬盘容量的不断增加,加上硬盘性能也在不断提高,使得硬盘的用户群不断增加,硬盘的使用次数也急剧增加,硬盘的故障也随之提高。
逻辑卷管理(LVM,即Logical Volume Manager)是Linux环境下对磁盘分区进行管理的一种机制,也是Linux下实现零停机前提下可以自如地对文件系统的大小进行调整,且文件系统跨越不同磁盘和分区的一种完美解决方案。
逻辑卷管理中raid是lvm中的一类数据类型,其兼容lvm与raid的优点,支持坏盘修复以及在线扩容等优点,逻辑卷管理中raid设备管理技术在大容量存储系统中被广泛使用。
其中逻辑卷管理中raid6是一个可以最多支持两块坏盘的一种raid,容错性高,使用广泛。
逻辑卷管理中的raid6的校验值Q的计算以及组织方式与普通的raid6不一样,当逻辑卷管理中的raid6缺一、二块磁盘时,现有技术中尚无一种缺失磁盘的数据恢复方法。
发明内容
针对现有技术的不足,本发明提供了一种逻辑卷管理中raid6缺失磁盘的数据恢复方法。本发明申请包括以下步骤:
S100:加载逻辑卷管理中raid的各个磁盘,其中,逻辑卷管理的raid分配至一个或多个磁盘上,各个磁盘包含数据条带、校验值P条带及校验值Q条带,所述数据条带用以存储用户数据,所述校验值P条带用以存储校验值P,所述校验值Q条带用以存储校验值Q;
S200:解析逻辑卷管理的配置区域的数据,获取逻辑卷管理的raid类型、磁盘数量、条带大小、组织方式及旋转方向,包括以下步骤:
S201:根据各个物理卷的配置区域的偏移地址,寻址并解析各个物理卷的所述配置区域的描述信息,获取所述配置区域的数据的偏移地址及所述配置区域的数据的字节长度;
S202:寻址所述配置区域的数据的偏移地址,并根据所述配置区域的数据的字节长度获取所述配置区域的数据;
S203:解析所述配置区域的数据,获取逻辑卷管理的raid类型、磁盘数量、条带大小、组织方式及旋转方向;
S300:判断逻辑卷管理的类型是否为raid6系列,如果是,执行步骤S400,否则,结束流程;
S400:获取未缺失磁盘的逻辑卷并记录缺失的逻辑卷的磁盘序号及磁盘个数;
S500:恢复缺失磁盘的数据,包括以下步骤;
S510:伽罗华域GF(28)中,采用本原多项式为0x11d并生成如下表一所示的伽罗华域正表及表二所示的伽罗华域反表,用以恢复逻辑卷管理中raid6缺失磁盘的数据:
表一:伽罗华域正表
表二:伽罗华域反表
S520:获取伽罗华域正表第n个值作为第n个磁盘的系数Kn,其中,n为对应磁盘的序号且n为不小于0、不大于255的正整数;
S530:定义伽罗华域的乘法公式为:
X*Y=GFILOG[(GFLOG[X]+GFLOG[Y])mod 255]
定义伽罗华域的除法公式为:
X/Y=GFILOG[(GFLOG[X]-GFLOG[Y])mod 255]
其中,X、Y为伽罗华域中的值且均为不小于0、不大于255的整数;
S540:判断逻辑卷管理中raid6是否缺失一块磁盘,如果是,执行步骤S560,否则执行步骤S550;
S550:判断逻辑卷管理中raid6是否缺失二块磁盘,如果是,执行步骤S570,否则,结束流程;
S560:根据所获取的系数Kn及未缺失磁盘的逻辑卷,对逻辑卷管理中raid6缺失一块磁盘的数据进行恢复,执行步骤S600;
S570:根据所获取的系数Kn及未缺失磁盘的逻辑卷,对逻辑卷管理中raid6缺失二块磁盘的数据进行恢复。
S600:按照基于元数据的raid数据恢复方法恢复数据。
优选地,所述raid6系列包括raid6、raid6_zr、raid6_nr、raid6_nc,对应的组织方式及旋转方向如下表三所示。
表三逻辑卷管理所支持raid6的类型、组织方式及旋转方向
优选地,所述表三中raid6_zr及raid6的组织方式如下表四所示。
表四:raid6_zr及raid6的组织方式
优选地,所述表三中raid6_nr的组织方式如下表五所示。
表五:raid6_nr的组织方式
A | B | C | D | E | |
1 | D1 | D2 | D3 | P | Q |
2 | D4 | D5 | P | Q | D6 |
3 | D7 | P | Q | D8 | D9 |
4 | P | Q | D10 | D11 | D12 |
5 | Q | D13 | D14 | D15 | P |
优选地,所述表三中raid6_nc的组织方式如下表六所示。
表六:raid6_nc的组织方式
A | B | C | D | E | |
1 | D1 | D2 | D3 | Q | P |
2 | D5 | D6 | Q | P | D4 |
3 | D9 | Q | P | D7 | D8 |
4 | Q | P | D10 | D11 | D12 |
5 | P | D13 | D14 | D15 | Q |
优选地,所述步骤S560包括如下步骤:
情况1:对逻辑卷管理中raid6缺失一块磁盘中包含校验值P的情况下进行数据恢复后,执行步骤S600,数据恢复方法包括:
设A、B、C为数据条带中存储的用户数据,分别存储于第i、第j及第m个磁盘中,P为校验值P条带存储的校验值P,按下述第一公式计算并获取缺失的校验值P:
P=A⊕B⊕C
其中,运算符号⊕表示异或加;
情况2:对逻辑卷管理中raid6缺失一块磁盘中包含校验值Q的情况下对校验值Q条带进行数据恢复后,执行步骤S600,数据恢复方法包括:
设A、B、C为数据条带中存储的用户数据,分别存储于第i、第j及第m个磁盘中;Q为校验值Q条带存储的校验值Q;Ki、Kj及Km分别表示从伽罗华域正表中所获取的第i、第j及第m个值,并各个作为第i、第j及第m个磁盘的系数,......以此类推,其中,i、j及m均为磁盘序号且为不小于0、不大于255的正整数;
按下述第二公式计算并获取缺失的校验值Q:
Q=A*Ki⊕B*Kj⊕C*Km
其中,运算符号⊕表示异或加,运算符号*表示伽罗华域中的所述乘法;
情况3:对逻辑卷管理中raid6缺失一块磁盘中包含数据条带的情况下进行数据条带数据恢复后,执行步骤S600,数据恢复方法包括:
设B、C为数据条带中存储的用户数据,分别存储于第j及第m个磁盘中,......以此类推,P为校验值P条带存储的校验值P,按所述第一公式的变形进行计算并获取缺失的数据A:
A=P⊕B⊕C
其中,运算符号⊕表示异或减。
优选地,所述步骤S570包括以下步骤:
情况1:对逻辑卷管理中raid6缺失二块磁盘中包含校验值P及校验值Q的情况下进行数据恢复后,执行步骤S600,数据恢复方法包括:
采用所述第一公式及第二公式进行计算并获取缺失的校验值P及校验值Q;
情况2:对逻辑卷管理中raid6缺失二块磁盘中包含校验值P及数据条带的情况下进行数据恢复后,执行步骤S600,数据恢复方法包括:
设A、C为数据条带中存储的用户数据,分别存储于第i及第m个磁盘中,Q为校验值Q条带存储的校验值Q,Ki及Km分别表示从伽罗华域正表中所获取的第i及第m个值,并各个作为第i及第m个磁盘的系数,......以此类推,其中,i、m均为磁盘序号且为不小于0、不大于255的正整数;按所述第二公式的变形进行计算并获取缺失的数据B:
B=(Q⊕A*Ki⊕C*Km)/Kj
其中,运算符号⊕表示异或减,运算符号*表示伽罗华域中的所述乘法,运算符号/表示伽罗华域中的所述除法;
获取数据B后,按所述公式一恢复校验值P;
情况3:对逻辑卷管理中raid6缺失二块磁盘中包含校验值Q及数据条带的情况下进行数据恢复后,执行步骤S600,数据恢复方法包括:
设B、C为数据条带中存储的用户数据,分别存储于第j及第m个磁盘中;Kj及Km分别表示从伽罗华域正表中所获取的第j及第m个值,并各个作为第j及第m个磁盘的系数,......以此类推,其中,j及m均为磁盘序号且为不小于0、不大于255的正整数,P为校验值P条带存储的校验值P,按所述第一公式的变形进行计算并获取缺失的数据A:
A=P⊕B⊕C
其中,运算符号⊕表示异或减;
恢复A后,按所述第二公式计算并获取缺失的校验值Q:
Q=A*Ki⊕B*Kj⊕C*Km
其中,运算符号⊕表示异或加,运算符号*表示伽罗华域中的所述乘法;
情况4:对逻辑卷管理中raid6缺失二块磁盘均为数据条带的情况下进行数据恢复后,执行步骤S600,数据恢复方法包括:
设A、B、C为数据条带中存储的用户数据,分别存储于第i、第j及第m个磁盘中;P为校验值P条带存储的校验值P;Q为校验值Q条带存储的校验值Q;Ki、Kj及Km分别表示从伽罗华域正表中所获取的第i、第j及第m个值,并各个作为第i、第j及第m个磁盘的系数,......以此类推,其中,i、j及m均为磁盘序号且为不小于0、不大于255的正整数;已知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为本发明中解析逻辑卷管理的配置区域的数据的流程图;
图3为本发明中恢复缺失磁盘的数据的流程图;
图4A至图4C为逻辑卷管理中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日的发明申请以及题为《一种逻辑卷管理的磁盘簇数据的恢复方法》、申请号为2019110501682、申请日为2019年10月31日的发明申请的全文引入本申请作为参考。
图1示出了本发明所提供的方法的总流程图。如图1所示,本发明包括以下步骤:
S100:加载逻辑卷管理中raid的各个磁盘,其中,逻辑卷管理的raid分配至一个或多个磁盘上,各个磁盘包含数据条带、校验值P条带及校验值Q条带,数据条带用以存储用户数据,校验值P条带用以存储校验值P,校验值Q条带用以存储校验值Q;
S200:解析逻辑卷管理的配置区域的数据,获取逻辑卷管理的raid类型(type)、磁盘数量(device_count)、条带大小(stripe_size)、组织方式及旋转方向。
图2示出了本发明中解析逻辑卷管理的配置区域的数据的流程图,如图2所示,步骤S200包括以下步骤:
S201:根据各个物理卷的配置区域的偏移地址,寻址并解析各个物理卷的配置区域的描述信息,获取配置区域的数据的偏移地址及配置区域的数据的字节长度;
S202:寻址配置区域的数据的偏移地址,并根据配置区域的数据的字节长度获取配置区域的数据;
S203:解析配置区域的数据,获取逻辑卷管理的raid类型(type)、磁盘数量(device_count)、条带大小(stripe_size)、组织方式及旋转方向;
具体地,可以参照题为《一种逻辑卷管理的磁盘簇数据的恢复方法》、申请号为2019110501682、申请日为2019年10月31日的发明申请。
在本发明的一个实施例中,获取的配置区域的数据如下:
lv_raid6_nc{
id="7aTjjY-114M-eBcU-7HM2-6KIb-FHcV-YHN6PI"
status=["READ","WRITE","VISIBLE"]
flags=[]
creation_host="ubuntu"
creation_time=1555322368
segment_count=1
segment1{
start_extent=0
extent_count=258
type="raid6_nc"
device_count=5
region_size=1024
stripe_size=128
raids=[
"lv_raid6_nc_rmeta_0","lv_raid6_nc_rimage_0",
"lv_raid6_nc_rmeta_1","lv_raid6_nc_rimage_1",
"lv_raid6_nc_rmeta_2","lv_raid6_nc_rimage_2",
"lv_raid6_nc_rmeta_3","lv_raid6_nc_rimage_3",
"lv_raid6_nc_rmeta_4","lv_raid6_nc_rimage_4"
]
上述配置区域的数据中,raid类型(type)为raid6_nc、磁盘数量(device_count)为5、条带大小(stripe_size)为128。
S300:判断逻辑卷管理的类型是否为raid6系列,如果是,执行步骤S400,否则,结束流程;其中,raid6系列包括raid6、raid6_zr、raid6_nr、raid6_nc,对应的组织方式及旋转方向如下表三所示。
表三逻辑卷管理所支持raid6的类型、组织方式及旋转方向
S400:获取未缺失磁盘的逻辑卷并记录缺失的逻辑卷的磁盘序号及磁盘个数;在本发明的另一实施例中,获取的配置区域的数据如下:
raids=[
"lv0_rmeta_0","lv0_rimage_0",
"lv0_rmeta_1","lv0_rimage_1",
"lv0_rmeta_2","lv0_rimage_2"
]
其中,lv0_rmeta_0为该lvm raid的超级块,而lv0_rimage_0为该lvm raid的数据块,按照题为《一种逻辑卷管理的磁盘簇数据的恢复方法》、申请号为2019110501682、申请日为2019年10月31日的发明申请的技术方案恢复lvm raid的数据块lv,如果在加载的所有磁盘中都找不到或者找不全该lv所需的pv数据段,则将该lv标记为缺失。记录这些缺失的逻辑卷的磁盘序号及磁盘个数。
S500:恢复缺失磁盘的数据。
图3示出了本发明中恢复缺失磁盘的数据的流程图,如图3所示,包括以下步骤;
S510:伽罗华域GF(28)中,采用本原多项式为0x11d并生成如下表一所示的伽罗华域正表GFILOG及表二所示的伽罗华域反表GFLOG,用以恢复逻辑卷管理中raid6缺失磁盘的数据:
表一:伽罗华域正表
表二:伽罗华域反表
S520:获取伽罗华域正表第n个值作为第n个磁盘的系数Kn,其中,n为对应磁盘的序号且n为不小于0、不大于255的正整数;每个系数Kn的取值与数据顺序无关,只与磁盘顺序相关且一一对应。换言之,第0块磁盘上所有的系数Kn都取伽罗华域正表第1个值,即,K0=1;第1块磁盘上所有的系数Kn都取第2个值,即,K1=2;第2块磁盘上所有的系数Kn都取第3个值,即,K2=4……;以此类推。
表一所示的伽罗华域正表GFILOG及表二所示的伽罗华域反表GFLOG均为一维表,为方便查表,表一及表二均图示为16*16的二维形式。
S530:定义伽罗华域的乘法公式为:
X*Y=GFILOG[(GFLOG[X]+GFLOG[Y])mod 255]
定义伽罗华域的除法公式为:
X/Y=GFILOG[(GFLOG[X]-GFLOG[Y])mod 255]
其中,X、Y为伽罗华域中的值且均为不小于0、不大于255的整数;
S540:判断逻辑卷管理中raid6是否缺失一块磁盘,如果是,执行步骤S560,否则执行步骤S550;
S550:判断逻辑卷管理中raid6是否缺失二块磁盘,如果是,执行步骤S570,否则,结束流程;
图4A至图4C示出了逻辑卷管理中raid6所包括的组织方式。其中,图4A示出了raid类型为raid6及raid6_zr的情况下五块磁盘的组织方式;图4B示出了raid类型为raid6_nr的情况下五块磁盘的组织方式;图4C示出了raid类型为raid6_nc的情况下五块磁盘的组织方式;本申请以图4A的组织方式为例进行说明。
S560:根据所获取的系数Kn及未缺失磁盘的逻辑卷,对逻辑卷管理中raid6缺失一块磁盘的数据进行恢复,执行步骤S600,包括如下步骤:
情况1:对逻辑卷管理中raid6缺失一块磁盘中包含校验值P的情况下进行数据恢复后,执行步骤S600,数据恢复方法包括:
如图4A所示,D1至D15为数据条带中存储的用户数据,P为校验值P条带存储的校验值P,Q为校验值Q条带存储的校验值Q。其中,A列中的P、D4、D7、D10及Q为同一磁盘(即,第0个磁盘)中存储的校验值P、用户数据D4、D7、D10及校验值Q,A列中个条带的系数均为K0;换言之,第0块磁盘上所有的系数都取值K0=1。
同理,B列中的Q、P、D8、D11、D13同一磁盘(即,第1个磁盘)中存储的校验值Q、校验值P及用户数据D8、D11、D13,B列中个条带的系数均为K1;换言之,第1块磁盘上所有的系数都取值K1=2……,以此类推。
综上所述,第0块磁盘上所有的系数都取值K0=1,第1块磁盘上所有的系数都取值K1=2、第2块磁盘上所有的系数都取值K2=4……,以此类推。
设D1、D2、D3为数据条带中存储的用户数据,分别存储于第2、第3及第4个磁盘中,P为校验值P条带存储的校验值P,按下述第一公式计算并获取缺失的校验值P:
P=D1⊕D2⊕D3
其中,运算符号⊕表示异或加;
情况2:对逻辑卷管理中raid6缺失一块磁盘中包含校验值Q的情况下对校验值Q条带进行数据恢复后,执行步骤S600,数据恢复方法包括:
设D1、D2、D3为数据条带中存储的用户数据,分别存储于第2、第3及第4个磁盘中;Q为校验值Q条带存储的校验值Q;K2、K3及K4分别表示从伽罗华域正表中所获取的第2、第3及第4个值,并各个作为第2、第3及第4个磁盘的系数,其中,磁盘序号且为不小于0、不大于255的正整数,换言之,磁盘序号从0开始计,不大于255,最大支持256个磁盘;
按下述第二公式计算并获取缺失的校验值Q:
Q=D1*K2⊕D2*K3⊕D3*K4
同理,如果需要,可计算图4A中第二行Q值=K0*D4⊕K3*D5⊕K4*D6
;同理也可以计算第五行Q值=K1*D13⊕K2*D14⊕K3*D15,以此类推。
其中,运算符号⊕表示异或加,运算符号*表示伽罗华域中的乘法;
情况3:对逻辑卷管理中raid6缺失一块磁盘中包含数据条带的情况下进行数据条带数据恢复后,执行步骤S600,数据恢复方法包括:
设D2、D3为数据条带中存储的用户数据,分别存储于第3及第4个磁盘中,P为校验值P条带存储的校验值P,按第一公式的变形进行计算并获取缺失的数据A:
D1=P⊕D2⊕D3
其中,运算符号⊕表示异或减。
S570:根据所获取的系数Kn及未缺失磁盘的逻辑卷,对逻辑卷管理中raid6缺失二块磁盘的数据进行恢复,步骤S570包括以下步骤;
情况1:对逻辑卷管理中raid6缺失二块磁盘中包含校验值P及校验值Q的情况下进行数据恢复后,执行步骤S600,数据恢复方法包括:
采用第一公式及第二公式进行计算并获取缺失的校验值P及校验值Q;
情况2:对逻辑卷管理中raid6缺失二块磁盘中包含校验值P及数据条带的情况下进行数据恢复后,执行步骤S600,数据恢复方法包括:
设D1、D3为数据条带中存储的用户数据,分别存储于第2及第4个磁盘中,Q为校验值Q条带存储的校验值Q,K2及K4分别表示从伽罗华域正表中所获取的第2及第4个值,并各个作为第2及第4个磁盘的系数,其中磁盘序号且为不小于0、不大于255的正整数,换言之,磁盘序号从0开始计,不大于255,最大支持256个磁盘;
按第二公式的变形进行计算并获取缺失的数据D2:
D2=(Q⊕D1*K2⊕D3*K4)/K3
其中,运算符号⊕表示异或减,运算符号*表示伽罗华域中的乘法,运算符号/表示伽罗华域中的除法;
获取数据D2后,按公式一恢复校验值P;
情况3:对逻辑卷管理中raid6缺失二块磁盘中包含校验值Q及数据条带的情况下进行数据恢复后,执行步骤S600,数据恢复方法包括:
设D2、D3为数据条带中存储的用户数据,分别存储于第3及第4个磁盘中;K3及K4分别表示从伽罗华域正表中所获取的第3及第4个值,并各个作为第3及第4个磁盘的系数,其中,磁盘序号且为不小于0、不大于255的正整数,换言之,磁盘序号从0开始计,不大于255,最大支持256个磁盘;P为校验值P条带存储的校验值P,按第一公式的变形进行计算并获取缺失的数据D1:
D1=P⊕D2⊕D3
其中,运算符号⊕表示异或减;
恢复D1后,按第二公式计算并获取缺失的校验值Q:
Q=K2*D1⊕K3*D2⊕K4*D3
其中,运算符号⊕表示异或加,运算符号*表示伽罗华域中的乘法;
情况4:对逻辑卷管理中raid6缺失二块磁盘均为数据条带的情况下进行数据恢复后,执行步骤S600,数据恢复方法包括:
设D1、D2、D3为数据条带中存储的用户数据,分别存储于第2、第3及第4个磁盘中;P为校验值P条带存储的校验值P;Q为校验值Q条带存储的校验值Q;K2、K3及K4分别表示从伽罗华域正表中所获取的第2、第3及第4个值,并各个作为第2、第3及第4个磁盘的系数,其中,磁盘序号且为不小于0、不大于255的正整数,换言之,磁盘序号从0开始计,不大于255,最大支持256个磁盘;已知D3、P、Q,可按第一、第二公式的变形进行计算并获取缺失的数据D1、D2:
P=D1⊕D2⊕D3
Q=D1*K2⊕D2*K3⊕D3*K4
D1=P⊕D2⊕D3
Q=(P⊕D2⊕D3)*K2⊕D2*K3⊕D3*K4
Q=P*K2⊕D2*K2⊕D3*K2⊕D2*K3⊕D3*K4
Q=P*K2⊕D3*K2⊕D3*K4⊕D2*K2⊕D2*K3
Q⊕P*K2⊕D3*K2⊕D3*K4=(K2+K3)*D2
根据上述的变形及计算,获取缺失的数据D1、D2:
D2=(Q⊕P*K2⊕D3*K2⊕D3*K4)/(K2+K3)
D1=P⊕D2⊕D3
其中,运算符号⊕表示异或加/减,运算符号*表示伽罗华域中的乘法,运算符号/表示伽罗华域中的除法,运算符号+表示加法。
值得注意的是,第一、第二公式中的P、Q、D1、D2、D3及系数K2、K3及K4的字节长度相同。
S600:按照基于元数据的raid数据恢复方法恢复数据。具体地,可以参照题为《一种基于元数据的raid数据恢复方法》、申请号为2019108135847、申请日为2019年8月30日的发明申请,在此不作赘述。
通过本发明提供的方法,解决了现有技术中尚无一种逻辑卷管理中raid6缺失磁盘的数据恢复方法的技术问题。
应当理解的是,本发明不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (8)
1.一种逻辑卷管理中raid6缺失磁盘的数据恢复方法,其特征在于包括以下步骤:
S100:加载逻辑卷管理中raid的各个磁盘,其中,逻辑卷管理的raid分配至一个或多个磁盘上,各个磁盘包含数据条带、校验值P条带及校验值Q条带,所述数据条带用以存储用户数据,所述校验值P条带用以存储校验值P,所述校验值Q条带用以存储校验值Q;
S200:解析逻辑卷管理的配置区域的数据,获取逻辑卷管理的raid类型、磁盘数量、条带大小、组织方式及旋转方向,包括以下步骤:
S201:根据各个物理卷的配置区域的偏移地址,寻址并解析各个物理卷的所述配置区域的描述信息,获取所述配置区域的数据的偏移地址及所述配置区域的数据的字节长度;
S202:寻址所述配置区域的数据的偏移地址,并根据所述配置区域的数据的字节长度获取所述配置区域的数据;
S203:解析所述配置区域的数据,获取逻辑卷管理的raid类型、磁盘数量、条带大小、组织方式及旋转方向;
S300:判断逻辑卷管理的类型是否为raid6系列,如果是,执行步骤S400,否则,结束流程;
S400:获取未缺失磁盘的逻辑卷并记录缺失的逻辑卷的磁盘序号及磁盘个数;
S500:恢复缺失磁盘的数据,包括以下步骤;
S510:伽罗华域GF(28)中,采用本原多项式为0x11d并生成如下表一所示的伽罗华域正表及表二所示的伽罗华域反表,用以恢复逻辑卷管理中raid6缺失磁盘的数据:
表一:伽罗华域正表
表二:伽罗华域反表
S520:获取伽罗华域正表第n个值作为第n个磁盘的系数Kn,其中,n为对应磁盘的序号且n为不小于0、不大于255的整数;
S530:定义伽罗华域的乘法公式为:
X*Y=GFILOG[(GFLOG[X]+GFLOG[Y])mod 255]
定义伽罗华域的除法公式为:
X/Y=GFILOG[(GFLOG[X]-GFLOG[Y])mod 255]
其中,X、Y为伽罗华域中的值且均为不小于0、不大于255的整数;
S540:判断逻辑卷管理中raid6是否缺失一块磁盘,如果是,执行步骤S560,否则执行步骤S550;
S550:判断逻辑卷管理中raid6是否缺失二块磁盘,如果是,执行步骤S570,否则,结束流程;
S560:根据所获取的系数Kn及未缺失磁盘的逻辑卷,对逻辑卷管理中raid6缺失一块磁盘的数据进行恢复,执行步骤S600;
S570:根据所获取的系数Kn及未缺失磁盘的逻辑卷,对逻辑卷管理中raid6缺失二块磁盘的数据进行恢复;
S600:按照基于元数据的raid数据恢复方法恢复数据。
3.根据权利要求2所述的一种逻辑卷管理中raid6缺失磁盘的数据恢复方法,其特征在于,所述表三中raid6_zr及raid6的组织方式如下表四所示。
表四:raid6_zr及raid6的组织方式
4.根据权利要求2所述的一种逻辑卷管理中raid6缺失磁盘的数据恢复方法,其特征在于,所述表三中raid6_nr的组织方式如下表五所示。
表五:raid6_nr的组织方式
5.根据权利要求2所述的一种逻辑卷管理中raid6缺失磁盘的数据恢复方法,其特征在于,所述表三中raid6_nc的组织方式如下表六所示。
表六:raid6_nc的组织方式
6.根据权利要求1所述的一种逻辑卷管理中raid6缺失磁盘的数据恢复方法,其特征在于,所述步骤S560包括如下步骤:
情况1:对逻辑卷管理中raid6缺失一块磁盘中包含校验值P的情况下进行数据恢复后,执行步骤S600,数据恢复方法包括:
设A、B、C为数据条带中存储的用户数据,分别存储于第i、第j及第m个磁盘中,P为校验值P条带存储的校验值P,按下述第一公式计算并获取缺失的校验值P:
P=A⊕B⊕C
其中,运算符号⊕表示异或加;
情况2:对逻辑卷管理中raid6缺失一块磁盘中包含校验值Q的情况下对校验值Q条带进行数据恢复后,执行步骤S600,数据恢复方法包括:
设A、B、C为数据条带中存储的用户数据,分别存储于第i、第j及第m个磁盘中;Q为校验值Q条带存储的校验值Q;Ki、Kj及Km分别表示从伽罗华域正表中所获取的第i、第j及第m个值,并各个作为第i、第j及第m个磁盘的系数,......以此类推,其中,i、j及m均为磁盘序号且为不小于0、不大于255的整数;
按下述第二公式计算并获取缺失的校验值Q:
Q=A*Ki⊕B*Kj⊕C*Km
其中,运算符号⊕表示异或加,运算符号*表示伽罗华域中的所述乘法;
情况3:对逻辑卷管理中raid6缺失一块磁盘中包含数据条带的情况下进行数据条带数据恢复后,执行步骤S600,数据恢复方法包括:
设B、C为数据条带中存储的用户数据,分别存储于第j及第m个磁盘中,......以此类推,P为校验值P条带存储的校验值P,按所述第一公式的变形进行计算并获取缺失的数据A:
A=P⊕B⊕C
其中,运算符号⊕表示异或减。
7.根据权利要求3所述的一种逻辑卷管理中raid6缺失磁盘的数据恢复方法,其特征在于,所述步骤S570包括以下步骤:
情况1:对逻辑卷管理中raid6缺失二块磁盘中包含校验值P及校验值Q的情况下进行数据恢复后,执行步骤S600,数据恢复方法包括:
采用所述第一公式及第二公式进行计算并获取缺失的校验值P及校验值Q;
情况2:对逻辑卷管理中raid6缺失二块磁盘中包含校验值P及数据条带的情况下进行数据恢复后,执行步骤S600,数据恢复方法包括:
设A、C为数据条带中存储的用户数据,分别存储于第i及第m个磁盘中,Q为校验值Q条带存储的校验值Q,Ki及Km分别表示从伽罗华域正表中所获取的第i及第m个值,并各个作为第i及第m个磁盘的系数,......以此类推,其中,i、m均为磁盘序号且为不小于0、不大于255的整数;按所述第二公式的变形进行计算并获取缺失的数据B:
B=(Q⊕A*Ki⊕C*Km)/Kj
其中,运算符号⊕表示异或减,运算符号*表示伽罗华域中的所述乘法,运算符号/表示伽罗华域中的所述除法;
获取数据B后,按所述公式一恢复校验值P;
情况3:对逻辑卷管理中raid6缺失二块磁盘中包含校验值Q及数据条带的情况下进行数据恢复后,执行步骤S600,数据恢复方法包括:
设B、C为数据条带中存储的用户数据,分别存储于第j及第m个磁盘中;Kj及Km分别表示从伽罗华域正表中所获取的第j及第m个值,并各个作为第j及第m个磁盘的系数,......以此类推,其中,j及m均为磁盘序号且为不小于0、不大于255的整数,P为校验值P条带存储的校验值P,按所述第一公式的变形进行计算并获取缺失的数据A:
A=P⊕B⊕C
其中,运算符号⊕表示异或减;
获取A后,按所述第二公式计算并获取缺失的校验值Q:
Q=A*Ki⊕B*Kj⊕C*Km
其中,运算符号⊕表示异或加,运算符号*表示伽罗华域中的所述乘法;
情况4:对逻辑卷管理中raid6缺失二块磁盘均为数据条带的情况下进行数据恢复后,执行步骤S600,数据恢复方法包括:
设A、B、C为数据条带中存储的用户数据,分别存储于第i、第j及第m个磁盘中;P为校验值P条带存储的校验值P;Q为校验值Q条带存储的校验值Q;Ki、Kj及Km分别表示从伽罗华域正表中所获取的第i、第j及第m个值,并各个作为第i、第j及第m个磁盘的系数,......以此类推,其中,i、j及m均为磁盘序号且为不小于0、不大于255的整数;已知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
其中,运算符号⊕表示异或加/减,运算符号*表示伽罗华域中的所述乘法,运算符号/表示伽罗华域中的所述除法,运算符号+表示加法。
8.根据权利要求1所述的一种逻辑卷管理中raid6缺失磁盘的数据恢复方法,其特征在于,所述第一、第二公式中的P、Q、A、B、C及系数Ki、Kj及Km的字节长度相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010049603.6A CN111258807B (zh) | 2020-01-16 | 2020-01-16 | 一种逻辑卷管理中raid6缺失磁盘的数据恢复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010049603.6A CN111258807B (zh) | 2020-01-16 | 2020-01-16 | 一种逻辑卷管理中raid6缺失磁盘的数据恢复方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111258807A true CN111258807A (zh) | 2020-06-09 |
CN111258807B CN111258807B (zh) | 2023-05-09 |
Family
ID=70947463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010049603.6A Active CN111258807B (zh) | 2020-01-16 | 2020-01-16 | 一种逻辑卷管理中raid6缺失磁盘的数据恢复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111258807B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115309348A (zh) * | 2022-10-11 | 2022-11-08 | 苏州浪潮智能科技有限公司 | 元数据的管理方法、装置和计算机设备和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5499253A (en) * | 1994-01-05 | 1996-03-12 | Digital Equipment Corporation | System and method for calculating RAID 6 check codes |
CN101770409A (zh) * | 2008-12-31 | 2010-07-07 | 成都市华为赛门铁克科技有限公司 | 一种独立磁盘冗余阵列中数据备份、恢复的方法和装置 |
WO2011015134A1 (zh) * | 2009-08-04 | 2011-02-10 | 成都市华为赛门铁克科技有限公司 | 多磁盘容错系统及生成校验块、恢复数据块的方法 |
CN102023820A (zh) * | 2010-12-01 | 2011-04-20 | 北京同有飞骥科技股份有限公司 | 一种双磁盘容错垂直型分组并行访问磁盘阵列的构建方法 |
CN102033716A (zh) * | 2010-12-01 | 2011-04-27 | 北京同有飞骥科技股份有限公司 | 一种双磁盘容错的节能型磁盘阵列的构建方法 |
CN102053802A (zh) * | 2010-12-31 | 2011-05-11 | 中国科学院计算技术研究所 | 网络独立冗余磁盘阵列系统 |
CN109918225A (zh) * | 2019-02-18 | 2019-06-21 | 天津麒麟信息技术有限公司 | 基于飞腾平台的raid6数据恢复优化方法 |
CN110532136A (zh) * | 2019-08-30 | 2019-12-03 | 四川效率源信息安全技术股份有限公司 | 一种基于元数据的raid数据恢复方法 |
-
2020
- 2020-01-16 CN CN202010049603.6A patent/CN111258807B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5499253A (en) * | 1994-01-05 | 1996-03-12 | Digital Equipment Corporation | System and method for calculating RAID 6 check codes |
CN101770409A (zh) * | 2008-12-31 | 2010-07-07 | 成都市华为赛门铁克科技有限公司 | 一种独立磁盘冗余阵列中数据备份、恢复的方法和装置 |
WO2011015134A1 (zh) * | 2009-08-04 | 2011-02-10 | 成都市华为赛门铁克科技有限公司 | 多磁盘容错系统及生成校验块、恢复数据块的方法 |
CN102023820A (zh) * | 2010-12-01 | 2011-04-20 | 北京同有飞骥科技股份有限公司 | 一种双磁盘容错垂直型分组并行访问磁盘阵列的构建方法 |
CN102033716A (zh) * | 2010-12-01 | 2011-04-27 | 北京同有飞骥科技股份有限公司 | 一种双磁盘容错的节能型磁盘阵列的构建方法 |
CN102053802A (zh) * | 2010-12-31 | 2011-05-11 | 中国科学院计算技术研究所 | 网络独立冗余磁盘阵列系统 |
CN109918225A (zh) * | 2019-02-18 | 2019-06-21 | 天津麒麟信息技术有限公司 | 基于飞腾平台的raid6数据恢复优化方法 |
CN110532136A (zh) * | 2019-08-30 | 2019-12-03 | 四川效率源信息安全技术股份有限公司 | 一种基于元数据的raid数据恢复方法 |
Non-Patent Citations (2)
Title |
---|
王丹华: "RAID6在播出存储系统的应用", 《广播与电视技术》 * |
王龙江等: "网络编码云存储系统差分数据更新方案", 《通信学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115309348A (zh) * | 2022-10-11 | 2022-11-08 | 苏州浪潮智能科技有限公司 | 元数据的管理方法、装置和计算机设备和存储介质 |
CN115309348B (zh) * | 2022-10-11 | 2023-03-10 | 苏州浪潮智能科技有限公司 | 元数据的管理方法、装置和计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111258807B (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10606491B2 (en) | Providing redundancy in a virtualized storage system for a computer system | |
CN105094685B (zh) | 进行存储控制的方法和设备 | |
CN103049222B (zh) | 一种raid5的写io优化处理方法 | |
CN109656486B (zh) | 固态硬盘的配置方法、数据存储方法、固态硬盘和存储控制器 | |
WO2019172973A1 (en) | Failed storage device rebuild method | |
CN104461391A (zh) | 一种存储设备元数据管理处理方法及系统 | |
US20090265578A1 (en) | Full Stripe Processing for a Redundant Array of Disk Drives | |
CN103064765A (zh) | 数据恢复方法、装置及集群存储系统 | |
CN111813609B (zh) | 一种存储介质中数据恢复方法、数据恢复系统及相关设备 | |
EP1241576A2 (en) | Methods and systems of using result buffers in parity operations | |
CN103870352A (zh) | 数据存储与重建的方法与系统 | |
CN111078472B (zh) | 一种raid6缺失磁盘后的数据恢复方法 | |
CN111258807B (zh) | 一种逻辑卷管理中raid6缺失磁盘的数据恢复方法 | |
US7133965B2 (en) | Raid storage device | |
CN116974458A (zh) | 用于处理数据的方法、电子设备和计算机程序产品 | |
CN110600070B (zh) | 一种提升固态硬盘阵列系统修复性能的编码和修复方法 | |
CN116382582A (zh) | 一种raid重映射方法、系统、设备以及存储介质 | |
CN111143110B (zh) | 一种逻辑卷管理中基于元数据的raid数据恢复方法 | |
CN110825712B (zh) | 一种逻辑卷管理的磁盘簇数据的恢复方法 | |
US8478938B2 (en) | Performing data writes in parity protected redundant storage arrays | |
CN102122236B (zh) | 写请求的处理方法及装置 | |
CN106997277B (zh) | 高效利用回收的存储空间的方法及装置 | |
CN111124311B (zh) | 一种逻辑卷管理下基于配置信息的raid数据的恢复方法 | |
US11630728B2 (en) | Data processing method for AFA storage device to restore data protection capability and the AFA storage device utilizing the same | |
TWI704567B (zh) | 磁碟陣列系統的資料還原方法 |
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 |