一种能够快速恢复并实现负载均衡的x编码扩展方法

文档序号:10471021阅读:320来源:国知局
一种能够快速恢复并实现负载均衡的x编码扩展方法
【专利摘要】本发明涉及一种能够快速恢复并实现负载均衡的X编码扩展方法。该方法基于各类存储阵列系统中使用的X编码进行编码扩展,增加一个额外冗余设备,在保证可以容双盘出错的前提下,进一步减少单盘恢复所需的分块总数,并且减少单盘恢复的IO瓶颈,从而提高系统单盘恢复效率,缩短重构时间,并且实现系统的负载均衡,最终实现提升系统服务质量。针对原系统中的任意单个数据盘出错,能够减少系统恢复单盘所需的分片总数;针对原系统中的任意单个盘出错,能够破除原系统在单盘恢复过程中可能负载瓶颈,实现各个设备的负载均衡;通过使用二元异或和,减少新增冗余盘的更新开销,从而延长其的寿命。
【专利说明】
一种能够快速恢复并实现负载均衡的X编码扩展方法
技术领域
[0001]本发明适用于传统磁盘和以闪存固态存储技术为代表的新型非易失存储领域,提供了一种能够快速实现单盘恢复并降低负载瓶颈的X编码扩展方法,降低编码的更新开销提高系统的单盘恢复效率和可靠性。
【背景技术】
[0002]在现有的存储系统中,传统磁盘存储仍然凭借其超高的性价比和日益增大的单盘容量继续广泛应用于各类存储系统中。一方面,随着数据和存储系统规模的增大,数据可靠性面临着更加严峻的挑战。另一方面,现有高可靠性编码会带来极大的写更新代价,严重地制约系统性能。
[0003]相对于传统磁存储介质,以闪存(FlashMemory)技术为代表的非易失存储介质凭借其在体积、重量、功耗和读写性能上的显著优势已经掀起了存储领域的一场新兴变革,是构建高性能存储系统的必备选择。然而,以闪存为代表的新型非易失存储介质自身在介质可靠性方面存在较大缺陷,其寿命受限于一定的擦/写操作次数,制约着数据的可靠性。
[0004]为了构建高效可靠的存储系统,独立冗余磁盘阵列RAID(Redundant Arrays ofIndependent Disks)技术被广泛应用于各类存储介质的存储设备系统。根据构成存储设备的介质不同,存储阵列系统可以分为磁盘阵列和闪存阵列等。其核心是利用多个设备构建可以并行读写的跨存储设备条带和额外存储设备进行冗余编码技术来分别提高性能和系统可靠性。现在比较成熟的RAID技术包括RAID0,RAID1,RAID5,RAID6, RAIDlO, RAIDOl等,用户可以根据不同的应用需求来进行配置。总得来讲,RAID5,RAID6应用的相对比较广泛。但是就可靠性而言,由于RAID5只有一个校验盘,而RAID6有两个校验盘,所以在可靠性方面,RAID6更为可靠。从本质上而言,RAID6系统的可靠性是由其所使用的具体编码来决定的。
[0005]我们以基于X编码的RAID6(7块盘)为例,其条带由5X7的数据矩阵和2X7的校验矩阵构成,每五个数据块和两个校验块共同存储在一个不同的设备中。校验类型根据其构成方向可以分为对角线冗余和反对角线冗余,具体构造方式如图1。由于引入了冗余,为了保证数据的一致性,所以对原始数据块进行更新时,需要对其相关的两块校验块进行更新。
[0006]就存储系统而言,由于设备本身的不稳定性会导致一个或者多个存储设备的不可用。统计表明,单设备出错的概率高达90%以上,而双盘出错的概率则是8%左右,而三盘同时出错则小于1%。通常而言,可靠的存储系统一般需要容双盘出错。然而随着数据量的暴增,系统规模日益增大,存储系统可靠性面临更大挑战,急需更高可靠性的编码来保证数据的可用性。所以,为了实现高可靠的编码,本文针对可以容双盘出错的RAID6编码进行研究。
[0007]目前基于RAID6编码进行高可靠性扩展的相关研究。该研究是针对RDP编码进行高可靠性扩展,从而设计提出能够容忍三错的RTP编码。其在现有容双盘出错的RDP编码的基础上,新增一块额外的存储设备,用于构建第三类冗余,从而实现容忍三个设备同时出错。该方法通过构建第三类冗余盘,使得编码内部三类冗余相互独立,从数学上严密地保证了在三个设备同时出错情况下,系统能够完整恢复。
[0008]另外,还有研究通过类似的方法对EVEN0DD编码的进行高可靠性扩展,设计提出了能够容忍三盘出错的STAR编码,保障了系统在三盘出错情况下的可靠性。大体思想与前述扩展相似,都是利用新增设备构建第三类独立冗余,从而实现容错限度的提升。类似的编码还有基于Rotary编码进行扩展的Triple STAR编码等。
[0009]上述研究思想精妙,逻辑严密,且通用性较强,但是其一方面无法对大概率的单盘出错情况进行恢复加速,从而导致第三个校验盘使用浪费,另一方面引入了较大的更新开销,制约系统的性能,难以满足实际存储系统的应用需求。
[0010]另外,X编码本身具有最小的更新代价,然而并没有基于X编码进行高可靠性扩展的研究出现。

