一种基于二维raid的固态硬盘数据保护方法

文档序号:6636174阅读:313来源:国知局
一种基于二维raid的固态硬盘数据保护方法
【专利摘要】本发明提供了一种基于二维RAID的固态硬盘数据保护方法,固态硬盘数据以物理页大小的整数倍为条带访问单元,其特征在于同一个数据访问单元同时属于横向条带和纵向条带,同一横向条带上的数据访问单元至少有一个是存储横向校验数据,其余存储有效数据;同一纵向的数据访问单元至少有一个是存储纵向校验数据,其余存储有效数据;同一横向条带和同一纵向条带中任意一个有效数据出错,都可根据其它有效数据和校验数据进行恢复。这样通过横纵两列的二维RAID阵列对数据进行保护。使得在至少三个数据页出错的情况下,在横向无法恢复的情况时,通过纵向进行数据恢复,通过横纵两列的相互保护达到至少三个数据页出错也能恢复数据的效果。
【专利说明】—种基于二维RAID的固态硬盘数据保护方法

【技术领域】
[0001]本发明涉及信息存储领域,尤其涉及一种基于二维RAID的固态硬盘数据保护方法。

【背景技术】
[0002]固态硬盘(SSD)的一个物理页(Page)通常为读/写操作的最小单元,现有SSD内的RAID保护方案普遍采用的是以将单个物理页均分成若干数据块而组成条带或多个block内的物理页组成条带来实现RAID4/5保护,图1是RAID5的固态硬盘数据保护方法示意图,即实现一个条带内有N个数据(DATA)单元和X个Parity (奇偶校验)单元,Parity单元数据通过如下公式得到,图1中N = 3, X = I,每个条带的Parity由本条带内其余数据单元的关系如下:
[0003]Parity = DataO'Datal'Data2'Data3'Data4'...'DataN
[0004]当本条带内出现某个数据单元出错时,可通过如下公式恢复,以Data3出错为例:
[0005]Data3 = Parity'DataO'Datal'Data2'Data4'...'DataN
[0006]这种方案在多个数据单元出错时将无法进行有效的数据恢复,数据保护力度较弱。


【发明内容】

[0007]针对以上缺陷,本发明目的在于提出了一种在多个数据单元同时出错时可以恢复出错的数据单元,起到数据保护的目的。
[0008]为了实现上述目的,本发明提供了一种基于二维RAID的固态硬盘数据保护方法,固态硬盘数据以物理页大小的整数倍为数据访问单元,其特征在于同一个数据访问单元同时属于横向条带和纵向条带,同一横向条带上的数据访问单元至少有一个是存储横向校验数据,其余存储有效数据;同一纵向的数据访问单元至少有一个是存储纵向校验数据,其余存储有效数据;同一横向条带和同一纵向条带中任意一个有效数据出错,都可根据其它有效数据和校验数据进行恢复。
[0009]所述的数据保护方法,其特征在于所述的校验数据由同一横向条带或同一纵向条带的所有有效数据进行异或计算获得。
[0010]所述的数据保护方法,其特征在于所述的异或计算分别在各个有效数据分别写入固态硬盘物理页的时候实时计算。
[0011]所述的数据保护方法,其特征在于当出现有效数据出错时,先判断发生有效数据出错所在的横向条带,如果所在横向条带同时出现2个或2个以上有效数据出错,则先对只出现I个有效数据出错的纵向条带进行数据恢复,根据该纵向条带的其它有效数据和校验数据进行数据恢复;以此规则连续或交替选择横向条带或纵向条带每次恢复一次出错的有效数据,直到所有出错的有效数据都被恢复。
[0012]所述的数据保护方法,其特征在于当出现有效数据出错时,先判断发生有效数据出错所在的纵向条带,如果所在纵向条带同时出现2个或2个以上有效数据出错,则先对只出现I个有效数据出错的横向条带进行数据恢复,根据该横向条带的其它有效数据和校验数据进行数据恢复;以此规则连续或交替选择横向条带或纵向条带每次恢复一次出错的有效数据,直到所有出错的有效数据都被恢复。
[0013]本发明针对SSD内部数据进行条带化管理,即在写入时在各通道下各选取一个block,各block内相同页号的物理页组成一个横向条带,在此横向条带内进行RAID4/5的数据保护,其中有一个物理页存储校验数据。同时,各block内部连续多个物理页组成纵向条带,纵向条带进行RAID4的数据保护。这样通过横纵两列的二维RAID阵列对数据进行保护。使得在至少三个数据页出错的情况下,在横向无法恢复的情况时,通过纵向进行数据恢复,通过横纵两列的相互保护达到至少三个数据页出错也能恢复数据的效果。

【专利附图】

【附图说明】
[0014]图1是RAID5的固态硬盘数据保护方法示意图;
[0015]图2是基于二维RAID的固态硬盘的数据保护方法示意图;
[0016]图3是为数据页写入示意图;
[0017]图4是单个物理页出错的数据修复示意图;
[0018]图5是多个物理页出错的数据修复示意图;
[0019]图6是数据页出错处理流程图。

