一种混合磁盘阵列及其延迟写入校验方法和数据恢复方法

文档序号:6511786阅读:266来源:国知局
一种混合磁盘阵列及其延迟写入校验方法和数据恢复方法
【专利摘要】本发明属于计算机存储【技术领域】,具体涉及一种混合磁盘阵列及其延迟写入校验方法和数据恢复方法。混合磁盘阵列,由机械硬盘、固态硬盘和存储控制器构成,固态硬盘和机械硬盘之间采用系统总线相连,系统将固态硬盘和机械硬盘统一映射为逻辑设备,通过相同的接口进行访问,架构方式采用RAID5和RAID6。本发明的混合磁盘阵列,使得存储系统的成本接近于机械硬盘组成的阵列,而性能接近于固态硬盘组成的阵列,容量更大、性能更高、可靠性更强、成本更低;一种混合磁盘阵列的延迟写入校验的方法和数据恢复方法,减轻了固态硬盘的损耗,延长了固态硬盘的使用寿命;能够及时有效的恢复出错的数据,并且不会增加额外的开销。
【专利说明】一种混合磁盘阵列及其延迟写入校验方法和数据恢复方法
【技术领域】
[0001]本发明属于计算机存储【技术领域】,具体涉及一种混合磁盘阵列及其延迟写入校验方法和数据恢复方法。
【背景技术】
[0002]随着闪存价格的下降,基于NAND闪存的固态硬盘逐渐的应用于存储系统。而单个固态硬盘并不能满足现代企业存储系统的大容量,高性能,可靠性和低成本的要求。廉价磁盘冗余阵列(RAID)是比较理想的选择。然而,基于固态硬盘的磁盘阵列,具有以下两方面的缺点:
[0003]1.由于目前固态硬盘的价格是机械硬盘的10倍左右,构建基于固态硬盘的磁盘阵列,其成本非常高。
[0004]2.固态硬盘是基于闪存,每个存储块都有擦除的上限值,如果超过这个上限值,这个块就不能够使用。无论是RAID4,RAID5还是RAID6,数据块的更新都会引起条带上校验块的更新。例如,对于由5个磁盘组成的RAID5阵列,校验块的更新次数是其它数据块更新次数的4倍。校验数据的频繁更新,不仅降低了磁盘阵列的性能,而且缩短了固态硬盘的使用时间。
[0005]目前基于混合存储阵列的研究并不多,其中一种混合磁盘架构是由两种磁盘阵列组成,分别是由机械硬盘组成的阵列和由固态硬盘组成的阵列。数据在两种磁盘阵列之间迁移。其基本思想是将只读数据(Read-Only)存储在固态硬盘组成的阵列,只写数据(Write-Only)存储在由机械硬盘组成的阵列,对于读写数据(Read-Write),根据性能,能量和可靠性等因素决定存储于哪种阵列。但其缺点是很显然的,两个磁盘阵列的成本非常高。另一种存储架构由两部分组成,一部分是由多个固态硬盘和I个机械硬盘组成RAID4,另一部分是由机械硬盘的剩余空间和另一个机械硬盘构建RAID1。这种架构提高了随机写的性能和降低了固态硬盘的损耗。其缺点是组成RAID4的校验盘,很可能成为系统瓶颈,另夕卜,HPDA的成本也非常高。

【发明内容】

