【技术实现步骤摘要】
基于RAID5固态硬盘阵列的动态条带系统设计方法
本专利技术涉及数据存储
,具体涉及一种基于RAID5固态硬盘阵列的动态条带系统设计方法及动态条带策略实现方法。
技术介绍
RAID是一种提供数据冗余保护的机制,它向上抽象多个物理硬盘为一个逻辑盘,向下转发上层系统下发的文件读写请求,从而实现数据流的重定向转发功能。在数据流的转发过程中,RAID实现了多种形式的数据冗余,包括数据镜像和数据校验,以提供数据保护能力。在众多RAID级别中,RAID5并行性能较好,硬盘空间使用率较高,因此使用较为广泛。条带技术是RAID阵列系统中普遍使用的技术,它将阵列空间分条带组织,以条带为单位进行数据冗余,读写操作都以条带为单位。RAID5阵列中,普通数据和校验数据位于同一条带内,对普通数据的更新都需要对校验数据同步更新。条带的数据更新可以分为两种,一种是对满条带的更新,另一种是对非满条带(即局部条带)的更新。对满条带的更新需要的读写操作最少,效率最高;对非满条带的更新又可具体分两种情况,一种是读修改写,一种是读重构写,不论以哪种情况进行数据更新,都需要预先读取旧的数据,经过校验计算后再写入新的数据,这种方式不仅写效率不高,而且还会引入频繁的校验更新。全闪存阵列通常是一种由固态盘构建的RAID阵列系统,固态盘的存储介质为NANDFlash,擦除次数有限制,因此阵列整体的擦除次数也会有限制。对条带的更新方法进行优化,减少校验的更新次数,一方面可以减少阵列的写入次数,提升阵列的使用寿命,另一方面可以减少数据的写入延迟,提升阵列的性能。
技术实现思路
(一)要解决的技术问题本专利技 ...
【技术保护点】
1.一种基于RAID5固态硬盘阵列的动态条带系统设计方法,其特征在于,所述动态条带系统中设计条带重组模块和元数据模块;所述条带重组模块设计为:包含数据缓存部和条带重组部两个部分,数据缓存部用于临时存储局部条带数据块,视为缓冲池,当池中的数据块到达上限或者设置的刷入时间间隔到达时,由所述条带重组部获取缓冲池中的数据块并重组为新的条带,称为动态条带;所述缓冲池由数个缓冲器组成,缓冲器的数目与逻辑条带中的数据块数目相同,每个缓冲器是一个具有LRU特性的双向链表,写入次数频繁的数据块置于链表表头,写入次数较少的数据块置于链表表尾,若一个写请求被分割为多个数据块,经过条带识别后分离出静态条带和局部条带,静态条带经过校验计算和元数据记录后写入SSD阵列,局部条带数据块则按所处条带的偏移放入对应的缓冲器中,缓冲器内的数据按时间顺序从底向顶放置,被重组为动态条带后分配条带、计算校验,被元数据模块记录后执行写入操作刷回至固态硬盘阵列中;当任意缓冲器内的数据块数目达到上限时,会激活所述条带重组模块从各缓冲器底部抽取数据,随着各缓冲器容量的减少,若有缓冲器的容量将达到上限,此时,所述条带重组模块抽取所有缓冲 ...
【技术特征摘要】
1.一种基于RAID5固态硬盘阵列的动态条带系统设计方法,其特征在于,所述动态条带系统中设计条带重组模块和元数据模块;所述条带重组模块设计为:包含数据缓存部和条带重组部两个部分,数据缓存部用于临时存储局部条带数据块,视为缓冲池,当池中的数据块到达上限或者设置的刷入时间间隔到达时,由所述条带重组部获取缓冲池中的数据块并重组为新的条带,称为动态条带;所述缓冲池由数个缓冲器组成,缓冲器的数目与逻辑条带中的数据块数目相同,每个缓冲器是一个具有LRU特性的双向链表,写入次数频繁的数据块置于链表表头,写入次数较少的数据块置于链表表尾,若一个写请求被分割为多个数据块,经过条带识别后分离出静态条带和局部条带,静态条带经过校验计算和元数据记录后写入SSD阵列,局部条带数据块则按所处条带的偏移放入对应的缓冲器中,缓冲器内的数据按时间顺序从底向顶放置,被重组为动态条带后分配条带、计算校验,被元数据模块记录后执行写入操作刷回至固态硬盘阵列中;当任意缓冲器内的数据块数目达到上限时,会激活所述条带重组模块从各缓冲器底部抽取数据,随着各缓冲器容量的减少,若有缓冲器的容量将达到上限,此时,所述条带重组模块抽取所有缓冲器底部的数据块,按原始偏移顺序组成动态条带,若每个缓冲器都有数据块,则重组的条带为满动态条带,否则为非满动态条带;在所述元数据模块中设计全局条带映射表和动态条带映射表;所述动态条带系统的元数据记录了条带的映射信息和状态信息,用于数据块映射和条带管理,元数据为两个表结构,分别是所述全局条带映射表和动态条带映射表,全局条带映射表记录了阵列中所有条带的映射信息和状态信息,所述动态条带映射表记录映射条带的状态信息;局部条带数据块则直接放入数据缓存中,重组为动态条带后分配条带、计算校验,同样被元数据模块记录后执行写入操作刷回至固态硬盘阵列中。2.如权利要求1所述的方法,其特征在于,所述全局条带映射表简称为全局条带表,它的数据结构中,结构体表示全局条带表中一个条带的记录信息,整个全局条带表中共有N个记录,N为阵列中的条带数目,其中每个记录称为一个条目,每个条目记录了条带及条带单元块的状态信息和映射信息;全局条带表的数据结构中,LSN表示逻辑条带在全局条带表中的偏移序号,它由条带的逻辑地址计算得到,LSN的取值范围为0至N-1,一个条目分为两部分,一部分是记录条带使用状态的类型值,另一部分是条带单元块结构体的集合,类型字段的值表示条带的使用状态,共有4个取值,0表示当前条带为初始状态,单元块内未存储数据;1表示当前条带被静态条带使用,单元块内存储静态数据;2表示当前条带由条带类型1转换而来,条带中至少有一个单元块内的数据被重映射至其他条带;3表示当前条带被映射条带占据;结构体中单元块的数目与逻辑条带中单元块数目相同,并且按偏移顺序从0开始到2结束,每个单元块数据结构记录了5个信息,它们的意义如下:remap字段表示当前单元块内的数据是否被映射存储,0表示没有,1表示映射存储;mapLSN字段表示单元块映射的条带地址,由RADS分配所得;state字段表示当前单元块地址是否存储数据,0表示已存储数据,1表示未存储数据;lsn字段表示存储的数据在当前单元块内的起始逻辑扇区地址;size字段表示存储的数据块大小;动态条带映射表简称为动态条带表,它的数据结构中,结构体表示动态条带表中一个条带的记录信息,同全局条带表,动态条带表中也有N个条目,只有记录过映射信息的条目才是有效的,动态条带表中记录的条带与全局条带表中类型值为3的条带一一对应,有一个类型值为3的全局条带表条目,就有一个动态条带表条目;动态条带表的数据结构中,LSN表示条带在动态条带表中的偏移序号,LSN的取值范围为0至N-1,动态条带表中每个条目同样记录了两部分信息,一部分记录条带使用状态,另一部分是条带单元块结构体的集合;used_state字段的值表示动态条带表中条带的使用状态,共有2个取值,值为0时,表示该条目没有使用,值为1表示该条目记录了条带映...
【专利技术属性】
技术研发人员:殷双飞,
申请(专利权)人:北京计算机技术及应用研究所,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。