【发明内容】

[0011]本发明所要解决的技术问题是如何利用X编码进行编码扩展,实现高可靠性、低更新开销的新型编码,并将其应用于RAID系统中,通过增加一块额外的冗余设备,在保证可以容双盘出错的高可靠性前提下,进一步减少单盘恢复所需的分块总数,提高系统单盘恢复效率,缩短重构时间,从而间接提升系统的可靠性,并且实现系统的负载均衡,最终实现提升系统服务质量。
[0012]本发明的技术方案是:在现有X编码的基础上,首先对其进行调整和变换,将其从垂直编码变换为水平编码,然后在此基础上新增一块额外存储设备,在原有X编码的基础上为新增的冗余盘进行特定的编码,从而实现较少的更新开销和对单盘恢复的加速。其核心是利用特定的二元组对新增冗余盘进行编码来实现的。本发明既适用于以NAND闪存为代表的新型非易失存储系统,又可以适用于传统磁盘组成的存储系统。本发明的核心在于如何找到能够在性能、可靠性、更新开销、负载均衡等多个方面取得良好折中效果的冗余编码方法。经过分析和证明,本发明利用原系统中某些特定数据进行运算,得到符合特定条件的二元异或和实现对新增冗余的编码。
[0013]所以,本发明中对于新增额外冗余块的编码的关键在于如何对原X编码进行变换和如何找到合适的二元异或和。
[0014]具体技术方案为:
第一步,将原X编码的编码矩阵(如图1所示)进行修改,将其矩阵大小从P*P将为(P-1)*P,即多余元素进入下一次编码,并保留原X编码的冗余生成方式,即Diagonal冗余和Ant1-diagonal冗余,其Diagonal冗余和Ant1-diagonal冗余的放置形状为X型,如图2所示。定义两个数据结构,矩阵matrix大小为(p-1 )*p,存放存储阵列中的数据和冗余。Diagonal冗余放置于矩阵matrix中横坐标i=纵坐标j处,Ant1-diagonal冗余放置于矩阵matrix中横坐标i+纵坐标j=p处。另一数据结构为大小为ρ-l的数组H_parity,用于存放新增冗余。
[0015]第二步,初始化矩阵1]^1:1^1和!1_口31.;^}^;
第三步:对矩阵matrix进行赋值;
第四步:通过执行FindTuples来寻找符合条件的二元异或和;
第4.1步:初始化素数P,矩阵,并赋值;
第4.2步:令i=0,j=p-l-1 ; 第4.3步:判断i是否等于p-1,若是,贝Ij取出matrix[i][i]上的元素和matrix[i][ j]上的元素,并组成二元异或和,存放于!1_?&1';^7[;[],且^+1,回到第2.3步;否则结束第五步:利用符合条件的二元异或和对新增冗余盘进行编码:
第六步:利用编码后的新增冗余盘进行单盘恢复操作。
[0016]使用本发明能达到以下有益效果:
1、针对原系统中的任意单个数据盘出错,能够减少系统恢复单盘所需的分片总数;
2、针对原系统中的任意单个数据盘出错,能够破除原系统在单盘恢复过程中可能负载瓶颈,实现各个设备的负载均衡;
3、通过使用二元异或和,尽可能地在获得性能近似最优的情况下,减少新增冗余盘的更新开销,从而延长其的寿命。
[0017]实现本发明的开销很小,包括以下两点:
1、空间开销:为整个RAID6系统增加了一个额外的冗余盘,该盘的大小与原系统中的任意存储设备大小相同。由于单个设备相对廉价,而且有逐年下降的趋势,相对于整个存储系统的价格而言,仅增加单个冗余盘的空间开销是可以接受的。
[0018]2、时间开销:由于对额外冗余盘的编码只涉及到运算速度非常快的异或操作,而且找寻特殊二元异或和的算法也相对简单快速,而且该编码过程可以在原先X编码的过程中同时进行。另外由于新增的冗余编码不会降低原系统的可靠性,其运算可以等系统稳定之后在空闲时段进行。所以,本发明的时间开销也可以忽略不计。
【附图说明】
[0019]图1是本发明在新增冗余盘之前的X编码的编码示意图;
图2是本发明在对原X编码进行变换后的编码示意图;
图3是本发明搜索合适二元异或和的算法流程图;
图4是本发明利用特定二元异或和对新增冗余盘进行编码的示意图;
图5是本发明利用特定二元异或和对新增冗余盘进行编码后的单盘恢复操作示意图。
【具体实施方式】
[0020]附图均以六块数据盘的RAID6系统为例。图1是本发明在新增冗余盘之前的X编码示意图。图中共七块存储设备,每一块设备中均包含数据和冗余,其中数据用实心圆形表示,冗余可以分为对角线冗余和反对角线冗余两类,分别用正反三角形表示。单个对角线冗余的构造方式如图中实线箭头所示,为穿过该冗余的对角线方向的全部数据的异或和。反对角线的构造方式如图中虚线箭头所示。
[0021 ]图2是是本发明在对原X编码进行变换后的编码不意图。
[0022]图3是本发明搜索合适二元异或和的算法流程图。具体的执行过程为:
第一步:初始化素数P,矩阵,并赋值;
第二步:令i=0,j=p-l-1 ;
第三步:判断i是否等于p-1,若是,贝丨』取出matrix[i][i]上的元素和matrix[i][j]上的元素,并组成二元异或和,存放于!1_?&1';^7[;[],且^+1,回到第2.3步;否则结束
图4是本发明在使用上述算法找到符合条件的二元异或和之后,利用特定二元异或和对新增冗余盘进行编码的示意图(以7块存储设备的RAID6为例)。原由七块存储设备盘组成的RAID6系统中,其校验数据占2/7,通过增加一个新的冗余盘h后,变成了八个设备组成的系统,其校验数据占3/8,可靠性仍然为可以容忍任意两个盘出错。如图所示,新增了六个冗余,分别是al+gO,bl+gl,c2+g2,d3+g3,e4+g4,f 5+g5。当任意一个原设备出错后,首先确定X盘中含有出错盘数据的所有二元异或和,然后根据最大重叠原理选择其他对角线和反对角线冗余中的对应冗余块进行恢复。
[0023]图5是本发明利用特定二元异或和对新增冗余盘进行编码后的单盘恢复操作示意图。如第一个数据盘失效,即需要恢复a0,al,a2,a3,a4,a5,首先确定新增冗余盘中含有失效盘中元素的二元异或和a0,可以用新增冗余盘中对应的新增冗余aO+gO进行恢复,由于新增冗余盘中的二元异或和是特定的,根据最大重叠原理,必须选择分别含有g0的对角线冗余f5和反对角线冗余a5,同时al,a2,a3和a4的恢复则根据最大重叠原理形成2D2A(两对角两反对角)进行恢复,这样产生一个确定的重复序列。
[0024]对于本发明的情况,经过新增一个特定的冗余盘之后,虽然增加了重构所涉及的设备数目,但是减少了重构所需的数据总量,节约了一部分数据块,使得重构时间缩短。
[0025]由此可以看出,本发明能根据利用新增的冗余盘,减少任意单个数据盘出错后重构所需的数据总量,达到了加快单盘恢复的效果。另外,通过分析发现,同样设备数目的系统中,本发明相比于RTP、STAR等编码的系统,其更新开销相对较低。
【主权项】
1.一种能够快速恢复并实现负载均衡的X编码扩展方法,基于各类存储阵列系统中使用的X编码进行编码扩展,增加一个额外冗余设备,在保证可以容双盘出错的前提下,进一步减少单盘恢复所需的分块总数,并且减少单盘恢复的1瓶颈,其特征在于,增加一个存储设备来作为额外冗余盘,并在原有X编码的基础上为新增的冗余盘进行编码,以减少原系统中任意一个设备发生故障进行重构时所需分块总数的同时均衡负载,缓解系统恢复的1瓶颈,充分利用系统并行性,具体步骤为: 第一步,将原X编码的编码矩阵进行修改,将其矩阵大小从P*P将为(P-1)*P,即多余元素进入下一次编码,并保留原X编码的冗余生成方式,即Diagonal冗余和Ant1-diagonal冗余,其Diagonal冗余和Ant1-diagonal冗余的放置形状为X型,定义两个数据结构,矩阵matrix大小为(p-1 )*p,存放存储阵列中的数据和冗余,Diagonal冗余放置于矩阵matrix中横坐标i=纵坐标j处,Ant1-diagonal冗余放置于矩阵matrix中横坐标i+纵坐标j=p处,另一数据结构为大小为P-1的数组H_par i ty,用于存放新增冗余; 第二步,初始化矩阵; 第三步:对矩阵matrix进行赋值; 第四步:通过执行FindTuples来寻找符合条件的二元异或和; 第五步:利用符合条件的二元异或和对新增冗余盘进行编码: 第六步:利用编码后的新增冗余盘进行单盘恢复操作。2.根据权利要求1所述的一种能够快速恢复并实现负载均衡的X编码扩展方法,其特征在于,所述第四步寻找符合条件的二元异或和的算法流程为: 第2.1步:初始化素数P,矩阵,并赋值; 第2.2步:令i=0,j=p-l-1 ; 第2.3步:判断i是否等于p-1,若是,则取出matrix[i][i]上的元素和matrix[i] [ j]上的元素,并组成二元异或和,存放于!1_?&1';^7[;[],且^+1,回到第2.3步;否则结束。3.根据权利要求1所述的一种能够快速恢复并实现负载均衡的X编码扩展方法,其特征在于,所述第五步具体过程为: 由七个存储设备组成阵列存储系统,其校验占比数据比例为2/7,通过增加一个新冗余盘后,变成了八个设备组成的系统,其校验数据占3/8,可靠性为容忍任意两个整设备盘出错,在新增冗余盘中,其编码唯一,新增六个冗余,分别是aO+gO, bl+gl, c2+g2, d3+g3,e4+g4, f5+g5,当任意一个存储设备出错后,首先确定新的冗余盘中含有出错盘数据的所有二元异或和,然后根据最大重叠原理选择其他对应冗余块进行恢复。4.根据权利要求1所述的一种能够快速恢复并实现负载均衡的X编码扩展方法,其特征在于,所述第六步对新增冗余盘进行编码后的单盘恢复操作,具体过程为: 如第一个数据盘失效,即需要恢复a0,al,a2,a3,a4,a5,首先确定新增冗余盘中含有失效盘中元素的二元异或和a0,可以用新增冗余盘中对应的新增冗余aO+gO进行恢复,由于新增冗余盘中的二元异或和是特定的,根据最大重叠原理,必须选择分别含有g0的对角线冗余f5和反对角线冗余a5,同时al,a2,a3和a4的恢复则根据最大重叠原理形成2D2A,两对角两反对角,进行恢复,这样产生一个确定的重复序列。
【文档编号】G06F11/20GK105824725SQ201610135197
【公开日】2016年8月3日
【申请日】2016年3月10日
【发明人】肖侬, 邓明翥, 陈志广, 刘芳
【申请人】中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1