[0006]本发明的目的在于提供一种用于满足现代存储系统的大容量,高性能,可靠性和低成本的要求,减少固态硬盘的擦除次数,延长固态硬盘的寿命的混合磁盘阵列,本发明的目的还在于提供一种混合磁盘阵列延迟写入校验方法和数据恢复方法。
[0007]本发明的目的是这样实现的:
[0008]混合磁盘阵列,由机械硬盘、固态硬盘和存储控制器构成,固态硬盘和机械硬盘之间采用系统总线相连,系统将固态硬盘和机械硬盘统一映射为逻辑设备,通过相同的接口进行访问,架构方式采用RAID5和RAID6。
[0009]混合磁盘阵列的延迟写入校验方法:
[0010](I)生成部分校验块和恢复相关块;[0011](2)判断非易失性存储器P-Cache存储空间:如果非易失性存储器有足够的存储空间则执行步骤(3),如果非易失性存储器没有足够的存储空间则执行步骤(4);
[0012](3)检测非易失性存储器中存储的部分校验块:
[0013]I)非易失性存储器中没有部分校验块和恢复相关块时,添加新的部分校验块和恢复相关块;
[0014]2)非易失性存储器中存储了部分校验块,但部分校验块的组成部分不包含数据块时,更新部分校验块,新的部分校验块由旧的部分校验块和新的数据块异或得到,新的恢复相关块由旧的恢复相关块和原数据块异或得到;
[0015]3)非易失性存储器中存储了部分校验块,并且部分校验块的组成部分包含数据块时,新的部分校验块由旧的部分校验块,原数据块和新的数据块异或得到,新的恢复相关块和原来相同;
[0016](4)替换非易失性存储器中的部分校验块和恢复相关块,计算新的校验值,并写入固态硬盘。
[0017]混合磁盘阵列为基于双校验信息的混合RAID6阵列。
[0018]混合磁盘阵列的数据恢复方法,当机械硬盘或固态硬盘数据出错时,判断校验块存储位置,存储在机械硬盘时,由机械硬盘上的校验块和其它磁盘上的数据进行恢复;存储在固态硬盘时,则由固态硬盘上的校验块和其它磁盘上的数据块恢复;当校验块存储在非易失性存储器时,如果部分校验块关联出错的数据块,由部分校验块来恢复出错的数据块;如果部分校验块没有关联出错的数据块,出错的数据块由原校验块和恢复相关块来恢复。
[0019]本发明的有益效果在于:
[0020]本发明由大量的机械硬盘和少量固态硬盘组成的混合磁盘阵列,使得存储系统的成本接近于机械硬盘组成的阵列,而性能接近于固态硬盘组成的阵列,容量更大、性能更高、可靠性更强、成本更低;一种混合磁盘阵列的延迟写入校验的方法,减轻了固态硬盘的损耗,延长了固态硬盘的使用寿命;一种混合磁盘阵列的数据恢复方法,能够及时有效的恢复出错的数据,并且不会增加额外的开销。
【专利附图】

