CN117453449A - 一种基于数据矩阵的raid6数据恢复方法、装置和系统 - Google Patents
一种基于数据矩阵的raid6数据恢复方法、装置和系统 Download PDFInfo
- Publication number
- CN117453449A CN117453449A CN202311310772.0A CN202311310772A CN117453449A CN 117453449 A CN117453449 A CN 117453449A CN 202311310772 A CN202311310772 A CN 202311310772A CN 117453449 A CN117453449 A CN 117453449A
- Authority
- CN
- China
- Prior art keywords
- raid6
- data
- physical disk
- stripe
- file record
- 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
- 239000011159 matrix material Substances 0.000 title claims abstract description 59
- 238000011084 recovery Methods 0.000 title claims abstract description 33
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000012163 sequencing technique Methods 0.000 claims description 15
- 230000008521 reorganization Effects 0.000 claims description 12
- 238000012790 confirmation Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000013500 data storage Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 7
- 238000012795 verification Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种基于数据矩阵的RAID6数据恢复方法、装置、系统以及可存储介质,包括,在由N块物理盘组成的RAID6中任意选择一个物理盘检索文件记录关键字起始位置并记录文件记录号,横向对比其他物理盘对应位置是否存在关键字,如果存在则记录下来,当文件记录号个数大于或等于N‑2个时,通过对排序后相邻的文件记录两两相减,选取出现次数最多的相差值乘以一个文件记录大小得到RAID6的条带大小,根据文件记录号来分配条带块的逻辑号和校验块,任选一个物理盘纵向记录N‑2个带有逻辑号且连续的条块带并排序得到条带块集合,对集合进行处理再根据数据矩阵公式确定RAID6中物理盘类型,基于起始位置和一个物理盘进行排序并设置RAID6中物理盘的类型,并重组恢复数据。
Description
技术领域
本申请涉及计算机数据存储和数据恢复领域,主要涉及一种基于数据矩阵的RAID6数据恢复方法、装置和系统。
背景技术
独立磁盘冗余阵列(RAID,Redundant Array of I ndependent DISK)技术最早出现于20世纪80年代,其是一种磁盘阵列的配置方案,使用两个或更多的磁盘驱动器来提供数据冗余和容错能力。RAID最初是为了提高单个硬盘驱动器的性能和容错能力。随着数据存储需求的增长,RAID技术逐渐应用于多硬盘阵列系统,并发展出不同的级别,例如RAID0、RAID1、RAID5和RAID6等。其中RAID6阵列采用了两个或多个磁盘的冗余,并使用分布式校验数据来提供更高的数据保护和容错能力。RAID6技术相比于RAID5,在每个数据块中增加了一份奇偶校验信息,可以在两个硬盘驱动器故障时继续提供数据访问和读取。因此,在两个磁盘故障情况下RAID6技术仍能保证数据的完整性和可用性。当前,由于服务器对数据安全、数据存储速度和容错具有较高的要求,RAID技术已经成为大型服务器和存储系统中不可或缺的一部分,而RAID6技术和RAID6重组技术也逐渐被广泛应用于需要高度稳定性和安全性的应用场景。如:数据中心、视频监控、数字内容创作和金融机构等。
然而,在RAID6的服务器发生故障造成RAID信息出错,或由于人为有意或者无意的操作使配置信息丢失,都将会造成磁盘上的数据丢失或损坏,从而导致灾难性的结果。而现有技术中针对RAID6的重组和数据恢复的方法较少,且大多数的方法存在逻辑复杂、准确率较低并且速度慢或者只能人工重组等问题。
发明内容
针对现有技术中一个或多个技术缺陷,本申请提出了一种基于数据矩阵RAID6数据恢复方法、装置、系统及可存储介质。
根据本发明的一方面,提出了一种基于数据矩阵的RAID6数据恢复方法,包括:
S1:在有N块物理盘组成的RAID6中任意选取一块物理盘,检索文件记录关键字的起始位置,并记录该块物理盘的文件记录号;
S2:横向对比所述起始位置对应于其它物理盘的对应位置是否存在文件记录关键字,若有则记录所述其它物理盘的文件记录号;
S3:计算S1和S2中所述对应位置的文件记录的个数以得到所述RAID6的条带大小,进一步利用所述条带大小横向获取所述RAID6的每块物理盘中2N-3个所述条带大小的的连续条带块,通过所述文件记录号来分配所述条带块的逻辑号和校验块以确定RAID6的类型;
S4:任意选择一块物理盘,纵向记录N-2个带有逻辑号且所述逻辑号是连续的条块带,并对所述N-2个条块带进行排序,得到条带块集合K,利用所述集合K中最后一个条带块KN-2减去第一个条带块K1得到差值X,再根据数据矩阵公式的情况来确定RAID6的类型,若根据差值X对应数据矩阵公式得到了多种RAID6类型,则选择未计算过的物理盘,重新执行步骤S4;
其中,所述条带块集合K={K1,K2,……,KN-2};
S5:基于所述起始位置以及第一块物理盘进行排序,且设置所述RAID6中物理盘的类型,进行数据重组以恢复RAID6中的数据。
更进一步地,步骤S3中得到所述RAID6的条带大小的步骤具体包括:
判断所述对应位置的文件记录的个数是否大于或等于N-2个,若是则对所述文件记录号进行排序,使相邻的两个文件记录号分别两两相减得到各自对应的相差值,并用出现次数最多的相差值乘以所述文件记录的大小得到所述RAID6的条带大小;
若所述对应位置的文件记录的个数小于N-2个,则在未找到文件记录的物理盘中从所述起始位置处开始继续扫描检测文件记录,若能找到文件记录则重复步骤S2,否则结束。
更进一步地,当S4中为X=(N-2)*(N-2)-1的数据矩阵公式被满足时,RAID6是常规左同步结构。
更进一步地,当S4中为X=[(N-2)*(N-3),(N-2)*(N-3)+2]的数据矩阵公式被满足时,RAID6是常规左异步结构。
更进一步地,当S4中为X=(N-3)*(N-3)的数据矩阵公式被满足时,RAID6是常规右同步结构。
更进一步地,当S4中为X=[(N-1)*(N-4),(N-2)*(N-3)]的数据矩阵公式被满足时,RAID6是常规右异步结构。
根据本发明的第二方面,提出了一种基于数据矩阵的RAID6数据恢复装置,包括:
检索模块:在由N块物理盘组成的RAID6中任意选取一块物理盘,检索文件记录关键字的起始位置,并记录该块物理盘的文件记录号;
横向对比所述起始位置对应于其它物理盘的对应位置是否存在文件记录关键字,若有则记录所述其它物理盘的文件记录号;
计算和获取模块:计算所述对应位置的文件记录的个数以得到所述RAID6的条带大小,进一步利用所述条带大小横向获取所述RAID6的每块物理盘中2N-3个所述条带大小的的连续条带块,通过所述文件记录号来分配所述条带块的逻辑号和校验块以确定RAID6的类型;
确认模块:任意选择一块物理盘,纵向记录N-2个带有逻辑号且所述逻辑号是连续的条块带,并对所述N-2个条块带进行排序,得到条带块集合K,利用所述集合K中最后一个条带块KN-2减去第一个条带块K1得到差值X,再根据数据矩阵公式的情况来确定RAID6的类型,若根据差值X对应数据矩阵公式得到了多种RAID6类型,则选择未计算过的物理盘,重新执行确认模块所述步骤;
其中,所述条带块集合K={K1,K2,……,KN-2},
所述数据矩阵公式与RAID6的类型对应关系如下:
当确认模块中为X=(N-2)*(N-2)-1的数据矩阵公式被满足时,RAID6是常规左同步结构;
当确认模块中为X=[(N-2)*(N-3),(N-2)*(N-3)+2]的数据矩阵公式被满足时,RAID6是常规左异步结构;
当确认模块中为X=(N-3)*(N-3)的数据矩阵公式被满足时,RAID6是常规右同步结构;
当确认模块中为X=[(N-1)*(N-4),(N-2)*(N-3)]的数据矩阵公式被满足时,RAID6是常规右异步结构;
设置模块:基于所述起始位置以及第一块物理盘进行排序,且设置所述RAID6中物理盘的类型,进行数据重组以恢复RAID6中的数据;
恢复模块:用于恢复所述RAID6中的数据。
更进一步地,计算和获取模块中得到所述RAID6的条带大小的具体步骤包括:
判断所述对应位置的文件记录的个数是否大于或等于N-2个,若是则对所述文件记录号进行排序,使相邻的两个文件记录号分别两两相减得到各自对应的相差值,并用出现次数最多的相差值乘以所述文件记录的大小得到所述RAID6的条带大小;
若所述对应位置的文件记录的个数小于N-2个,则在未找到文件记录的物理盘中从所述起始位置处开始继续扫描检测文件记录,若能找到文件记录则重复横向对比所述起始位置对应于其它物理盘的对应位置是否存在文件记录关键字,若有则记录文件记录号,否则结束。
根据本发明的第三方面,提出了一种RAID6数据恢复系统,包括存储器、处理器及存储在所述存储器上且在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上述任一项所述方法的步骤。
根据本发明的第四方面,提出了一种计算机可读介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实施如上述任一项所述的方法。
本发明的技术效果在于:通过检索文件记录,得到数据矩阵公式准确定位RAID6的结构类型,极大地提高了RAID6结构类型的检测速度,并保证了数据判断的准确性,明显提高RAID6的数据恢复效果。
附图说明
包括附图以提供对实施例的进一步理解并且附图被并入本说明书中并且构成本说明书的一部分。附图图示了实施例并且与描述一起用于解释本发明的原理。将容易认识到其它实施例和实施例的很多预期优点,因为通过引用以下详细描述,它们变得被更好地理解。附图的元件不一定是相互按照比例的。同样的附图标记指代对应的类似部件。
图1是根据本发明的实施例提供的一种现有技术中标准RAID6结构示意图。
图2是根据本发明的实施例提供的一种RAID6数据恢复方法的示意性流程图。
图3是根据本发明的实施例提供的一种RAID6数据恢复方法的示例。
图4是根据本发明的实施例提供的一种RAID6数据恢复装置的示意性框图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,包括附图以提供对实施例的进一步理解并且附图被并入本说明书中并且构成本说明书的一部分。附图图示了实施例并且与描述一起用于解释本发明的原理。将容易认识到其它实施例和实施例的很多预期优点,因为通过引用以下详细描述,它们变得被更好地理解。附图的元件不一定是相互按照比例的。同样的附图标记指代对应的类似部件。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了根据本发明的一个实施例的现有技术中标准RAID6结构示意图,RAID6使用P、Q两种分布存储的奇偶校验码,如图1所示,该RAID6控制器包括4块物理盘,用于存储逻辑盘中的数据。物理盘中包括数据块(0-9)和校验块(P0-P4、Q0-Q4)。对于不同品牌不同的服务器或者同一品牌服务器的不同型号,其RAID控制器组件的RAID6在结构上会有所不同,按照其数据条带和校验条带在RAID6成员盘中分布方式的不同,可以把RAID6的结构分为4种,分别是常规左异步、常规左同步、常规右异步和常规右同步,各结构间的区别主要在于数据写入方向及次序,具体地:
常规左异步结构:校验块从最后一块物理盘开始,依次往前面的盘中写入,当写到第一块物理盘后再回到最后一块物理盘,依次循环写入;数据块从第一块物理盘开始,依次往后面的物理盘写入,即各条带组内的数据块均由低号物理盘向高号物理盘依次写入;
常规左同步结构:校验块从最后一块物理盘开始,依次往前面的盘中写入,当写到最后一块物理盘后再回到第一块物理盘,依次循环写入;每个条带组内的第一个数据块首先写入校验块所在物理盘的下一物理盘中,其余数据块再依次写入;
常规右异步结构:校验块从第一块物理盘开始,依次往后面的盘中写入,当写到最后一块物理盘后再回到第一块物理盘,依次循环写入;各条带组内的数据块均由低号物理盘向高号物理盘依次写入;
常规右同步结构:校验块从第一块物理盘开始,依次往后面的盘中写入,当写到最后一块物理盘后再回到第一块物理盘,依次循环写入;每个条带组内的第一个数据块首先写入校验块所在物理盘的下一物理盘中,其余数据块再依次写入。
根据上述对常规RAID6存储的数据结构的分析,为数据块内分配逻辑序号,则该逻辑序号应当符合特定的规律,且对于不同的数据结构,该规律也不同,利用上述理论可以进行RAID6存储的数据恢复。具体地:
假设有一常规左同步结构的RAID6存储设备,其包括4个成员盘(磁盘1-4),则其逻辑顺序可表示为下表:
表1常规左同步结构的RAID6存储阵列(N=4)
条带号 | 磁盘1 | 磁盘2 | 磁盘3 | 磁盘4 |
0 | 1 | 2 | P0 | Q0 |
1 | 4 | P1 | Q1 | 3 |
2 | P2 | Q2 | 5 | 6 |
3 | Q3 | 7 | 8 | P3 |
4 | 9 | 10 | P4 | Q4 |
.. | .. | .. | .. | .. |
表1每个磁盘中,数字表示数据块内分配的逻辑序号,P或Q开头的数字表示校验块内写入的校验信息。选取磁盘1,纵向记录带有逻辑序号且连续的N-2个条带块,即选取磁盘1的{1,4}逻辑条带块,相减得到数值4-1=3;其他磁盘也有类似的规律,即任选一个成员盘,纵向记录带有逻辑序号且连续的2个条带块并排序,相减后均可得到数值3。
假设另一包括5块成员盘的常规左同步结构的RAID6存储设备,其包括5个成员盘,则其逻辑顺序可表示为下表:
表2常规左同步结构的RAID6存储阵列(N=5)
选取磁盘1,纵向记录带有逻辑序号且连续的N-2个条带块并排序,也就是选取磁盘1的{1,5,9}逻辑条带块,相减得到数值9-1=8。其他磁盘也有类似的规律,即任选一个成员盘,纵向记录带有逻辑序号且连续的3个条带块并排序,相减后均可得到数值8。
因此,可以推测,对于任意包括N块成员盘的常规左同步结构的RAID6存储设备,记录任意一块磁盘中带有逻辑序号且连续的N-2个条带,其逻辑序号均符合一固定规律。具体地,假设第一个逻辑号为k,选取N-2个条带块,则有:
第一个逻辑号:k;
第二个逻辑号:1ⅹ(N-2)+k+1;
第三个逻辑号:2ⅹ(N-2)+k+2;
……
第N-2个逻辑号:[(N-2)-1]ⅹ(N-2)+k+(N-2)-1。
计算第N-2个逻辑号减去第一个逻辑号的值X:
X=(N-3)ⅹ(N-2)+k+N-3-k;
可得关系式:
X=(N-2)ⅹ(N-2)-1;
因此,对于任意RAID6结构的数据存储阵列,如果满足关系式X=(N-2)ⅹ(N-2)-1,则可以判断该数据存储阵列的结构类型是常规左同步。确定了该数据存储阵列的类型后,即可根据相应的存储规则对数据存储阵列进行数据恢复。
又假设有一常规左异步结构的RAID6存储设备,其包括4个成员盘(磁盘1-4),则其逻辑顺序可表示为下表:
表3常规左异步结构的RAID6存储阵列(N=4)
条带号 | 磁盘1 | 磁盘2 | 磁盘3 | 磁盘4 |
0 | 1 | 2 | P0 | Q0 |
1 | 3 | P1 | Q1 | 4 |
2 | P2 | Q2 | 5 | 6 |
3 | Q3 | 7 | 8 | P3 |
4 | 9 | 10 | P4 | Q4 |
.. | .. | .. | .. | .. |
选取磁盘1,纵向记录带有逻辑序号且连续的N-2个条带块,即选取磁盘1的{1,3}逻辑条带块,相减得到数值3-1=2;
选取磁盘2,纵向记录带有逻辑序号且连续的N-2个条带块,即选取磁盘2的{7,10}逻辑条带块,相减得到数值10-7=3;
选取磁盘3,纵向记录带有逻辑序号且连续的N-2个条带块,即选取磁盘3的{5,8}逻辑条带块,相减得到数值8-5=3;
选取磁盘4,纵向记录带有逻辑序号且连续的N-2个条带块也就是选取磁盘4的{4,6}逻辑条带块,相减得到数值6-4=2。
假设另一包括5块成员盘的常规左异步结构的RAID6存储设备,其逻辑顺序表如下:
表4常规左异步结构的RAID6存储阵列(N=5)
条带号 | 磁盘1 | 磁盘2 | 磁盘3 | 磁盘4 | 磁盘5 |
0 | 1 | 2 | 3 | P0 | Q0 |
1 | 4 | 5 | P1 | Q1 | 6 |
2 | 7 | P2 | Q2 | 8 | 9 |
3 | P3 | Q3 | 10 | 11 | 12 |
4 | Q4 | 13 | 14 | 15 | P4 |
5 | 16 | 17 | 18 | P5 | Q5 |
6 | 19 | 20 | P6 | Q6 | 21 |
… | … | … | … | … | … |
以同样的方式,依次对每一成员盘,纵向记录带有逻辑序号且连续的N-2个条带块并排序,可以得到成员盘1-5对应的数值为{6,7,8,7,6},是从两侧向中间递增的关系。
因此,可以推测,对于任意包括N块成员盘的常规左异步结构的RAID6存储设备,记录任意一块磁盘中带有逻辑序号且连续的N-2个条带,其逻辑序号同样符合一固定规律。具体地,假设第一个逻辑号为k,选取N-2个条带块,则有:
第一个逻辑号:k;
第二个逻辑号:k+N-2;
第三个逻辑号:k+(N-2)ⅹ2;
……
第N-2个逻辑号:k+(N-2)ⅹ[(N-2)-1]。
计算第N-2个逻辑号减去第一个逻辑号的值X:
X=k+(N-2)ⅹ(N-3)-k=(N-2)ⅹ(N-3);
当选取第N/2(取整数)块磁盘时,中间必有两块相差N-1块,剩下的都是N-2块,因此,中间块的逻辑号是:
当N=4时,X=3;
当N>4时,X=(N-3-2)ⅹ(N-2)+2ⅹ(N-1)=(N-2)ⅹ(N-3)+2;
综上,可得关系式:
(N-2)ⅹ(N-3)≤X≤(N-2)ⅹ(N-3)+2;
因此,对于任意RAID6结构的数据存储阵列,如果满足关系式(N-2)ⅹ(N-3)≤X≤(N-2)ⅹ(N-3)+2,则可以判断该数据存储阵列的结构类型是常规左异步。
对于其他结构类型,可通过类似的分析方法确定其关系式,本申请中不再赘述,下表为不同数据阵列结构类型中盘数N与差值X的关系式汇总:
表5不同数据阵列结构类型中盘数N与差值X的关系式
常规左同步 | X=(N-2)*(N-2)-1 |
常规左异步 | X=[(N-2)*(N-3),(N-2)*(N-3)+2] |
常规右同步 | X=(N-3)*(N-3) |
常规右异步 | X=[(N-1)*(N-4),(N-2)*(N-3)] |
其中,差值X的定义为:为包括N块物理盘的存储矩阵中的数据块依次分配逻辑序号,获取每块物理盘中带有逻辑序号的连续N-2个数据块,记为集合K={K1,K2,…,Kn-2},则差值X为集合K中数据块Kn-2对应的逻辑号与数据块K1对应的逻辑号之差。
基于盘数N与差值X的关系,可以对基于RAID6存储阵列的数据进行恢复。
图2示出了根据本发明的实施例提供的一种RAID6数据恢复方法的示意性流程图。
包括:
步骤S2-1:在RAID6中任意选取一块物理盘,检索文件记录关键字的起始位置,并记录该块物理盘的文件记录号;
步骤S2-2:横向对比所述起始位置对应于其它物理盘的对应位置是否存在文件记录关键字,若有则记录所述其它物理盘的文件记录号;
步骤S2-3:计算S2-1和S2-2中所述对应位置的文件记录的个数以得到所述RAID6的条带大小,进一步利用所述条带大小横向获取所述RAID6的每块物理盘中2N-3个所述条带大小的的连续条带块,通过所述文件记录号来分配所述条带块的逻辑号和校验块以确定RAID6的类型;
步骤S2-4:任意选择一块物理盘,纵向记录N-2个带有逻辑号且所述逻辑号是连续的条块带,并对所述N-2个条块带进行排序,得到条带块集合K,利用所述集合K中最后一个条带块KN-2减去第一个条带块K1得到差值X,再根据数据矩阵公式的情况来确定RAID6的类型,若根据差值X对应数据矩阵公式得到了多种RAID6类型,则选择未计算过的物理盘,重新执行步骤S2-4;
其中,所述条带块集合K={K1,K2,……,KN-2};
步骤S2-5:基于所述起始位置以及第一块物理盘进行排序,且设置所述RAID6中物理盘的类型和条带大小,进行数据重组以恢复RAID6中的数据。
需要说明的是,步骤S2-3中得到所述RAID6的条带大小的步骤具体包括:
判断所述对应位置的文件记录的个数是否大于或等于N-2个,若是则对所述文件记录号进行排序,使相邻的两个文件记录号分别两两相减得到各自对应的相差值,并用出现次数最多的相差值乘以所述文件记录的大小得到所述RAID6的条带大小;
若所述对应位置的文件记录的个数小于N-2个,则在未找到文件记录的物理盘中从所述起始位置处开始继续扫描检测文件记录,若能找到文件记录则重复步骤S2-2,否则结束。
需要说明的是,当S2-4中为:X=(N-2)*(N-2)-1的数据矩阵公式被满足时,RAID6是常规左同步结构。
需要说明的是,当S2-4中为:X=[(N-2)*(N-3),(N-2)*(N-3)+2]的数据矩阵公式被满足时,RAID6是常规左异步结构。
需要说明的是,当S2-4中为:X=(N-3)*(N-3)的数据矩阵公式被满足时,RAID6是常规右同步结构。
需要说明的是,当S2-4中为:X=[(N-1)*(N-4),(N-2)*(N-3)]的数据矩阵公式被满足时,RAID6是常规右异步结构。
需要说明的是,根据所述物理盘的盘序,所述起始位置、条带大小以及所述物理盘类型利用Raid Reconstructor或WinHex等软件重建Raid6磁盘序列,或采用R-Stud i等数据恢复软件直接恢复Raid6中的数据,完成所述RAID6中的数据重组。
图3示出了根据本发明的实施例提供的一种RAID6数据恢复方法的示例。如图3所示,所述RAID6数据恢复方法包括:
步骤S3-1:在RAID6中任意选取一块物理盘检索文件记录关键字,得到该块物理盘的文件记录的起始位置和记录号,具体包括:
任意选择所述RAID6中的任意一块物理盘;在所述物理盘中基于所述关键字进行搜索;如果所述搜索存在结果,则将所述结果作为所述文件记录,得到所述文件记录的起始位置和记录号;如果在所述物理盘中检索关键字没有得到所述文件记录则结束;
在一个具体的实施例中,以图1为例,选择所述RAID6的任意一块物理盘0并基于关键字进行搜索,得到物理盘0中的标号为2的位置存储了所述关键字,即物理盘0中的起始位置L1为物理盘0中标号为2号位置。
步骤S3-2:横向对比所述起始位置对应于其它物理盘的对应位置是否存在文件记录关键字,若有则记录所述其它物理盘的文件记录号;
在一个具体的实施例中,以图1为例,横向对比其他物理盘1、2和3中与所述物理盘0的2号位置对应的位置,即物理盘1中标号为P1的位置,和物理盘2中标号为Q1的位置,以及物理盘3中标号为3的位置,判断是否存在所述关键字,若有则记录文件记录号。
步骤S3-3:计算S3-1和S3-2中所述对应位置的文件记录的个数,判断所述对应位置的文件记录的个数是否大于或等于N-2个,若所述对应位置的文件记录的个数大于或等于N-2个,则对所述文件记录号进行排序,使相邻的两个文件记录号分别两两相减得到各自对应的相差值,并用出现次数最多的相差值乘以所述文件记录的大小得到所述RAID6的条带大小;
若所述对应位置的文件记录的个数小于N-2个,则在未找到文件记录的物理盘中从所述起始位置处开始继续扫描检测文件记录,若能找到文件记录则重复步骤S3-2,否则结束;
进一步利用所述RAID6的条带大小横向获取所述RAID6的每块物理盘中2N-3个所述条带大小的的连续条带块,通过所述文件记录号来分配所述条带块的逻辑号和校验块;
在一个具体的实施例中,以图1为例,N=4,如果所述位置获得的文件记录号大于或等于2个,对所述文件记录进行排序,使相邻的两个文件记录号分别两两相减得到各自对应的相差值,并用出现次数最多的相差值乘以所述文件记录的大小得到所述RAID6的条带大小;
若所述位置获得的文件记录号的个数小于2个,即物理盘1中标号为P1的位置、物理盘2中标号为Q1的位置,以及物理盘3中标号为3的位置仅存在一个位置有文件记录,此时,假设物理盘3中标号为3的位置存在文件记录,其余位置不存在文件记录,则在未找到文件记录的物理盘1和2中从所述起始位置L1处开始继续扫描检测文件记录关键字;
若物理盘2中能够检测到文件记录,则记录物理盘2中所述文件记录的起始位置L2和记录号,并横向对比其他物理盘0、1和3中与所述物理盘2的起始位置L2对应的位置是否存在所述关键字;
当所述对应位置的文件记录的个数小于2个时,则在未找到文件记录的物理盘中从所述起始位置L2处开始继续扫描检测文件记录,若能找到文件记录则重复步骤S3-2,否则结束;
分别利用所述RAID6的条带大小横向获取所述RAID6的物理盘0、1、2和3中5个所述条带大小的的连续条带块,通过所述文件记录号来分配所述条带块的逻辑号和校验块。
步骤S3-4:任意选择一块物理盘,纵向记录N-2个带有逻辑号且所述逻辑号是连续的条块带,并对所述N-2个条块带进行排序,得到条带块集合K,利用所述集合K中最后一个条带块KN-2减去第一个条带块K1得到差值X,再根据数据矩阵公式的情况来确定RAID6的类型,若根据差值X对应数据矩阵公式得到了多种RAID6类型,则选择未计算过的物理盘,重新执行步骤S3-4;
其中,所述条带块集合K={K1,K2,……,KN-2};
步骤S3-5:基于所述起始位置以及第一块物理盘进行排序,且设置所述RAID6中物理盘的类型和条带大小,进行数据重组以恢复RAID6中的数据。
需要说明的是,当S3-4中为:X=(N-2)*(N-2)-1的数据矩阵公式被满足时,RAID6是常规左同步结构。
需要说明的是,当S3-4中为:X=[(N-2)*(N-3),(N-2)*(N-3)+2]的数据矩阵公式被满足时,RAID6是常规左异步结构。
需要说明的是,当S3-4中为:X=(N-3)*(N-3)的数据矩阵公式被满足时,RAID6是常规右同步结构。
需要说明的是,当S3-4中为:X=[(N-1)*(N-4),(N-2)*(N-3)]的数据矩阵公式被满足时,RAID6是常规右异步结构。
在一个具体的实施例中,选取物理盘2,纵向记录2个带有逻辑号且逻辑号是连续的条带块并排序,得到条带块集合K={4,7},利用集合K计算获得差值X=3,根据数据矩阵公式得到对应的RAID6结构类型为常规左同步,常规左异步,重新选择未计算过得物理盘执行步骤S3-4,例如重新选取物理盘3,得到条带块集合K={3,5},差值X=2,根据数据矩阵公式得到对应的RAID6结构类型为常规右异步,常规左异步,最后确定图1所示RAID6的结构类型为常规左异步。
最后,基于所述起始位置以及第一块物理盘进行排序,且设置所述RAID6中物理盘的类型为常规左异步和条带大小,进行数据重组以恢复RAID6中的数据。
图4示出了根据本发明的实施例提供的一种RAID6数据恢复装置的示意性框图。包括:
检索模块4-1:在RAID6中任意选取一块物理盘,检索文件记录关键字的起始位置,并记录该块物理盘的文件记录号;
横向对比所述起始位置对应于其它物理盘的对应位置是否存在文件记录关键字,若有则记录所述其它物理盘的文件记录号;
计算和获取模块4-2:计算所述对应位置的文件记录的个数以得到所述RAID6的条带大小,进一步利用所述条带大小横向获取所述RAID6的每块物理盘中2N-3个所述条带大小的的连续条带块,通过所述文件记录号来分配所述条带块的逻辑号和校验块以确定RAID6的类型;
确认模块4-3:任意选择一块物理盘,纵向记录N-2个带有逻辑号且所述逻辑号是连续的条块带,并对所述N-2个条块带进行排序,得到条带块集合K,利用所述集合K中最后一个条带块KN-2减去第一个条带块K1得到差值X,再根据数据矩阵公式的情况来确定RAID6的类型,若根据差值X对应数据矩阵公式得到了多种RAID6类型,则选择未计算过的物理盘,重新执行本步骤;
其中,所述条带块集合K={K1,K2,……,KN-2},
所述数据矩阵公式与RAID6的类型对应关系如下:
当为X=(N-2)*(N-2)-1的数据矩阵公式被满足时,RAID6是常规左同步结构;
当为X=[(N-2)*(N-3),(N-2)*(N-3)+2]的数据矩阵公式被满足时,RAID6是常规左异步结构;
当为X=(N-3)*(N-3)的数据矩阵公式被满足时,RAID6是常规右同步结构;
当为X=[(N-1)*(N-4),(N-2)*(N-3)]的数据矩阵公式被满足时,RAID6是常规右异步结构;
设置模块4-4:基于所述起始位置以及第一块物理盘进行排序,且设置所述RAID6中物理盘的类型,进行数据重组以恢复RAID6中的数据;
恢复模块4-5:用于恢复所述RAID6中的数据。
需要说明的是,计算和获取模块4-2中得到所述RAID6的条带大小的步骤具体包括:
判断所述对应位置的文件记录的个数是否大于或等于N-2个,若是则对所述文件记录号进行排序,使相邻的两个文件记录号分别两两相减得到各自对应的相差值,并用出现次数最多的相差值乘以所述文件记录的大小得到所述RAID6的条带大小;
若所述对应位置的文件记录的个数小于N-2个,则在未找到文件记录的物理盘中从所述起始位置处开始继续扫描检测文件记录,若能找到文件记录则重复横向对比所述起始位置对应于其它物理盘的对应位置是否存在文件记录关键字,若有则记录所述其它物理盘的文件记录号,否则结束。
需要说明的是,其中,根据本发明实施例中RAID6的每个物理盘中(2N-3)个所述条带大小的条带块,N代表RAID6由N块物理盘组成,则一共有(2N-3)*N个条带块,且所述条带块中的数据条带块分配由逻辑序号,校验条带块不分配逻辑序号。
需要说明的是,通过对纵向记录的N-2个连续的数据条带块进行排序并用排序后的最大值减去最小值得到二者差值,进而准确定位RAID6的结构类型,最终实现数据恢复,能够快速且准确地定位RAID6结构类型,提高了检测速度和对RAID6的判断效率。
另一方面,根据本发明实施例的RAID6数据恢复系统,包括:存储装置、以及处理器;存储装置存储用于实现根据本发明实施例的RAID6数据恢复方法中的相应步骤的程序代码;处理器用于运行所述存储装置中存储的程序代码,以执行根据本发明实施例的RAID6数据恢复方法的相应步骤,并且用于实现根据本发明实施例的RAID6数据恢复装置。
此外,根据本发明实施例,还提供了一种存储介质,在所述存储介质上存储了程序指令,在所述程序指令被计算机或处理器运行时用于执行本发明实施例的RAID6数据恢复方法的相应步骤,并且用于实现根据本发明实施例的RAID6数据恢复装置中的相应模块。
需要说明的是,所述存储介质例如可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、或者上述存储介质的任意组合。
需要说明的是,所述计算机可读存储介质可以是一个或多个计算机可读存储介质的任意组合,例如一个计算机可读存储介质包含用于随机地生成动作指令序列的计算机可读的程序代码,另一个计算机可读存储介质包含用于进行RAID6数据恢复的计算机可读的程序代码。
最后所应说明的是:以上实施例仅以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
以上描述了本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
在本申请的描述中,需要理解的是,术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。措词‘包括’并不排除在权利要求未列出的元件或步骤的存在。元件前面的措词‘一’或‘一个’并不排除多个这样的元件的存在。在相互不同从属权利要求中记载某些措施的简单事实不表明这些措施的组合不能被用于改进。在权利要求中的任何参考符号不应当被解释为限制范围。
Claims (10)
1.一种基于数据矩阵的RAID6数据恢复方法,其特征在于,所述RAID6包括N块物理盘,所述方法包括:
S1:在RAID6中任意选取一块物理盘,检索文件记录关键字的起始位置,并记录该块物理盘的文件记录号;
S2:横向对比所述起始位置对应于其它物理盘的对应位置是否存在文件记录关键字,若有则记录所述其它物理盘的文件记录号;
S3:计算S1和S2中所述对应位置的文件记录的个数以得到所述RAID6的条带大小,进一步利用所述条带大小横向获取所述RAID6的每块物理盘中2N-3个所述条带大小的的连续条带块,通过所述文件记录号来分配所述条带块的逻辑号和校验块以确定RAID6的类型;
S4:任意选择一块物理盘,纵向记录N-2个带有逻辑号且所述逻辑号是连续的条块带,并对所述N-2个条块带进行排序,得到条带块集合K,利用所述集合K中最后一个条带块KN-2减去第一个条带块K1得到差值X,再根据数据矩阵公式的情况来确定RAID6的类型,若根据差值X对应数据矩阵公式得到了多种RAID6类型,则选择未计算过的物理盘,重新执行步骤S4;
其中,所述条带块集合K={K1,K2,……,KN-2};
S5:基于所述起始位置以及第一个块物理盘进行排序,且设置所述RAID6中物理盘的类型,进行数据重组以恢复RAID6中的数据。
2.根据权利要求1所述的方法,其特征在于,步骤S3中得到所述RAID6的条带大小的步骤具体包括:
判断所述对应位置的文件记录的个数是否大于或等于N-2个,若是则对所述文件记录号进行排序,使相邻的两个文件记录号分别两两相减得到各自对应的相差值,并用出现次数最多的相差值乘以所述文件记录的大小得到所述RAID6的条带大小;
若所述对应位置的文件记录的个数小于N-2个,则在未找到文件记录的物理盘中从所述起始位置处开始继续扫描检测文件记录,若能找到文件记录则重复步骤S2,否则结束。
3.根据权利要求1所述的方法,其特征在于,当S4中为X=(N-2)*(N-2)-1的数据矩阵公式被满足时,RAID6是常规左同步结构。
4.根据权利要求1所述的方法,其特征在于,当S4中为X=[(N-2)*(N-3),(N-2)*(N-3)+2]的数据矩阵公式被满足时,RAID6是常规左异步结构。
5.根据权利要求1所述的方法,其特征在于,当S4中为X=(N-3)*(N-3)的数据矩阵公式被满足时,RAID6是常规右同步结构。
6.根据权利要求1所述的方法,其特征在于,当S4中为X=[(N-1)*(N-4),(N-2)*(N-3)]的数据矩阵公式被满足时,RAID6是常规右异步结构。
7.一种基于数据矩阵的RAID6数据恢复装置,其特征在于,所述RAID6包括N块物理盘,包括:
检索模块:在RAID6中任意选取一块物理盘,检索文件记录关键字的起始位置,并记录该块物理盘的文件记录号;
横向对比所述起始位置对应于其它物理盘的对应位置是否存在文件记录关键字,若有则记录所述其它物理盘的文件记录号;
计算和获取模块:计算所述对应位置的文件记录的个数以得到所述RAID6的条带大小,进一步利用所述条带大小横向获取所述RAID6的每块物理盘中2N-3个所述条带大小的的连续条带块,通过所述文件记录号来分配所述条带块的逻辑号和校验块以确定RAID6的类型;
确认模块:任意选择一块物理盘,纵向记录N-2个带有逻辑号且所述逻辑号是连续的条块带,并对所述N-2个条块带进行排序,得到条带块集合K,利用所述集合K中最后一个条带块KN-2减去第一个条带块K1得到差值X,再根据数据矩阵公式的情况来确定RAID6的类型,若根据差值X对应数据矩阵公式得到了多种RAID6类型,则选择未计算过的物理盘,重新执行步骤S4;
其中,所述条带块集合K={K1,K2,……,KN-2},
所述数据矩阵公式与RAID6的类型对应关系如下:
当确认模块中为X=(N-2)*(N-2)-1的数据矩阵公式被满足时,RAID6是常规左同步结构;
当确认模块中为X=[(N-2)*(N-3),(N-2)*(N-3)+2]的数据矩阵公式被满足时,RAID6是常规左异步结构;
当确认模块中为X=(N-3)*(N-3)的数据矩阵公式被满足时,RAID6是常规右同步结构;
当确认模块中为X=[(N-1)*(N-4),(N-2)*(N-3)]的数据矩阵公式被满足时,RAID6是常规右异步结构;
设置模块:基于所述起始位置以及第一个块物理盘进行排序,且设置所述RAID6中物理盘的类型,进行数据重组以恢复RAID6中的数据;
恢复模块:用于恢复所述RAID6中的数据。
8.根据权利要求7所述的装置,其特征在于,计算和获取模块中得到所述RAID6的条带大小的具体包括:
判断所述对应位置的文件记录的个数是否大于或等于N-2个,若是则对所述文件记录号进行排序,使相邻的两个文件记录号分别两两相减得到各自对应的相差值,并用出现次数最多的相差值乘以所述文件记录的大小得到所述RAID6的条带大小;
若所述对应位置的文件记录的个数小于N-2个,则在未找到文件记录的物理盘中从所述起始位置处开始继续扫描检测文件记录,若能找到文件记录则重复横向对比所述起始位置对应于其它物理盘的对应位置是否存在文件记录关键字,若有则记录文件记录号,否则结束。
9.一种RAID6数据恢复系统,包括存储器、处理器及存储在所述存储器上且在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-6中任一项所述方法的步骤。
10.一种计算机可读介质,其上存储有计算机程序,所述计算机程序在被处理器执行时实施如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311310772.0A CN117453449A (zh) | 2023-10-11 | 2023-10-11 | 一种基于数据矩阵的raid6数据恢复方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311310772.0A CN117453449A (zh) | 2023-10-11 | 2023-10-11 | 一种基于数据矩阵的raid6数据恢复方法、装置和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117453449A true CN117453449A (zh) | 2024-01-26 |
Family
ID=89586460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311310772.0A Pending CN117453449A (zh) | 2023-10-11 | 2023-10-11 | 一种基于数据矩阵的raid6数据恢复方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117453449A (zh) |
-
2023
- 2023-10-11 CN CN202311310772.0A patent/CN117453449A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10725692B2 (en) | Data storage method and apparatus | |
US20160378624A1 (en) | Erasure coding of data within a group of storage units based on connection characteristics | |
Bairavasundaram et al. | An analysis of data corruption in the storage stack | |
US6629273B1 (en) | Detection of silent data corruption in a storage system | |
US6161192A (en) | Raid array data storage system with storage device consistency bits and raidset consistency bits | |
US7788569B2 (en) | Autonomic parity exchange | |
US5333143A (en) | Method and means for b-adjacent coding and rebuilding data from up to two unavailable DASDS in a DASD array | |
US5859965A (en) | Method and apparatus for maintaining data consistency in raid | |
EP1458107A1 (en) | Extended error correction codes | |
EP1457987A2 (en) | Error correction codes | |
CN101840360A (zh) | Raid系统的快速重建方法及装置 | |
CN111782439B (zh) | 一种基于水平编码的双盘循环校验方法 | |
CN108228382B (zh) | 一种针对evenodd码单盘故障的数据恢复方法 | |
CN109918225B (zh) | 基于飞腾平台的raid6数据恢复优化方法 | |
US7870464B2 (en) | System and method for recovery of data for a lost sector in a storage system | |
CN101526885A (zh) | 一种提升独立磁盘冗余阵列性能的方法及其控制器 | |
US6457014B1 (en) | System and method for extracting index key data fields | |
CN111930552B (zh) | 坏块数据的恢复方法、装置、存储介质及电子设备 | |
Venkatesan et al. | Effect of codeword placement on the reliability of erasure coded data storage systems | |
Iliadis | Reliability evaluation of erasure-coded storage systems with latent errors | |
US7971092B2 (en) | Methods and devices for high performance consistency check | |
CN110600070B (zh) | 一种提升固态硬盘阵列系统修复性能的编码和修复方法 | |
US7246301B2 (en) | Method for storage array error correction | |
CN117453449A (zh) | 一种基于数据矩阵的raid6数据恢复方法、装置和系统 | |
US8214589B2 (en) | Data storage system redundancy scheme verification |
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 |