固态硬盘中实现独立磁盘冗余阵列的方法及装置的制作方法

文档序号:6385370阅读:339来源:国知局
专利名称:固态硬盘中实现独立磁盘冗余阵列的方法及装置的制作方法
技术领域
本发明涉及存储技木,尤其涉及ー种固态硬盘中实现独立磁盘冗余阵列的方法及装置。
背景技术
固态硬盘(Solid-StateDrive, SSD)相对于传统硬盘(Hard disk drive,HDD)具备低耗电、稳定性高及耐低温等优点。闪存(Nand Flash)颗粒作为SSD的存储介质,其价格/成本直接反映了 SSD的价格/成本。各大厂家在エ艺制程上进行激烈的竞赛以提高单颗粒的存储容量,当前制程已步入IXnm时代。但是,容量显著提高的同时,单颗粒的可靠性却在逐渐下降。ー个SSD由多个闪存颗粒构成,ー个闪存颗粒由多个数据块(Block)构成,一个数据块由多个页面(page)构成。独立磁盘冗余阵列(RedundantArray of IndependentDisks, RAID)技木,是ー种把多块独立的物理硬盘按某种方式组合起来形成ー个硬盘组,即逻辑硬盘,从而提供比单个硬盘更高存储性能和数据冗余可靠性的技木。现有技术中,SSD内部一般以页面为单位进行读写,以数据块为单位进行擦除,在不同数据块之间构建RAID,即将不同闪存颗粒中相同数据块号的数据块进行绑定,形成一个数据块组(Block Group)。在ー个数据块组内,以页面为单位将数据块组切割成ー个个条带(strip),姆个条带跨越各数据块,并在SSD盘片内设置ー个数据缓冲区(buffer),用于缓冲一个条带的数据。具有自动计算校验数据功能的闪存控制器(Nand FlashControl,NFC)根据缓冲的数据计算校验数据并直接写入到校验页面上。当该条带中某ー个页面出现数据失效时,通过读取该条带中其他页面的数据来恢复该失效页面的数据。然而,现有的实现RAID的方法恢复失效数据仅能用一个条带中其他各页面的正常数据来恢复ー个数据失效页面,该实现RAID的方式和适用场景比较单一,并不能根据各种应用场景的需求进行灵活的调整。