【附图说明】
[0021]图1为系统整体架构图;
[0022]图2为非易失性存储器结构图;
[0023]图3为部分校验块和恢复相关块生成过程图;
[0024]图4为部分校验块和恢复相关块的生成实例图;
[0025]图5为数据恢复流程图;
[0026]图6 Ca)为部分校验块关联出错的数据块的实例图;
[0027]图6 (b)为部分校验块不关联出错的数据块的实例图。
【具体实施方式】
[0028]下面结合附图对本发明做进一步描述。
[0029]一种由机械硬盘和固态硬盘构成的混合磁盘阵列,包括多块机械硬盘、多块固态硬盘和一块存储控制器;固态硬盘和机械硬盘之间采用系统总线相联,操作系统将固态硬盘和机械硬盘统一映射为逻辑设备,通过相同的接口进行访问。
[0030]其架构方式可以采用RAID5和RAID6。
[0031]一种混合磁盘阵列的延迟写入校验方法,在更新数据时,首先将计算部分校验块和恢复相关块,写入非易失性存储器。只有当非易失性存储器没有空间时,才计算新的校验块,写入固态硬盘。
[0032]包括如下步骤:
[0033]( I)生成部分校验块和恢复相关块;
[0034](2)判断非易失性存储器存储空间大小,如果非易失性存储器有足够的存储空间则检测非易失性存储器中存储的部分校验块。
[0035]判断非易失性存储器存储空间大小,如果非易失性存储器有足够的存储空间则检测非易失性存储器中存储的部分校验块,包括:
[0036]I)非易失性存储器中没有部分校验块和恢复相关块时,添加新的部分校验块和恢复相关块;
[0037]2)非易失性存储器中存储了部分校验块,但部分校验块的组成部分不包含数据块时,更新部分校验块,新的部分校验块由旧的部分校验块和新的数据块异或得到,新的恢复相关块由旧的恢复相关块和原数据块异或得到;
[0038]3)非易失性存储器中存储了部分校验块,并且部分校验块的组成部分包含数据块时,新的部分校验块由旧的部分校验块、原数据块和新的数据块异或得到,新的恢复相关块和原来相同;
[0039]还包括:
[0040]若非易失性存储器没有存储空间,则替换非易失性存储器中的部分校验块和恢复相关块,计算新的校验值,并写入固态硬盘。
[0041]一种混合磁盘阵列的数据恢复方法,包括:
[0042]当机械硬盘或固态硬盘数据出错时,判断校验块是否存储在机械硬盘,如果是,则由机械硬盘上的校验块和其它磁盘上的数据进行恢复。
[0043]还包括:
[0044]当校验块存储在固态硬盘上,则由固态硬盘上的校验块和其它磁盘上的数据块恢复。
[0045]还包括:
[0046]当校验块存储在非易失性存储器,恢复策略如下:
[0047]则恢复策略如下:
[0048]I)如果部分校验块关联出错的数据块,由部分校验块来恢复出错的数据块。
[0049]2)如果部分校验块没有关联出错的数据块,出错的数据块由原校验块和恢复相关块来恢复。
[0050]针对机械硬盘(HDD)和固态硬盘(SSD)组成的混合磁盘的RAID5阵列(简称HRAID5),提出了一种延迟写入校验和的数据恢复方案。其主要思想是增加部分校验块(Partial Parity Block)和恢复相关块(Recovery-Related Block),存储在非易失性存储器(P-Cache),如PRAM和MRAM等。当P-Cache没有空间时,对被替换出的块,计算新的校验值,并将新的校验值写入固态硬盘。当数据发生错误时,利用恢复相关块来恢复出错的数据。这种针对混合磁盘阵列设计的延迟写入校验和数据恢复策略,一方面提高了混合磁盘阵列的性能和延缓固态硬盘的损耗。另一方面,保证了数据的可靠性。
[0051]针对混合磁盘阵列的延迟写入校验方案,对于固态硬盘校验块的更新,并不立即计算新的校验块,而是生成部分校验块和恢复相关块,并存储在非易失性存储器P-Cache。当P-Cache没有空间时,对被替换出的块,计算新的校验值,并写入固态硬盘。这种策略称为延迟写入。当数据块Di更新为D' i,对应的条带号为S」。部分校验块和恢复相关块的生成可分为以下三种情形:
[0052](I)当P-Cache没有存储部分校验块和恢复相关块时,在P-Cache添加新的部分校验块和恢复相关块。此时部分校验块等于新的数据块IV i,恢复相关块等于原数据块Di。
[0053](2)当P-Cache存储了部分校验块,但部分校验块的组成部分不包含数据块Di,即部分校验块不关联数据块Di。此时新的部分校验块由旧的部分校验块和新的数据块D' i异或得到,新的恢复相关块由旧的恢复相关块和原数据块Di异或得到。
[0054](3)当P-Cache存储了部分校验块,并且部分校验块的组成部分包含数据块Di,即部分校验块和数据块Di相关联,此时新的部分校验块由旧的部分校验块,原数据块Di和新的数据块D' i异或得到,新的恢复相关块和原来相同。
[0055]在这里,采用延迟写入校验是为了减少读和计算开销。P-Cache的作用是减少固态硬盘的写次数。
[0056]针对混合磁盘阵列的数据恢复方案,如果固态硬盘数据块出错,由机械硬盘上的校验块和其它磁盘上的数据块来恢复,这是由于机械硬盘存储了最新的校验信息。如果机械硬盘上的数据块出错,可分为两类--第一,如果校验块存储在机械硬盘,按照传统RAID5恢复策略恢复。第二,如果校验块存储在固态硬盘,恢复策略分为两种情形: [0057](I)如果部分校验块关联出错的数据块,可由原校验块和部分校验块来恢复出错的数据块。
[0058](2)如果部分校验块没有关联出错的数据块,出错的数据块可由原校验块和恢复相关块来恢复。
[0059]延迟写入校验方案,可扩展到基于双校验信息的混合RAID6阵列。
[0060]1.主要思想
[0061]混合磁盘阵列(HRAID5)由大量的机械硬盘和少量的固态硬盘构成。当需要将校验信息更新到固态硬盘时,采用延迟写入校验的方案,生成部分校验块和恢复相关块,并存储在P-Cache。当P-Cache没有空间时,计算新的校验块,写入固态硬盘。当数据出错时,数据恢复方案利用部分校验块和恢复相关块来恢复出错的数据块。
[0062]2.具体描述
[0063]HRAID5主要实现两个策略:部分校验块和恢复相关块的生成策略和数据恢复策略。
[0064]如图1所示,给出了混合磁盘阵列的架构图。混合磁盘阵列是由大量机械硬盘、少量固态硬盘和阵列控制器构成。其容量大小为所有机械硬盘和固态硬盘的容量之和。操作系统将机械硬盘和固态硬盘映射为统一的逻辑设备,每个逻辑设备由多个存储块组成,每个存储块由多个存储页面构成,存储页面的大小为2KB或者是4KB。混合磁盘阵列的构建可以是 RAID5 或 RAID6。[0065]如图2所示,该图是非易失性存储器的结构。其中Stripe指的是磁盘阵列的条带号,PPB和RRB分别指部分校验块和恢复相关块。BP指和部分校验块关联的位图信息。BR指和恢复相关块关联的位图信息。例如,如果有3个机械硬盘和I个固态硬盘组成的HRAID5,条带Sj的BP为011,即表示部分校验块PPB关联的数据块为{D3j+1,D3J+2}。非易失性存储器的空间开销为N(log2N+2K+2*(M-l))。其中,N表示条带的个数,K表示数据块的位宽,M表示磁盘的个数。只有当固态硬盘上的校验信息需要被更新时,才将部分校验写入非易失性存储器。因此,其开销非常小。
[0066]延迟写入校验方法在更新数据时,首先将计算部分校验块和恢复相关块,写入非易失性存储器。只有当非易失性存储器没有空间时,才计算新的校验块,写入固态硬盘。
[0067]如图3,混合磁盘阵列的部分校验块和恢复相关块生成方法如下:
[0068]当数据块A更新为B,对应的条带号为S」。部分校验块和恢复相关块的生成可分为以下三种情形:
[0069]I)当非易失性存储器没有存储部分校验块和恢复相关块时,那么在非易失性存储器中添加新的部分校验块和恢复相关块。部分校验块等于B,恢复相关块等于A。需要执行一次读操作。
[0070]2)当非易失性存储器中存储了部分校验块,但是部分校验块不关联数据块A,此时新的部分校验块由旧的部分校验块和B异或得到,新的恢复相关块由旧的恢复相关块和A异或得到。需要一次读操作。
[0071]3)当非易失性存储器中 存储了部分校验块,并且部分校验块和数据块A相关联,此时新的部分校验块由旧的部分校验块,A和B异或得到,新的恢复相关块则和原来相同。需要一次读操作。
[0072]实施例1:
[0073]图4给出了部分校验块和恢复相关块生成实例。混合磁盘阵列由3个机械硬盘和I个固态硬盘组成的RAID-5。当数据块由Dtl更新为D’ ^时,此时非易失性存储器为空,符合情形I。则新的部分校验块可表示为P ^ = D' C1,新的恢复相关块可表示为K =A1。当数据块D1更新为D' 1时,此时,非易失性存储器存储了部分校验块,但是部分校验块不关联数据块D1,所以新的部分校验块为片=Dn?D[,恢复相关块为G=AΦA。当数据块D’ ^更新为D"。时,此时非易失性存储器存储了部分校验并且关联数据块,所以新的部分校验块可表示为P0 = P0 0DO Φ4,而新的恢复相关块不改变。
[0074]如图5,混合磁盘阵列的数据恢复方法如下:
[0075](I)当机械硬盘或固态硬盘数据出错时并且校验块存储在机械硬盘,则由机械硬盘上的校验块和其它磁盘上的数据块进行恢复。
[0076](2)当校验块存储在固态硬盘上,则由固态硬盘上的校验块和其它磁盘上的数据块恢复。
[0077](3)当校验块存储在非易失性存储器,恢复策略如下:
[0078]I)如果部分校验块关联出错的数据块,由部分校验块来恢复出错的数据块;
[0079]2)如果部分校验块没有关联出错的数据块,出错的数据块由原校验块和恢复相关块来恢复。
[0080]实施例2:[0081]如图6,该图给出了混合磁盘阵列的数据恢复实例,具体描述如下:
[0082]I)如果部分校验块关联出错的数据块,由部分校验块来恢复出错的数据块。如图6 (a)所示,出错的数据块由恢复。
[0083]2)如果部分校验块没有关联出错的数据块,出错的数据块由原校验块和恢复相关块来恢复。如图6 (b)所示,出错的数据块仏可由A=忍Φ片恢复。
[0084]以上对本发明实施所提供的一种混合磁盘阵列及延迟写入校验、恢复方法进行了详细的阐述,本文应用了具体的实例对本发明的原理进行了描述,以上实例只是用于帮助理解本发明的方法及核 心思想,同时,可依据本发明的思想,在具体实施和应用范围进行改变。
【权利要求】
1.一种混合磁盘阵列,其特征在于:由机械硬盘、固态硬盘和存储控制器构成,固态硬盘和机械硬盘之间采用系统总线相连,系统将固态硬盘和机械硬盘统一映射为逻辑设备,通过相同的接口进行访问,架构方式采用RAID5和RAID6。
2.一种混合磁盘阵列的延迟写入校验方法,其特征在于: (O生成部分校验块和恢复相关块; (2)判断非易失性存储器P-Cache存储空间:如果非易失性存储器有足够的存储空间则执行步骤(3),如果非易失性存储器没有足够的存储空间则执行步骤(4); (3)检测非易失性存储器中存储的部分校验块: 1)非易失性存储器中没有部分校验块和恢复相关块时,添加新的部分校验块和恢复相关块; 2)非易失性存储器中存储了部分校验块,但部分校验块的组成部分不包含数据块时,更新部分校验块,新的部分校验块由旧的部分校验块和新的数据块异或得到,新的恢复相关块由旧的恢复相关块和原数据块异或得到; 3)非易失性存储器中存储了部分校验块,并且部分校验块的组成部分包含数据块时,新的部分校验块由旧的部分校验块,原数据块和新的数据块异或得到,新的恢复相关块和原来相同; (4)替换非易失性存储器中的部分校验块和恢复相关块,计算新的校验值,并写入固态硬盘。
3.根据权利要求2所述的一种混合磁盘阵列的延迟写入校验方法,其特征在于:所述的混合磁盘阵列为基于双校验信息的混合RAID6阵列。
4.一种混合磁盘阵列的数据恢复方法,其特征在于:当机械硬盘或固态硬盘数据出错时,判断校验块存储位置,存储在机械硬盘时,由机械硬盘上的校验块和其它磁盘上的数据进行恢复;存储在固态硬盘时,则由固态硬盘上的校验块和其它磁盘上的数据块恢复;当校验块存储在非易失性存储器时,如果部分校验块关联出错的数据块,由部分校验块来恢复出错的数据块;如果部分校验块没有关联出错的数据块,出错的数据块由原校验块和恢复相关块来恢复。
【文档编号】G06F11/14GK103488432SQ201310421376
【公开日】2014年1月1日 申请日期:2013年9月16日 优先权日:2013年9月16日
【发明者】姚念民, 陈金忠, 于海涛 申请人:哈尔滨工程大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1