CN112256478B - 一种单磁盘故障的修复方法、系统、设备及存储介质 - Google Patents
一种单磁盘故障的修复方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN112256478B CN112256478B CN202011111485.3A CN202011111485A CN112256478B CN 112256478 B CN112256478 B CN 112256478B CN 202011111485 A CN202011111485 A CN 202011111485A CN 112256478 B CN112256478 B CN 112256478B
- Authority
- CN
- China
- Prior art keywords
- data blocks
- disk
- data
- data block
- fault
- 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
- G06F11/1446—Point-in-time backing up or restoration of persistent data
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
Abstract
本申请公开了一种单磁盘故障的修复方法,包括:在确定出基于HoVer编码的存储系统发生了单个磁盘故障的情况之后,根据预设规则,从故障磁盘的r+1个数据块中选取出(r‑1)/2个数据块作为第一类数据块,并将剩余的(r+1)/2+1个数据块选作为第二类数据块;利用行校验集合进行第一类数据块中的各个数据块的修复;利用对角校验集合进行第二类数据块中的各个数据块的修复;且在进行任一数据块的修复时,当需要使用的数据块位于内存中时,从内存中进行该数据块的读取。应用本申请的方案,有效地降低了单磁盘故障的数据恢复时间,从而提高了存储系统的可靠性。本申请还公开了一种单磁盘故障的修复系统、设备及存储介质,具有相应效果。
Description
技术领域
本发明涉及故障修复技术领域,特别是涉及一种单磁盘故障的修复方法、系统、设备及存储介质。
背景技术
目前,人们对数据存储的可靠性和可用性的需求不断提高。然而,随着存储系统规模的不断扩大,以及廉价存储设备的广泛采用,导致当前存储系统中发生故障的概率不断提高,因此,存储系统中通常会采用容错技术来保证数据的可靠存储。当磁盘故障时,存储系统便可以利用容错技术,从存活磁盘中读取一定量数据,重构出故障盘中的丢失数据。在故障修复过程中,从存活磁盘读取的数据量直接影响着系统的可靠性以及用户请求的服务性能,因此,如何进行有效的数据修复,最小化修复过程中所消耗的系统资源是存储系统中容错修复的关键性问题。
RAID6通过在系统中添加两个磁盘的冗余校验信息来保证系统可以容忍两个磁盘同时发生故障,常见的RAID6校验编码包括RDP编码、EVENODD编码、HoVer编码等。在RAID6存储系统中,一旦某个磁盘发生故障,存放在该磁盘上的数据将会暂时不可读或者发生丢失。为了维持数据存储的高可靠性,系统需要对故障盘中的数据进行修复,具体为从存储系统的其他存活磁盘中读取一定量的原始数据块以及校验数据块,通过异或运算解码出故障盘中的数据,该过程称为数据恢复。
HoVer编码是常用的具有双容错能力的编码,当然,实际应用中,单磁盘故障的发生频率远远高于双磁盘故障。当发生单磁盘故障时,HoVer编码中存在的两种校验编码都可以用于实现单盘故障数据块的恢复,在传统方案中,会选用其中一种编码方式实现数据块恢复,即,仅使用水平校验链或仅使用对角校验链实现数据块的恢复,这样会使得磁盘读取操作的次数较多,也就使得单磁盘故障的数据恢复时间较长,降低了RAID6存储系统的可靠性。
综上所述,如何有效地降低单磁盘故障的数据恢复时间,从而提高存储系统的可靠性,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种单磁盘故障的修复方法、系统、设备及存储介质,以有效地降低单磁盘故障的数据恢复时间,从而提高存储系统的可靠性。
为解决上述技术问题,本发明提供如下技术方案:
一种单磁盘故障的修复方法,包括:
在确定出基于HoVer编码的存储系统发生了单个磁盘故障的情况之后,根据预设规则,从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将所述故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块;
利用行校验集合进行第一类数据块中的各个数据块的修复;
利用对角校验集合进行第二类数据块中的各个数据块的修复;并且在进行任一数据块的修复时,当需要使用的数据块位于内存中时,从内存中进行该数据块的读取;
其中,r+1表示所述故障磁盘中的数据块的数量,所述存储系统中具有n+1个磁盘,且n-2=r,r为大于2的素数。
优选的,所述根据预设规则,从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将所述故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块,包括:
确定出Cr (r-1)/2种选取方式;
从Cr (r-1)/2种选取方式中,随机确定一种选取方式,并且按照该选取方式从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将所述故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块;
其中,C为组合符号,Cr (r-1)/2种选取方式中的每一种均符合从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将所述故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块的要求。
优选的,所述根据预设规则,从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将所述故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块,包括:
将故障磁盘的第0数据块至第(r-3)/2数据块,作为第一类数据块,并且将所述故障磁盘中的第(r-1)/2数据块至第r数据块,作为第二类数据块;
其中,所述故障磁盘中具有r+1个数据块,且依次编号为故障磁盘的第0数据块至第r数据块。
优选的,所述根据预设规则,从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将所述故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块,包括:
将最小方差值所对应的选取方式,作为选定的选取方式,并且按照这一选定的选取方式,从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将所述故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块;
优选的,在利用对角校验集合进行第二类数据块中的各个数据块的修复之后,还包括:
输出故障修复完成的提示信息。
一种单磁盘故障的修复系统,包括:
分类模块,用于在确定出基于HoVer编码的存储系统发生了单个磁盘故障的情况之后,根据预设规则,从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将所述故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块;
第一修复模块,用于利用行校验集合进行第一类数据块中的各个数据块的修复;
第二修复模块,用于利用对角校验集合进行第二类数据块中的各个数据块的修复;并且在进行任一数据块的修复时,当需要使用的数据块位于内存中时,从内存中进行该数据块的读取;
其中,r+1表示所述故障磁盘中的数据块的数量,所述存储系统中具有n+1个磁盘,且n-2=r,r为大于2的素数。
优选的,分类模块,具体用于:
将最小方差值所对应的选取方式,作为选定的选取方式,并且按照这一选定的选取方式,从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将所述故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块;
优选的,还包括:
提示信息输出模块,用于在所述第二修复模块利用对角校验集合进行第二类数据块中的各个数据块的修复之后,输出故障修复完成的提示信息。
一种单磁盘故障的修复设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现上述任一项所述的单磁盘故障的修复方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的单磁盘故障的修复方法的步骤。
应用本发明实施例所提供的技术方案,结合了行校验集合以及对角校验集合实现故障硬盘的数据块的修复,具体的,根据预设规则,从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块,利用行校验集合进行第一类数据块中的各个数据块的修复,利用对角校验集合进行第二类数据块中的各个数据块的修复;并且在进行任一数据块的修复时,当需要使用的数据块位于内存中时,从内存中进行该数据块的读取,因此,本申请的方案所需要的磁盘读取操作数为低于传统方案中仅采用行校验进行故障磁盘的数据块的恢复所需要的磁盘读取操作数nr,也低于传统方案中仅采用对角校验进行故障磁盘的数据块的恢复所需要的磁盘读取操作数r(r+1),由于本申请方案的磁盘读取操作数低,因此本申请的方案有效地降低了单磁盘故障的数据恢复时间,从而提高了存储系统的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明中一种单磁盘故障的修复方法的实施流程图;
图2为一种场景中从行校验恢复故障磁盘数据的示意图;
图3为一种场景中从对角校验恢复故障磁盘数据的示意图;
图4为本申请的方案和传统的数据恢复方法的比较示意图;
图5为本申请的方案获得的性能提升示意图;
图6为本发明中一种单磁盘故障的修复系统的结构示意图。
具体实施方式
本发明的核心是提供一种单磁盘故障的修复方法,有效地降低了单磁盘故障的数据恢复时间,从而提高了存储系统的可靠性。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明中一种单磁盘故障的修复方法的实施流程图,该单磁盘故障的修复方法可以包括以下步骤:
步骤S101:在确定出基于HoVer编码的存储系统发生了单个磁盘故障的情况之后,根据预设规则,从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块。
具体的,本申请的存储系统为基于HoVer编码的RAID6存储系统,先对HoVer编码进行介绍。
HoVer编码是一个大小为(r+1)×(n+1)的编码阵列,即为存储系统中的一个条带,其中,n+1表示磁盘的数量,具体即为一个条带中的磁盘的数量,r+1表示单个磁盘中数据块的数量,r为大于2的素数,且n-2=r。HoVer编码中的一列,可以视为阵列存储系统中的一个磁盘,其中前r×n个数据块为数据列,用于存放原始数据,最后一列以及最后一行则分别为水平编码和垂直编码,用于存放行校验块和对角校验块。
便于理解以r=5,n=7为例进行说明,可参阅表一,为r=5,n=7时的HoVer编码的布局示意表。
表一:
Disk0 | Disk1 | Disk2 | Disk3 | Disk4 | Disk5 | Disk6 | Disk7 |
0:1 | 0:2 | 0:3 | 0:4 | 0:5 | 0:6 | 0:0 | H(0) |
1:2 | 1:3 | 1:4 | 1:5 | 1:6 | 1:0 | 1:1 | H(1) |
2:3 | 2:4 | 2:5 | 2:6 | 2:0 | 2:1 | 2:2 | H(2) |
3:4 | 3:5 | 3:6 | 3:0 | 3:1 | 3:2 | 3:3 | H(3) |
4:5 | 4:6 | 4:0 | 4:1 | 4:2 | 4:3 | 4:4 | H(4) |
V(0) | V(1) | V(2) | V(3) | V(4) | V(5) | V(6) |
在表一中,磁盘的数量为n+1=8,依次编号为磁盘0,磁盘1,磁盘2,磁盘3,磁盘4,磁盘5,磁盘6以及磁盘7。HoVer编码的阵列大小为6×8,其中前5×7个数据块属于数据列,用于存放原始数据,最后一列中的H(0)至H(4)均为行校验数据块,最后一行中的V(0)至V(6)均为对角校验数据块。表一中的诸如0:1,0:2这些数字对,表示的是该数据块参与了哪一个行校验和对角校验。例如0:1表示该数据块参与了H(0)和V(1),2:4表示该数据块参与了H(2)和V(4)。
HoVer编码的生成规则如下:
其三:Ri={di,j|0≤j≤n}定义为第i个行校验集合,其中0≤i≤r-1,例如表一的例子中,R0={d0,0,d0,1,d0,2,d0,3,d0,4,d0,5,d0,6,d0,7},表一的例子一共有5个行校验集合,依次可以表示为R0,R1,R2,R3以及R4。
其四:Cj={di,k∪V(j)|(i+k)mod(n-1+j)≡0}定义为第j个对角校验集合,其中0≤j≤n-1,例如表一的例子中,C0={d3,3,d2,4,d4,2,d1,5,d0,6,d5,0},表一的例子一共有7个行校验集合,依次可以表示为C0,C1,C2,C3,C4,C5以及C6。
需要说明的是,存储系统中包括n+1个磁盘,依次编号为磁盘0至磁盘n,本申请的方案通常是应用在磁盘0至磁盘n-1中的任意一个磁盘故障的场合,而当用于存放各个行校验数据块的磁盘n故障时,直接根据各个存活磁盘中的数据,通过异或运算重新得到磁盘n的数据即可,即用于存放各个行校验数据块的磁盘n故障时可以无需通过本申请的方案实现数据恢复。
对于任意一个原始数据块而言,都有其对应的唯一一个行校验集合和对角校验集合,例如d3,3对应R3和C0。对于任意一个行校验数据块而言,都有其对应的唯一一个行校验集合,对于任意一个对角校验数据块而言,都有其对应的唯一一个对角校验集合。此外需要指出的是,本申请便于描述,将原始数据块以及校验数据块统称为数据块。
因此,当发生单个磁盘故障的情况下,对于故障磁盘的任意一个原始数据块,可以通过该原始数据块对应的唯一一个行校验集合或者对角校验集合进行恢复,具体做法是读取所对应的校验集合中的存活块进行异或运算。而对于故障磁盘中的对角校验数据块而言,只能够通过对角校验集合进行恢复。
每个Ri和Cj之间,有且仅有一个重叠块,记做例如R2∩C3=d2,0。在发生了单个磁盘故障的情况时,故障磁盘所需要恢复的数据块的数量为r+1,其中的第0数据块至第r-1数据块为原始数据块,任一原始数据块都可以由其唯一对应的行校验集合或者对角校验集合进行恢复,而第r数据块为对角校验数据块,需要由其对应的对角校验集合进行恢复。
可参阅图2,图2为从行校验恢复故障磁盘数据的示意图。在图2中,假设是磁盘0发生了故障,图2中的同一直线上的元素参与箭头所指的故障元素的恢复,也就是说,d0,0,d1,0,d2,0,d3,0以及d0,4,分别由行校验集合R0,R1,R2,R3以及R4中的存活数据块进行异或得到。d0,5则由d0,5对应的对角校验集合C0中的存活数据块进行异或得到。
图3则为从对角校验恢复故障磁盘数据的示意图。例如d0,0由d0,0对应的对角校验集合C1中的存活数据块进行异或得到,即,d0,0由所有形状为“○”的数据块所构成的对角校验集合中的存活块异或得到。
由上述分析可知,如果如传统方案中,仅采用行校验进行故障磁盘的数据块的恢复,那么需要的磁盘读取操作数为nr,如果仅采用对角校验进行故障磁盘的数据块的恢复,那么需要的磁盘读取操作数为r(r+1),由于n-2=r,因此r(r+1)小于nr,即在传统方案中,仅利用对角校验进行故障磁盘数据块的恢复所需要的磁盘读取操作数,低于仅利用行校验进行故障磁盘数据块的恢复所需要的磁盘读取操作数。
本申请的方案中,考虑同时采用两种方式,以进一步地降低所需要的磁盘读取操作数,从而有效地降低单磁盘故障的数据恢复时间,提高RAID6存储系统的可靠性。
具体的,故障磁盘所需要恢复的数据块的数量为r+1,本申请假设其中的t个数据块是利用行校验集合恢复,那么,利用对角校验集合恢复的数据块的数量为r+1-t。并且因为每对Ri和Cj之间有且仅有一个重叠块,因此重叠块的个数为t(r+1-t)。
从行校验集合恢复一个数据块需要n次磁盘读取操作,从对角校验集合恢复一个数据块需要r次磁盘读取操作,因此,当t个数据块利用行校验集合恢复,r+1-t个数据块利用对角校验集合恢复,当遇到重叠块时不需要再从磁盘中读取而是直接从内存中读取,则这样的方案总的磁盘读取操作数可以表示为:
nt+(r+1-t)r-t(r+1-t)
将n=r+2代入上式,得到:
可以看出,当时,上式取得最小值,为/>也就是说,当发生了单个磁盘故障的情况时,本申请针对r+1个数据块中的/>个数据块,利用行校验集合进行恢复,剩余的(r+1)/2+1个数据块则利用对角校验集合进行恢复,可以使得磁盘读取操作数达到最小值,也就使得单磁盘故障的数据恢复时间达到最小值。
此外需要指出的是,对于故障数据块dr,K,只能利用对角校验集合进行恢复,dr,K中K的表示的是故障磁盘的编号,例如图2和图3中,K=0。
并且需要说明的是,本申请的方案中,利用存活数据块进行故障磁盘的修复,当某一个存活数据块是第一次使用时,需要从磁盘中读取,耗时较长,但如果是本次故障修复过程中的第二次使用,则是直接从内存中读取。即对于重叠块而言,本申请是直接从内存中读取,相较于从磁盘读取,从内存中读取的耗时非常低,甚至可以忽略,也就是说,单磁盘故障的数据恢复时间主要是由磁盘读取操作数决定的,只要磁盘读取操作数达到了最小值,便可以大幅降低单磁盘故障的数据恢复时间。
由上述分析可知,本申请的方案中,在确定出基于HoVer编码的存储系统发生了单个磁盘故障的情况之后,需要将个数据利用块行校验集合进行恢复,剩余的(r+1)/2+1个数据块利用对角校验集合进行恢复,从而使得磁盘读取操作数达到最小值。因此,本申请根据预设规则,从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块。
预设规则的具体方案可以根据实际需要进行设定,即具体是选哪些数据块作为这(r-1)/2个数据块利用块行校验集合进行恢复,可以根据实际需要进行设定,但需要注意需要使得故障数据块dr,K是利用对角校验集合进行恢复。
步骤S102:利用行校验集合进行第一类数据块中的各个数据块的修复。
步骤S103:利用对角校验集合进行第二类数据块中的各个数据块的修复,并且在进行任一数据块的修复时,当需要使用的数据块位于内存中时,从内存中进行该数据块的读取;
其中,r+1表示故障磁盘中的数据块的数量,存储系统中具有n+1个磁盘,且n-2=r,r为大于2的素数。
在步骤S101之后,即,在从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块之后,便可以利用行校验集合进行第一类数据块中的各个数据块的修复,利用对角校验集合进行第二类数据块中的各个数据块的修复。
并且需要说明的是,本申请的方案可以是先利用行校验集合进行第一类数据块中的各个数据块的修复,再利用对角校验集合进行第二类数据块中的各个数据块的修复。也可以是先利用对角校验集合进行第二类数据块中的各个数据块的修复,再利用行校验集合进行第一类数据块中的各个数据块的修复,只要是在遇到重叠快时,直接从内存中进行该重叠块的获取,便能够达到本申请的效果。
以先利用行校验集合进行第一类数据块中的各个数据块的修复为例,此时,可以将所需要的各个数据块,即,将需要的各个存活块从磁盘中读取到内存中,之后再利用对角校验集合进行第二类数据块中的各个数据块的修复时,当需要使用的数据块位于在内存中有时,便可以直接从内存中进行该数据块的读取,不必从磁盘中读取。当然,在利用对角校验集合进行第二类数据块中的各个数据块的修复的过程中,如果某一个需要使用的数据块在内存中没有,则自然需要从磁盘中进行该数据块的读取。
在本发明的一种具体实施方式中,步骤S101中描述的根据预设规则,从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块,可以具体包括:
步骤二:从种选取方式中,随机确定一种选取方式,并且按照该选取方式从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块;
由前文的分析可知,本申请的方案是从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块,并且故障数据块dr,K需要利用对角校验集合进行恢复,因此,理论上一共有种选取方式,不妨用序列{x0,x1...xi...xr-1,xr}表示,xi的数值为0时,表示数据块di,K从行校验集合恢复,即表示di,K是第一类数据块中的数据块。相应的,xi的数值为1时,表示数据块di,K从对角校验集合恢复,即表示di,K是第二类数据块中的数据块。而xr的值恒等于1,表示故障数据块dr,K需要利用对角校验集合进行恢复。
确定出了种选取方式,该种实施方式中,会随机确定一种选取方式,从而按照该选取方式从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块。具体的随机规则可以根据实际需要进行设定,例如,可以在确定出/>种选取方式中的一种时,便无需等待其他的选取方式的确定,直接执行后续步骤。
在本发明的一种具体实施方式中,步骤S101中描述的根据预设规则,从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块,可以包括:
将故障磁盘的第0数据块至第(r-3)/2数据块,作为第一类数据块,并且将故障磁盘中的第(r-1)/2数据块至第r数据块,作为第二类数据块;
其中,故障磁盘中具有r+1个数据块,且依次编号为故障磁盘的第0数据块至第r数据块。
该种实施方式中,考虑到故障数据块dr,K需要利用对角校验集合进行恢复,因此,直接将故障磁盘的第0数据块至第(r-3)/2数据块,作为第一类数据块,并且将故障磁盘中的第(r-1)/2数据块至第r数据块,作为第二类数据块,实施时也较为简单方便。
在本发明的一种具体实施方式中,步骤S101中描述的根据预设规则,从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块,可以具体包括:
第三个步骤:将最小方差值所对应的选取方式,作为选定的选取方式,并且按照这一选定的选取方式,从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块;
该种实施方式是实际应用中通常会采用的方式,这种方式有利于实现在数据恢复过程中的存活磁盘的负载均衡,从而避免单个磁盘负载过大导致的瓶颈问题。
例如表一的实施方式中,且磁盘0为故障磁盘时,在种选取方式中,当选取的是d0,0和d1,0作为第一类数据块时,第1磁盘至第6磁盘的读操作数依次为3,5,4,4,4,4。当选取的是d0,0和d2,0作为第一类数据块时,第1磁盘至第6磁盘的读操作数依次为3,5,4,4,5,3。可以看出,对于/>种选取方式而言,虽然不同的选取方式,磁盘读操作数的总数量的一致的,但是在不同的存活磁盘中的分布情况是不一致的,本申请将最小方差值所对应的选取方式,作为选定的选取方式,有利于实现在数据恢复过程中的存活磁盘的负载均衡,从而避免单个磁盘负载过大导致的瓶颈问题。
在实际应用中,按照预设规则,确定了第一类数据块和第二类数据块之后,便可以进行修复、例如可以先利用行校验集合进行第一类数据块中的各个数据块的修复,具体的,例如可以遍历{x0,x1...xi...xr-1,xr},当xi为0时,则从第i个行校验集合Ri中恢复该故障数据块,具体做法为通过对Ri中的所有存活块进行异或操作来恢复该故障数据块。
然后再利用对角校验集合进行第二类数据块中的各个数据块的修复,具体的,当xi为1时,确定出故障数据块di,K所对应的对角校验集合序号j,即找到恢复该xi所需要用到的Cj,然后通过对Cj中的所有存活块进行异或操作来恢复该故障数据块。并且在恢复过程中,如果需要使用的数据块是一个重叠块,则该重叠块在第二次使用时可以从内存中直接读取,即该重叠块第一次是被从磁盘中读取到了内存中,因此在第二次使用时,无需再次从磁盘中读取,可以直接从内存中进行读取。
在本发明的一种具体实施方式中,在利用对角校验集合进行第二类数据块中的各个数据块的修复之后,还可以包括:
输出故障修复完成的提示信息,以提示相关工作人员及时注意到故障被修复完成的这一情况。
应用本发明实施例所提供的技术方案,结合了行校验集合以及对角校验集合实现故障硬盘的数据块的修复,具体的,根据预设规则,从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块,利用行校验集合进行第一类数据块中的各个数据块的修复,利用对角校验集合进行第二类数据块中的各个数据块的修复;并且在进行任一数据块的修复时,当需要使用的数据块位于内存中时,从内存中进行该数据块的读取,因此,本申请的方案所需要的磁盘读取操作数为低于传统方案中仅采用行校验进行故障磁盘的数据块的恢复所需要的磁盘读取操作数nr,也低于传统方案中仅采用对角校验进行故障磁盘的数据块的恢复所需要的磁盘读取操作数r(r+1),由于本申请方案的磁盘读取操作数低,因此本申请的方案有效地降低了单磁盘故障的数据恢复时间,从而提高了存储系统的可靠性。
可参阅图4和图5,图4对本申请的方案和传统的数据恢复方法进行了比较,横坐标为有效数据磁盘的数量,纵坐标为数据恢复所需的磁盘读取操作数,可以看出,本申请的方案降低了所需的磁盘读取操作数,而且随着磁盘数量的增加,降低的幅度也随之增大。图5则定量分析了本申请的方案在磁盘读取上进行的性能改进,当数据磁盘数量从5到19变化时,磁盘读操作数量降低了8.3%~26.7%。
相应于上面的方法实施例,本发明实施例还提供了一种单磁盘故障的修复系统,可与上文相互对应参照。
参见图6所示,为本发明中一种单磁盘故障的修复系统的结构示意图,包括:
分类模块601,用于在确定出基于HoVer编码的存储系统发生了单个磁盘故障的情况之后,根据预设规则,从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块;
第一修复模块602,用于利用行校验集合进行第一类数据块中的各个数据块的修复;
第二修复模块603,用于利用对角校验集合进行第二类数据块中的各个数据块的修复;并且在进行任一数据块的修复时,当需要使用的数据块位于内存中时,从内存中进行该数据块的读取;
其中,r+1表示故障磁盘中的数据块的数量,存储系统中具有n+1个磁盘,且n-2=r,r为大于2的素数。
在本发明的一种具体实施方式中,分类模块601,具体用于:
在本发明的一种具体实施方式中,分类模块601,具体用于:
在确定出基于HoVer编码的存储系统发生了单个磁盘故障的情况之后,将故障磁盘的第0数据块至第(r-3)/2数据块,作为第一类数据块,并且将故障磁盘中的第(r-1)/2数据块至第r数据块,作为第二类数据块;
其中,故障磁盘中具有r+1个数据块,且依次编号为故障磁盘的第0数据块至第r数据块。
在本发明的一种具体实施方式中,分类模块601,具体用于:
将最小方差值所对应的选取方式,作为选定的选取方式,并且按照这一选定的选取方式,从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块;
在本发明的一种具体实施方式中,还包括:
提示信息输出模块,用于在第二修复模块利用对角校验集合进行第二类数据块中的各个数据块的修复之后,输出故障修复完成的提示信息。
相应于上面的方法和系统实施例,本发明实施例还提供了一种单磁盘故障的修复设备以及一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例中的单磁盘故障的修复方法的步骤。这里所说的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、磁盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
该单磁盘故障的修复设备可以包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序以时实现上述任一实施例中的单磁盘故障的修复方法的步骤。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (7)
1.一种单磁盘故障的修复方法,其特征在于,包括:
在确定出基于HoVer编码的存储系统发生了单个磁盘故障的情况之后,根据预设规则,从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将所述故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块;
利用行校验集合进行第一类数据块中的各个数据块的修复;
利用对角校验集合进行第二类数据块中的各个数据块的修复;并且在进行任一数据块的修复时,当需要使用的数据块位于内存中时,从内存中进行该数据块的读取;
其中,r+1表示所述故障磁盘中的数据块的数量,所述存储系统中具有n+1个磁盘,且n-2=r,r为大于2的素数;
所述根据预设规则,从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将所述故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块,包括:
将最小方差值所对应的选取方式,作为选定的选取方式,并且按照这一选定的选取方式,从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将所述故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块;
所述根据预设规则,从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将所述故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块,包括;
将故障磁盘的第0数据块至第(r-3)/2数据块,作为第一类数据块,并且将所述故障磁盘中的第(r-1)/2数据块至第r数据块,作为第二类数据块;
其中,所述故障磁盘中具有r+1个数据块,且依次编号为故障磁盘的第0数据块至第r数据块。
2.根据权利要求1所述的单磁盘故障的修复方法,其特征在于,所述根据预设规则,从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将所述故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块,包括:
从种选取方式中,随机确定一种选取方式,并且按照该选取方式从故障磁盘的r+1个数据块中选取出(r一1)/2个数据块作为第一类数据块,并且将所述故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块;
3.根据权利要求1所述的单磁盘故障的修复方法,其特征在于,在利用对角校验集合进行第二类数据块中的各个数据块的修复之后,还包括:
输出故障修复完成的提示信息。
4.一种单磁盘故障的修复系统,其特征在于,包括:
分类模块,用于在确定出基于HoVer编码的存储系统发生了单个磁盘故障的情况之后,根据预设规则,从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将所述故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块;
第一修复模块,用于利用行校验集合进行第一类数据块中的各个数据块的修复;
第二修复模块,用于利用对角校验集合进行第二类数据块中的各个数据块的修复;并且在进行任一数据块的修复时,当需要使用的数据块位于内存中时,从内存中进行该数据块的读取;
其中,r+1表示所述故障磁盘中的数据块的数量,所述存储系统中具有n+1个磁盘,且n-2=r,r为大于2的素数;
所述分类模块,具体用于:
将最小方差值所对应的选取方式,作为选定的选取方式,并且按照这一选定的选取方式,从故障磁盘的r+1个数据块中选取出(r-1)/2个数据块作为第一类数据块,并且将所述故障磁盘中剩余的(r+1)/2+1个数据块选作为第二类数据块;
将故障磁盘的第0数据块至第(r-3)/2数据块,作为第一类数据块,并且将所述故障磁盘中的第(r-1)/2数据块至第r数据块,作为第二类数据块;
其中,所述故障磁盘中具有r+1个数据块,且依次编号为故障磁盘的第0数据块至第r数据块。
5.根据权利要求4所述的单磁盘故障的修复系统,其特征在于,还包括:
提示信息输出模块,用于在所述第二修复模块利用对角校验集合进行第二类数据块中的各个数据块的修复之后,输出故障修复完成的提示信息。
6.一种单磁盘故障的修复设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至3任一项所述的单磁盘故障的修复方法的步骤。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述的单磁盘故障的修复方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011111485.3A CN112256478B (zh) | 2020-10-16 | 2020-10-16 | 一种单磁盘故障的修复方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011111485.3A CN112256478B (zh) | 2020-10-16 | 2020-10-16 | 一种单磁盘故障的修复方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112256478A CN112256478A (zh) | 2021-01-22 |
CN112256478B true CN112256478B (zh) | 2023-05-26 |
Family
ID=74244577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011111485.3A Active CN112256478B (zh) | 2020-10-16 | 2020-10-16 | 一种单磁盘故障的修复方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112256478B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113094213B (zh) * | 2021-05-07 | 2022-07-05 | 河北工业大学 | GPyramid-Code布局及该布局单盘故障的数据恢复与存储方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012792A (zh) * | 2010-11-02 | 2011-04-13 | 华中科技大学 | 一种快速重构的raid-6编码及重构方法 |
CN109358980A (zh) * | 2018-09-25 | 2019-02-19 | 华东交通大学 | 一种对数据更新和单磁盘错误修复友好的raid6编码方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103533A (zh) * | 2011-02-25 | 2011-06-22 | 华中科技大学 | 一种双盘容错磁盘阵列中单盘重构的方法 |
CN102419697B (zh) * | 2011-11-02 | 2013-12-18 | 华中科技大学 | 垂直raid-6编码中单盘重构的方法 |
CN103942112B (zh) * | 2013-01-22 | 2018-06-15 | 深圳市腾讯计算机系统有限公司 | 磁盘容错方法、装置及系统 |
CN105159618B (zh) * | 2015-09-25 | 2018-08-28 | 清华大学 | 用于单盘失效修复的优化方法及优化装置 |
CN111679793B (zh) * | 2020-06-16 | 2023-03-14 | 成都信息工程大学 | 一种基于star码的单盘故障快速恢复方法 |
-
2020
- 2020-10-16 CN CN202011111485.3A patent/CN112256478B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012792A (zh) * | 2010-11-02 | 2011-04-13 | 华中科技大学 | 一种快速重构的raid-6编码及重构方法 |
CN109358980A (zh) * | 2018-09-25 | 2019-02-19 | 华东交通大学 | 一种对数据更新和单磁盘错误修复友好的raid6编码方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112256478A (zh) | 2021-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10963341B2 (en) | Isolating the introduction of software defects in a dispersed storage network | |
US8522122B2 (en) | Correcting memory device and memory channel failures in the presence of known memory device failures | |
CN103577274B (zh) | 管理存储器阵列的方法和装置 | |
JP3587667B2 (ja) | 外部記憶サブシステムのパリティ記憶及びデータ修復方法 | |
US9195551B2 (en) | Enhanced storage of metadata utilizing improved error detection and correction in computer memory | |
WO2020047707A1 (zh) | 分布式存储系统的数据编码、解码及修复方法 | |
CN101719086B (zh) | 磁盘阵列容错处理方法和装置及容错系统 | |
CN101231891A (zh) | 差错控制的方法和存储器系统 | |
US20140089758A1 (en) | Method, apparatus and system for handling data faults | |
US10530862B2 (en) | Determining slices to rebuild from low-level failures | |
JPS60163138A (ja) | エラ−訂正方式 | |
US7350126B2 (en) | Method for constructing erasure correcting codes whose implementation requires only exclusive ORs | |
US7549112B2 (en) | Unique response for puncture drive media error | |
CN105808170B (zh) | 一种能够修复单磁盘错误的raid6编码方法 | |
US20180107544A1 (en) | Selecting a storage error abatement alternative in a dispersed storage network | |
CN108228382B (zh) | 一种针对evenodd码单盘故障的数据恢复方法 | |
CN109358980B (zh) | 一种对数据更新和单磁盘错误修复友好的raid6编码方法 | |
CN109086000A (zh) | 一种raid存储系统中的三容错数据布局方法 | |
US20060107091A1 (en) | System and method for recovery of data for a lost sector in a storage system | |
CN112256478B (zh) | 一种单磁盘故障的修复方法、系统、设备及存储介质 | |
Greenan et al. | Reliability of flat XOR-based erasure codes on heterogeneous devices | |
US6463563B1 (en) | Single symbol correction double symbol detection code employing a modular H-matrix | |
CN105027084B (zh) | 在移动通信系统中控制存储器的装置和方法 | |
US11928027B1 (en) | System and method for error checking and correction with metadata storage in a memory controller | |
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 |