发明内容
本发明提供ー种固态硬盘中实现独立磁盘冗余阵列的方法及装置,以解决现有的RAID的方法恢复失效数据的方式比较单一,且不能根据各种应用场景的需求进行灵活的调整的问题。第一个方面,本发明实施例提供ー种固态硬盘中实现独立磁盘冗余阵列的方法,包括将每个数据块中的至少两个连续页面绑定为竖向校验条带;向所述竖向校验条带的各页面中顺序写入数据,并将所述竖向校验条带中的最后一个页面作为所述竖向校验条带的校验页面。在第一个方面的第一种可能的实现方式中,该方法还包括将所述每个数据块相同位置的页面绑定为横向校验条带,并将所述横向校验条带中的任意一个页面作为所述横向校验条带的校验页面。结合第一个方面的第一种可能的实现方式,在第二种可能的实现方式中,该方法还包括当识别到所述横向校验条带中的至少两个页面失效时,分别根据各失效页面所在的所述竖向校验条带中其它页面的数据对失效页面进行数据恢复;当识别到所述竖向校验条带中的至少两个页面失效时,分别根据各失效页面所在的所述横向校验条带中其它页面的数据对失效页面进行数据恢复。在第一个方面的第三种可能的实现方式中,将每个数据块中的至少两个连续页面绑定为竖向校验条带包括将每个数据块中的所有页面绑定为ー个竖向校验条带;或者,将每个数据块中的所有页面均分为至少两个条帯,将所述至少两个条带中的每个条带的各页面绑定为ー个竖向校验条帯。结合第一个方面的第二种可能的实现方式,在第四种可能的实现方式中,所述将所述每个数据块相同位置的页面绑定为横向校验条带包括将所述每个数据块相同位置的非损坏页面绑定为横向校验条帯。第二个方面,本发明实施例提供ー种固态硬盘中实现独立磁盘冗余阵列的装置,包括第一绑定模块,用于将每个数据块中的至少两个连续页面绑定为竖向校验条带;写入模块,用于向所述竖向校验条带的各页面中顺序写入数据,并将所述竖向校验条带中的最后ー个页面作为所述竖向校验条带的校验页面。在第二个方面的第一种可能的实现方式中,该装置还包括第二绑定模块,用于将所述每个数据块相同位置的页面绑定为横向校验条带,并将所述横向校验条带中的任意一个页面作为所述横向校验条带的校验页面。结合第二个方面的第一种可能的实现方式,在第二种可能的实现方式中,该装置还包括校验模块,用于当识别到所述横向校验条带中的至少两个页面失效时,分别根据各失效页面所在的所述竖向校验条带中其它页面的数据对失效页面进行数据恢复;当识别到所述竖向校验条带中的至少两个页面失效时,分别根据各失效页面所在的所述横向校验条带中其它页面的数据对失效页面进行数据恢复。在第二个方面的第三种可能的实现方式中,所述第一绑定模块具体用于将每个数据块中的所有页面绑定为ー个竖向校验条带;或者,将每个数据块中的所有页面均分为至少两个条帯,将所述至少两个条带中的每个条带的各页面绑定为ー个竖向校验条帯。结合第二个方面的第二种可能的实现方式,在第四种可能的实现方式中,所述第ニ绑定模块,还用干将所述每个数据块相同位置的非损坏页面绑定为横向校验条带,并将所述横向校验条带中的任意一个页面作为所述横向校验条带的校验页面。本发明实施例提供的固态硬盘中实现独立磁盘冗余阵列的方法及装置,通过将每个数据块中的至少两个连续页面绑定为竖向校验条带,以页面为单位对竖向校验条带中的各个页面顺序写入数据,并将每ー竖向校验条带的最后ー个页面作为校验页面,当竖向校验条带中某一数据页面失效的时候,读取竖向校验条带中其他数据页面和校验页面的数据来恢复失效页面的数据。本发明实施例提供的实现RAID的方法,在数据块内构建竖向校验条带以写入数据,并可以根据各种应用场景的需求灵活的调整竖向校验条带的构建方式,数据恢复快,可靠性高。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作ー简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例一提供的SSD中实现RAID的方法流程图;图2为本发明实施例ニ提供的SSD中实现RAID的方法中的数据恢复示意图;图3为本发明实施例三提供的SSD中实现RAID的装置的架构示意图;图4为本发明实施例四提供的SSD中实现RAID的装置的架构示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不 是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例一图1为本发明实施例一提供的SSD中实现RAID的方法流程图,本实施例可适用SSD中实现RAID的方法中单个页面发生数据失效的情况,该方法可以由SSD中实现RAID的装置来执行,具体包括如下步骤步骤101 :将每个数据块中的至少两个连续页面绑定为竖向校验条帯。ー个SSD由多个闪存颗粒构成,ー个闪存颗粒由多个数据块(Block)构成,一个数据块由多个页面(page)构成。SSD中实现RAID的装置将每个数据块中的至少两个连续的页面绑定为竖向校验条带(strip)。其中,每个数据块内由多少个页面组成ー个竖向校验条带,可以根据应用场景的需求进行灵活的调整,一般来说,有两种典型组合将每个数据块中的所有页面绑定为ー个竖向校验条帯;或将每个数据块中的所有页面均分为至少两个条带,每个条带的各页面绑定为ー个竖向校验条帯。另外,还可以參考当前多层单元(Mult1-Level CelI,MLC)闪存颗粒中页面彼此存在干扰的特性,对每个数据块中的页面按照特性进行分组,分别构建竖向校验条带,以提高数据可靠性。步骤102 :向竖向校验条带的各页面中顺序写入数据,并将竖向校验条带中的最后一个页面作为竖向校验条带的校验页面。同一个数据块中,连续的多个页面组成ー个竖向RAID条带,在ー个数据块内向竖向校验条带的各页面中顺序写入数据,并将最后ー个页面作为竖向校验条带的校验页面,其他页面作为数据页面。在数据写入的过程中,闪存控制器同步计算出校验数据,当最后ー个数据页面写入数据成功,最終的校验数据已经算好,则将校验数据直接写入到校验页面中。当竖向校验条带中的某一数据页面失效时,则可以通过读取该数据页面所属的竖向校验条带中其他数据页面和校验页面的数据来恢复数据。本发明实施例的技术方案,通过将每个数据块中的至少两个连续页面绑定为竖向校验条带,以页面为单位对竖向校验条带中的各个页面顺序写入数据,并将每ー竖向校验条带的最后ー个页面作为校验页面,当竖向校验条带中某一数据页面失效的时候,读取竖向校验条带中其他数据页面和校验页面的数据来恢复失效页面的数据。本发明实施例提供的SSD中实现RAID的方法,在数据块内构建竖向校验条带以写入数据,并可以根据各种应用场景的需求灵活的调整竖向校验条带的构建方式,数据恢复快,可靠性高。上述技术方案中是在每个数据块内构建竖向校验条带,然而本发明并不以此为限制,在其他可行的方式中,也可以跨数据块构建竖向校验条带,例如,可以将至少两个数据块中的至少三个页面绑定为竖向校验条带,其中,至少ー个数据块中绑定的页面的数量不小于两个且为连续的。每个数据块中包含的页面个数是固定的,如64,128或者256等,每ー个页面对应该数据块中的ー个位置。因此,除了可以在每个数据块内或是跨数据块构建竖向校验条带夕卜,还可以在数据块间构建横向校验条带,即将每个数据块相同位置的页面绑定为横向校验条带,并将绑定为横向校验条带的任意一个页面作为该横向校验条带的校验页面,若校验页面固定在某ー个数据块内,则构建的横向校验条带为RAID4型,否则,若各个横向校验条带的页面在不同的数据块内动 态变化,则构建的横向校验条带为RAID5型。一般来说,为保持并发度,构建横向校验条带的数据块原则上来自不同的闪存颗粒,但是也可以对同一个闪存颗粒内的不同数据块构建横向校验条带。横向校验条带中的任何ー个页面失效,都可以通过该失效页面所属横向校验条带中的其他页面的数据校验回来。因横向校验条带中的页面是固定绑定,横向校验条带的页面数可以动态缩减,在SSD内写入数据的过程中,若某个横向校验条带中已有多个页面成了坏页面而不能写入数据,则自动调整该横向校验条带的深度,将每个数据块相同位置的非损坏页面绑定为横向校验条帯。例如,若某个横向校验条带之前是由8个数据页面和I个校验页面构成,深度为8+1。当某两个数据页面坏掉后,将所有数据块相同位置的非损坏页面绑定为横向校验条带,则该横向校验条带的深度就变成了 6+1。实施例ニ图2为本发明实施例ニ提供的SSD中实现RAID的方法中的数据恢复示意图。相对于上述实施例中仅是通过竖向校验条带或横向校验条带中的其他页面对ー个失效页面的数据进行恢复,本实施例提供的方法中,每ー个页面属于ー个竖向校验条带的同时还属于ー个横向校验条带,通过竖向校验条带和横向校验条带共同提供对数据的RAID保护。如图2所不,将Blockl、Block2、Block3及Block4进行物理绑定,形成一个Block组,以页面为单位将该Block组划分成N个横向校验条带X-stripl、X_strip2、
X-strip3......X-stripN,其中,横向校验条带的校验page固定在Block4中;将姆一 Block
构成一个竖向校验条带 Y-strip,即 Blockl 构成 Y-stripl、Block2 构成 Y_strip2、Block3构成Y_strip3。当发生数据page失效时,如图中阴影部分失效pagel、失效page2及失效page3,则可以先通过读取失效page2所在的横向校验条带X_strip3中的其他page的数据恢复page2的数据,然后读取Y_strip2中的其他page的数据恢复pagel的数据,最后,读取X-strip3的中的其他page的数据恢复page3的数据;或者,也可以先恢复page3的数据,再恢复pagel的数据,最后,对page2的数据进行恢复。本实施例中,通过构建的竖向校验条带和横向校验条带共同提供对数据的RAID保护机制,即,姆ー个页面既属于一个竖向校验条带的同时还属于ー个横向校验条带,当横向校验条带或竖向校验条带中的任何一个维度的条带出现多页面失效时,都可以通过另ー个维度条带的数据来进行恢复,解决了 SSD中一个条带内多页面失效而无法恢复数据的问题。需要说明的是,上述实施例中的各个数据块可以是来自同一闪存颗粒也可以是来自不同闪存颗粒;每ー横向校验条带的校验页面除了可以固定在Blcok4タト,也可以固定在其他数据块或者分散在不同的数据块内;另外,也可以将每一数据块拆分成多个竖向校验条带以实现本发明实施例。当然,也可以跨数据块构建竖向校验条带,例如,可以将至少两个数据块中的至少三个页面绑定为所述竖向校验条带,其中,至少ー个数据块中绑定的页面的数量大于等于不小于两个且为连续的,且不同数据块中绑定的页面在不同的位置。实施例三图3为本发明实施例三提供的SSD中实现RAID的装置的架构示意图。如图3所示,本实施例的SSD中实现RAID的装置可以包括第一绑定模块11,用于将每个数据块中的至少两个连续页面绑定为竖向校验条带;写入模块12,用于向竖向校验条带的各页面中顺序写入数据,并将竖向校验条带中的最后ー个页面作为竖向校验条带的校验页面。本实施例的装置,可以用于执行图1所示方法实施例的技术方案,通过第一绑定模块将每个数据块中的至少两个页面绑定为竖向校验条带,写入模块以页面为単位对竖向校验条带中的各个页面顺序写入数据,并将每ー竖向校验条带的最后ー个页面作为校验页面,当竖向校验条带中某一数据页面失效的时候,读取竖向校验条带中其他数据页面和校验页面的数据来恢复失效页面的数据。本发明实施例提供的SSD中实现RAID的装置,在数据块内构建竖向校验条带以写入数据,并可以根据各种应用场景的需求灵活的调整竖向校验条带的构建方式,数据恢复快,可靠性高。进ー步的,上述实施例中,第一绑定模块11具体用于将每个数据块中的所有页面绑定为一个竖向校验条带;或将每个数据块中的所有页面均分为至少两个条带,将至少两个条带中的每个条带的各页面绑定为ー个竖向校验条帯。第一绑定模块11在除了一个数据块内构建竖向校验条带外,还可以在数据块间构建竖向校验条带,将至少两个数据块中的至少三个页面绑定为竖向校验条带,其中,至少一个数据块中绑定的页面的数量不小于两个且为连续的。实施例四图4为本发明实施例四提供的SSD中实现RAID的装置的架构示意图。如图4所示,本实施例的SSD中实现RAID的装置在图3所示装置的基础上,进ー步的还可以包括第二绑定模块13,用于将每个数据块相同位置的页面绑定为横向校验条带,并将横向校验条带中的任意一个页面作为该横向校验条带的校验页面。本实施例的SSD中实现RAID的装置,其实现原理和所要达到的技术效果上文中已有论述,在此不再赘述。进ー步的,第二绑定模块13用于将每个数据块相同位置的页面绑定为横向校验条带,具体为将每个数据块相同位置的非损坏页面绑定为横向校验条帯。再请參照图4,本实施例的SSD中实现RAID的装置,还可以包括校验模块14,用于当识别到横向校验条带中的至少两个页面失效时,分别根据各失效页面所在的竖向校验条带中其它页面的数据对失效页面进行数据恢复;当识别到竖向校验条带中的至少两个页面失效时,分别根据各失效页面所在的横向校验条带中其它页面的数据对失效页面进行数据恢复。最后应说明的是以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管參照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
权利要求
1.一种固态硬盘中实现独立磁盘冗余阵列的方法,其特征在于,包括 将每个数据块中的至少两个连续页面绑定为竖向校验条带; 向所述竖向校验条带的各页面中顺序写入数据,并将所述竖向校验条带中的最后一个页面作为所述竖向校验条带的校验页面。
2.根据权利要求1所述的方法,其特征在于,还包括 将所述每个数据块相同位置的页面绑定为横向校验条带,并将所述横向校验条带中的任意一个页面作为所述横向校验条带的校验页面。
3.根据权利要求2所述的方法,其特征在于,还包括 当识别到所述横向校验条带中的至少两个页面失效时,分别根据各失效页面所在的所述竖向校验条带中其它页面的数据对失效页面进行数据恢复; 当识别到所述竖向校验条带中的至少两个页面失效时,分别根据各失效页面所在的所述横向校验条带中其它页面的数据对失效页面进行数据恢复。
4.根据权利要求1所述的方法,其特征在于,将每个数据块中的至少两个连续页面绑定为竖向校验条带包括 将每个数据块中的所有页面绑定为一个竖向校验条带;或者, 将每个数据块中的所有页面均分为至少两个条带,将所述至少两个条带中的每个条带的各页面绑定为一个竖向校验条带。
5.根据权利要求2所述的方法,其特征在于,所述将所述每个数据块相同位置的页面绑定为横向校验条带包括 将所述每个数据块相同位置的非损坏页面绑定为横向校验条带。
6.一种固态硬盘中实现独立磁盘冗余阵列的装置,其特征在于,包括 第一绑定模块,用于将每个数据块中的至少两个连续页面绑定为竖向校验条带; 写入模块,用于向所述竖向校验条带的各页面中顺序写入数据,并将所述竖向校验条带中的最后一个页面作为所述竖向校验条带的校验页面。
7.根据权利要求6所述的装置,其特征在于,还包括 第二绑定模块,用于将所述每个数据块相同位置的页面绑定为横向校验条带,并将所述横向校验条带中的任意一个页面作为所述横向校验条带的校验页面。
8.根据权利要求7所述的装置,其特征在于,还包括 校验模块,用于当识别到所述横向校验条带中的至少两个页面失效时,分别根据各失效页面所在的所述竖向校验条带中其它页面的数据对失效页面进行数据恢复;当识别到所述竖向校验条带中的至少两个页面失效时,分别根据各失效页面所在的所述横向校验条带中其它页面的数据对失效页面进行数据恢复。
9.根据权利要求6所述的装置,其特征在于,所述第一绑定模块具体用于 将每个数据块中的所有页面绑定为一个竖向校验条带;或者, 将每个数据块中的所有页面均分为至少两个条带,将所述至少两个条带中的每个条带的各页面绑定为一个竖向校验条带。
10.根据权利要求7所述的装置,其特征在于,所述第二绑定模块,具体为用于 将所述每个数据块相同位置的非损坏页面绑定为横向校验条带,并将所述横向校验条带中的任意一个页面作为所述横向校验条带的校验页面。
全文摘要
本发明实施例提供一种固态硬盘中实现独立磁盘冗余阵列的方法及装置。该方法包括将每个数据块中的至少两个页面绑定为竖向校验条带;向竖向校验条带的各页面中顺序写入数据,并将竖向校验条带的最后一个页面作为该竖向校验条带的校验页面。本发明实施例提供的固态硬盘中实现独立磁盘冗余阵列的方法,在数据块内构建竖向校验条带以写入数据,并可以根据各种应用场景的需求灵活的调整竖向校验条带的构建方式,数据恢复快,可靠性高。
文档编号G06F3/06GK103034458SQ20121057063
公开日2013年4月10日 申请日期2012年12月25日 优先权日2012年12月25日
发明者张颇, 贺志强, 周猛, 陈友光 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1