基于RAID5固态硬盘阵列的动态条带系统设计方法技术方案

技术编号:19690816 阅读:35 留言:0更新日期:2018-12-08 10:55
本发明专利技术涉及一种基于RAID5固态硬盘阵列的动态条带系统设计方法及动态条带策略实现方法,涉及数据存储技术领域。本发明专利技术通过使用构建动态条带的方式替换RAID5固态硬盘阵列中读修改写和读重构写的数据更新方式,其中,本发明专利技术的动态条带设计系统包含条带重组模块、元数据模块。条带重组模块对局部条带的数据块进行重构,组成动态条带;元数据模块对数据的映射状态和存储状态进行记录和管理。二者与RAID5阵列的结合改变了传统RAID5阵列的请求处理模式。该系统将满条带的写入和局部条带的写入分离处理,使得局部条带中的数据块通过重组构建成动态条带,动静态条带经过元数据的映射和管理,减少了固态硬盘的写入次数,提升了阵列的使用寿命,减少了写前预读延迟,提升了阵列的写性能。

【技术实现步骤摘要】
基于RAID5固态硬盘阵列的动态条带系统设计方法
本专利技术涉及数据存储
,具体涉及一种基于RAID5固态硬盘阵列的动态条带系统设计方法及动态条带策略实现方法。
技术介绍
RAID是一种提供数据冗余保护的机制,它向上抽象多个物理硬盘为一个逻辑盘,向下转发上层系统下发的文件读写请求,从而实现数据流的重定向转发功能。在数据流的转发过程中,RAID实现了多种形式的数据冗余,包括数据镜像和数据校验,以提供数据保护能力。在众多RAID级别中,RAID5并行性能较好,硬盘空间使用率较高,因此使用较为广泛。条带技术是RAID阵列系统中普遍使用的技术,它将阵列空间分条带组织,以条带为单位进行数据冗余,读写操作都以条带为单位。RAID5阵列中,普通数据和校验数据位于同一条带内,对普通数据的更新都需要对校验数据同步更新。条带的数据更新可以分为两种,一种是对满条带的更新,另一种是对非满条带(即局部条带)的更新。对满条带的更新需要的读写操作最少,效率最高;对非满条带的更新又可具体分两种情况,一种是读修改写,一种是读重构写,不论以哪种情况进行数据更新,都需要预先读取旧的数据,经过校验计算后再写入新的数据,这种方式不仅写效率不高,而且还会引入频繁的校验更新。全闪存阵列通常是一种由固态盘构建的RAID阵列系统,固态盘的存储介质为NANDFlash,擦除次数有限制,因此阵列整体的擦除次数也会有限制。对条带的更新方法进行优化,减少校验的更新次数,一方面可以减少阵列的写入次数,提升阵列的使用寿命,另一方面可以减少数据的写入延迟,提升阵列的性能。
技术实现思路
(一)要解决的技术问题本专利技术要解决的技术问题是:如何改变RAID5固态硬盘阵列中读修改写和读重构写的数据更新方式,以减少阵列中局部条带更新带来的频繁校验更新。(二)技术方案为了解决上述技术问题,本专利技术提供了一种基于RAID5固态硬盘阵列的动态条带系统设计方法,所述动态条带系统中设计条带重组模块和元数据模块;所述条带重组模块设计为:包含数据缓存部和条带重组部两个部分,数据缓存部用于临时存储局部条带数据块,视为缓冲池,当池中的数据块到达上限或者设置的刷入时间间隔到达时,由所述条带重组部获取缓冲池中的数据块并重组为新的条带,称为动态条带;所述缓冲池由数个缓冲器组成,缓冲器的数目与逻辑条带中的数据块数目相同,每个缓冲器是一个具有LRU特性的双向链表,写入次数频繁的数据块置于链表表头,写入次数较少的数据块置于链表表尾,若一个写请求被分割为多个数据块,经过条带识别后分离出静态条带和局部条带,静态条带经过校验计算和元数据记录后写入SSD阵列,局部条带数据块则按所处条带的偏移放入对应的缓冲器中,缓冲器内的数据按时间顺序从底向顶放置,被重组为动态条带后分配条带、计算校验,被元数据模块记录后执行写入操作刷回至固态硬盘阵列中;当任意缓冲器内的数据块数目达到上限时,会激活所述条带重组模块从各缓冲器底部抽取数据,随着各缓冲器容量的减少,若有缓冲器的容量将达到上限,此时,所述条带重组模块抽取所有缓冲器底部的数据块,按原始偏移顺序组成动态条带,若每个缓冲器都有数据块,则重组的条带为满动态条带,否则为非满动态条带;在所述元数据模块中设计全局条带映射表和动态条带映射表;所述动态条带系统的元数据记录了条带的映射信息和状态信息,用于数据块映射和条带管理,元数据为两个表结构,分别是所述全局条带映射表和动态条带映射表,全局条带映射表记录了阵列中所有条带的映射信息和状态信息,所述动态条带映射表记录映射条带的状态信息;局部条带数据块则直接放入数据缓存中,重组为动态条带后分配条带、计算校验,同样被元数据模块记录后执行写入操作刷回至固态硬盘阵列中。优选地,所述全局条带映射表简称为全局条带表,它的数据结构中,结构体表示全局条带表中一个条带的记录信息,整个全局条带表中共有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表示该条目记录了条带映射信息;vector字段表示该映射条带中各数据块的有效状态,为表示动态条带中所有单元块的状态,使用vector中每一个比特位进行标记,值为0表示无效,值为1表示有效;结构体中单元块的数目与逻辑条带中单元块数目相同,并且按偏移顺序从0开始到2结束,每个单元块数据结构记录了4个信息,它们的意义如下:valid字段表示当前单元块内数据有效状态,取值范围0至2,0表示无效,1表示数据映射无效,但可用于数据重构,2表示有效;lsn字段表示存储的数据在当前单元块内的起始逻辑扇区地址;size字段表示存储的数据块大小,LSN表示该单元块内数据的原始逻辑条带号。优选地,当前条带被映射条带包括动态条带和重映射静态条带。优选地,在单元块为3的动态条带中,vector值为101表示偏移为0和2的单元块有效,偏移为1的单元块无效。优选地,所述系统中还设计有数据重构模块,用于失效数据的重构以及阵列降级时的读写处理。优选地,所述系统中还设计有回收模块,用于过时数据的回收。优选地,所述系统实现于RAID控制器内。本专利技术还提供了一种利用所述的方法设计的系统实现的动态条带策略实现方法,该方法在实现写请求时包括以下步骤:写请求进入RAID控制器时,被按照RAID5的编码模式进行分割和计算,根据预先设置的条带单元大小,连续的请求地址会被分割为若干固定大小的地址块,这些地址块中,部分连本文档来自技高网...

【技术保护点】
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

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1