【具体实施方式】
[0020]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0021]一种基于二维RAID的固态硬盘的数据保护方法,能够在几乎不影响SSD读写性能的前提下大大提高数据的可靠性。图2是基于二维RAID的固态硬盘的数据保护方法示意图,横向支持N1+X1,其中NI表示数据页个数,Xl表示横向奇偶校验页个数;同时支持纵向M1+X2,Ml表示有效数据页个数,X2表示纵向奇偶校验页个数,RAID的静态配置。横向N1+X1个物理页组成一个横向条带,纵向M1+X2个物理页组成一个纵向条带。图2中为横向3+1RAID5、纵向M1+1RAID4,但横向不局限于RAID5,纵向N1、Ml、X1、X2可根据需求任意配置。SSD由4个LUN组成NAND flash阵列,分别为LUNO、LUNl、LUN2、LUN3,每个LUN分配一个空闲block用于并行的写入操作,每个block中的相同页号的物理页组成一个横向条带,其中3个数据页,一个横向奇偶校验页Parity_r。同时,在各个block内部,纵向连续的M1+1个物理页组成一个纵向条带,Ml个物理页包括若干个数据页和若干个横向奇偶校验页Parity_r,同时包括I个纵向奇偶校验页Parity_c。
[0022]图3为数据页写入示意图,横向每3个数据页计算生成并写入一个横向Parity_r数据,此4个数据组成一个条带写入NAND flash中。纵向原理相同,每Ml个纵向数据页写入生成一个纵向Parity_c数据,纵向Parity_c数据可在前M个物理页的数据写入时同步做异或操作进行,待前M个物理页数据写入完成时,纵向parity数据自然生成,无需进行额外的 NAND Flash 读。
[0023]图4为单个物理页出错的数据修复示意图,当单个物理页出现数据出错时,通过同条带的其他数据页数据及相应的parity_r数据进行异或操作,恢复出错的数据页数据。
[0024]图5为多个物理页出错的数据修复示意图,多个数据出错时,可通过横纵两向的组合处理实现对数据的恢复。由于page η横向和block b纵向都有两个物理页出错,所以单靠相应条带已无法恢复出错物理页数据,但通过page P之横向,以及block c之纵向,都只有一个物理页出错,先恢复这两个物理页之数据,则将出错状态简化至仅block b,pageη出错之情况,任意通过横纵向即可恢复其数据,从而达到三个物理页出错数据皆恢复的目的。
[0025]图6是数据页出错处理流程图,具体操作流程为:
[0026]步骤Sll:读数据页出错,将出错数据页加入待处理堆栈栈顶。
[0027]步骤S12:找出栈顶数据页所在横向条带,进行横向条带内数据恢复,若读到栈内数据页,跳至S15,若读到新数据页出错,将新出错数据页加入待处理堆栈栈顶,跳至S13,若恢复成功,将恢复数据页从栈内移除,跳至S14。
[0028]步骤S13:找出栈顶数据页所在纵向条带,进行纵向条带内数据恢复,若读到栈内数据页,跳至S15,若读到新数据页出错,将新出错数据页加入待处理堆栈栈顶,跳至S12,若恢复成功,将恢复数据页从栈内移除,跳至S14。
[0029]步骤S14:待处理堆栈非空,跳至S12,待处理堆栈空,跳至S16。
[0030]步骤S15:数据无法恢复,交由用户处理。
[0031]步骤S16:处理结束。
[0032]以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。
【权利要求】
1.一种基于二维RAID的固态硬盘数据保护方法,固态硬盘数据以物理页大小的整数倍为数据访问单元,其特征在于同一个数据访问单元同时属于横向条带和纵向条带,同一横向条带上的数据访问单元至少有一个是存储横向校验数据,其余存储有效数据;同一纵向的数据访问单元至少有一个是存储纵向校验数据,其余存储有效数据;同一横向条带和同一纵向条带中任意一个有效数据出错,都可根据其它有效数据和校验数据进行恢复。
2.根据权利要求1所述的数据保护方法,其特征在于所述的校验数据由同一横向条带或同一纵向条带的所有有效数据进行异或计算获得。
3.根据权利要求2所述的数据保护方法,其特征在于所述的异或计算分别在各个有效数据分别写入固态硬盘物理页的时候实时计算。
4.根据权利要求3所述的数据保护方法,其特征在于当出现有效数据出错时,先判断发生有效数据出错所在的横向条带,如果所在横向条带同时出现2个或2个以上有效数据出错,则先对只出现I个有效数据出错的纵向条带进行数据恢复,根据该纵向条带的其它有效数据和校验数据进行数据恢复;以此规则连续或交替选择横向条带或纵向条带每次恢复一次出错的有效数据,直到所有出错的有效数据都被恢复。
5.根据权利要求3所述的数据保护方法,其特征在于当出现有效数据出错时,先判断发生有效数据出错所在的纵向条带,如果所在纵向条带同时出现2个或2个以上有效数据出错,则先对只出现I个有效数据出错的横向条带进行数据恢复,根据该横向条带的其它有效数据和校验数据进行数据恢复;以此规则连续或交替选择横向条带或纵向条带每次恢复一次出错的有效数据,直到所有出错的有效数据都被恢复。
【文档编号】G06F12/06GK104461926SQ201410698520
【公开日】2015年3月25日 申请日期:2014年11月27日 优先权日:2014年11月27日
【发明者】华荣, 李建, 王猛 申请人:记忆科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1