一种提高固态盘阵列性能和可靠性的方法及系统技术方案

技术编号:17654817 阅读:40 留言:0更新日期:2018-04-08 08:15
本发明专利技术公开了一种提高固态盘阵列性能和可靠性的方法及系统,应用于计算机存储领域,包括:定义逻辑条带和物理条带,逻辑条带为传统磁盘阵列中的条带,物理条带由逻辑条带中写入数据的数据块和校验块组成;增加数据位图表,用于记录逻辑条带中写入数据的数据块和校验块;写请求处理和重构流程中处理的基本单位为物理条带,校验信息等于物理条带中的数据块的异或。本发明专利技术减少了写请求处理过程中预读操作的个数,跳过不在对应物理条带中失效数据块的数据恢复,可以提升固态盘阵列写性能和重构性能。本发明专利技术可用于RAID4和RAID5级别的固态盘阵列和磁盘阵列,适用于构建高可靠性、高性能和高容量的存储系统。

【技术实现步骤摘要】
一种提高固态盘阵列性能和可靠性的方法及系统
本专利技术属于计算机存储
,更具体地,涉及一种提高固态盘阵列性能和可靠性的方法及系统。
技术介绍
由于受到机械特性的限制,磁盘的读写性能的提升远远跟不上处理器性能提升的速度。存储的速度成为了计算机系统的性能瓶颈。新型电子存储设备固态盘的出现缓解了这个性能问题。但是单个固态盘的容量远小于单个磁盘的容量。独立冗余磁盘阵列(RedundantArrayofIndependentDisks,RAID)技术把多块独立的物理硬盘按不同的方式组合起来形成一个大容量、高性能逻辑硬盘。RAID根据容错能力和数据布局的不同可以分为不同的阵列级别(RAIDLevels)。RAID5是RAIDLevels中最常用的一种级别。随着固态盘(SolidStateDrives,SSD)价格的下降,国内外很多研究和存储厂商通过RAID技术,把多个固态盘组建成固态盘阵列(RedundantArrayofIndependentSSDs,RAIS)来提供大容量、高性能和高可靠的存储服务。RAID5中每个条带由多个数据块和一个校验块组成,其中校验块是多个数据块的异或结果。当条带中某个或者某些数据块被更新时,对应的校验块也需要被更新。这里有两种方法计算新的校验块:重构写(ReconstructWrite,RCW)和读改写(ReadModifyWrite,RMW)。RCW是用需要更新的数据块的新值与不需要被更新数据块的值来计算新的校验块。RMW是用需要更新的数据块的旧值、新值和校验块的旧值来计算新的校验块。因此RCW需要读取条带中不需要更新的数据块,RMW需要读取条带中需要更新的数据块和校验块。RAID5控制器会选择RCW和RMW中读取数据块个数少的方法来计算新的校验块,两者相同时选择RCW方法。固态盘有很多特性,其中有两个特性是擦后写和擦写单位不对称。擦后写特性是指固态盘中的块只有在被擦除之后才能进行写操作。固态盘中的擦除操作可以将固态盘一个块中的所有位(bits)变成1。固态盘的写操作只能将固态盘内一个页中的所有位(bits)变成0,但是不能由0变成1。擦写单位不对称是指擦除操作的基本单位是块,写操作的基本单位是页。固态盘中的块是由很多页组成。由于这两个特性,固态盘采用异地更新方式来写数据。有很多研究充分利用固态盘的特性来优化固态盘阵列的读写性能,但是很少研究专注于提升固态盘阵列的重构性能。RAIS5是RAID5级别的固态盘阵列。传统RAID5相关的重构算法也可以使用到RAIS5中。当RAIS5中某个SSD失效时,传统重构算法会恢复其中被使用过的条带,跳过没有被使用的条带。假如一个失效的数据块没有被写入数据,而其对应的条带中其它数据块被写入了数据。传统的重构算法是需要对这个数据块进行恢复,因为它所在的条带是被使用过的条带。实际上我们可以跳过对该数据块进行恢复。而且该重构算法在创建阵列时需要将所有数据块和校验块初始化为0。对SSD全盘写入数据操作会严重影响其写性能及寿命。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供了一种提高固态盘阵列性能和可靠性的方法及系统,由此解决传统重构算法存在的正常模式下固态盘阵列写性能较低以及降级模式下固态盘阵列的重构性能较低的技术问题。为实现上述目的,按照本专利技术的一个方面,提供了一种提高固态盘阵列性能和可靠性的方法,包括:(1)在所创建的固态盘阵列中增加数据位图表,将所述数据位图表中所有位初始化为0,其中,所述数据位图表位于非易失内存中,且所述数据位图表用于记录逻辑条带中包含的数据块和校验块是否被写入数据;(2)在接收到写请求时,找到与所述写请求对应的第一逻辑条带,结合所述数据位图表得到与所述第一逻辑条带对应的物理条带,根据所述物理条带确定重构写RCW需要读取的数据块个数以及读改写RMW需要读取的数据块个数,然后根据RCW和RMW中读取数据块个数之间的大小关系选择进行写请求处理的方式,并更新所述数据位图表;(3)在恢复失效数据块时,根据所述失效数据块对应的第二逻辑条带在更新后的数据位图表中查找与所述失效数据块所对应的位,若所述失效数据块对应的位为0,则不进行恢复,若所述失效数据块对应的位为1,则采用所述第二逻辑条带对应的物理条带中没有失效的数据块进行数据恢复。优选地,逻辑条带为磁盘阵列中的条带,物理条带由逻辑条带中写入数据的数据块和校验块组成。优选地,所述重构写RCW需要读取的数据块个数为所述第一逻辑条带对应的物理条带内不需要更新数据块的个数,所述读改写RMW需要读取的数据块个数为所述第一逻辑条带对应的物理条带内需要更新数据块的个数加上1。优选地,步骤(2)包括:(2.1)初始化所述重构写RCW需要读取的数据块个数rcw和所述读改写RMW需要读取的数据块个数rmw均为0;(2.2)找到与所述写请求对应的第一逻辑条带,根据所述第一逻辑条带中的每个逻辑块在所述数据位图表中对应位的值以及是否需要有写请求确定rmw和rcw的值;(2.3)若rcw等于0,则新的校验值等于所有需要更新的数据块的新值的异或;(2.4)若rmw小于rcw,且rmw不等于0,则采用RMW方式读取需要更新且在所述数据位图表中对应位为1的数据块旧值和校验块旧值,将读取的数据块的旧值与所有需要更新的数据块的新值进行异或得到新的校验值;(2.5)若rmw不小于rcw,且rcw不等于0,则采用RCW方式读取不需要更新且在所述数据位图表中对应位为1的数据块,将读取的数据块的值与所有需要更新的数据块的新值进行异或得到新的校验值。优选地,步骤(2.2)包括:(2.2.1)找到与所述写请求对应的第一逻辑条带,对于所述第一逻辑条带中的每一个逻辑块,判断所述逻辑块在所述数据位图表中的位是否为1;(2.2.2)若所述逻辑块在所述数据位图表中的位为1,则判断所述逻辑块是否需要有写请求或所述逻辑块是否为校验块;(2.2.3)若所述逻辑块需要有写请求或所述逻辑块为校验块,则rmw值加1,若所述逻辑块不需要有写请求且所述逻辑块不为校验块,则rcw值加1。按照本专利技术的另一方面,提供了一种提高固态盘阵列性能和可靠性的系统,包括:数据位图表创建模块,用于在所创建的固态盘阵列中增加数据位图表,将所述数据位图表中所有位初始化为0,其中,所述数据位图表位于非易失内存中,且所述数据位图表用于记录逻辑条带中包含的数据块和校验块是否被写入数据;请求处理模块,用于在接收到写请求时,找到与所述写请求对应的第一逻辑条带,结合所述数据位图表得到与所述第一逻辑条带对应的物理条带,根据所述物理条带确定重构写RCW需要读取的数据块个数以及读改写RMW需要读取的数据块个数,然后根据RCW和RMW中读取数据块个数之间的大小关系选择进行写请求处理的方式,并更新所述数据位图表;数据重建模块,用于在恢复失效数据块时,根据所述失效数据块对应的第二逻辑条带在更新后的数据位图表中查找与所述失效数据块所对应的位,若所述失效数据块对应的位为0,则不进行恢复,若所述失效数据块对应的位为1,则采用所述第二逻辑条带对应的物理条带中没有失效的数据块进行数据恢复。优选地,逻辑条带为磁盘阵列中的条带,物理条带由逻辑条带中写入数据的数据块和校验块组成。优选地,所述重构写RCW本文档来自技高网
...
一种提高固态盘阵列性能和可靠性的方法及系统

【技术保护点】
一种提高固态盘阵列性能和可靠性的方法,其特征在于,包括:(1)在所创建的固态盘阵列中增加数据位图表,将所述数据位图表中所有位初始化为0,其中,所述数据位图表位于非易失内存中,且所述数据位图表用于记录逻辑条带中包含的数据块和校验块是否被写入数据;(2)在接收到写请求时,找到与所述写请求对应的第一逻辑条带,结合所述数据位图表得到与所述第一逻辑条带对应的物理条带,根据所述物理条带确定重构写RCW需要读取的数据块个数以及读改写RMW需要读取的数据块个数,然后根据RCW和RMW中读取数据块个数之间的大小关系选择进行写请求处理的方式,并更新所述数据位图表;(3)在恢复失效数据块时,根据所述失效数据块对应的第二逻辑条带在更新后的数据位图表中查找与所述失效数据块所对应的位,若所述失效数据块对应的位为0,则不进行恢复,若所述失效数据块对应的位为1,则采用所述第二逻辑条带对应的物理条带中没有失效的数据块进行数据恢复。

【技术特征摘要】
1.一种提高固态盘阵列性能和可靠性的方法,其特征在于,包括:(1)在所创建的固态盘阵列中增加数据位图表,将所述数据位图表中所有位初始化为0,其中,所述数据位图表位于非易失内存中,且所述数据位图表用于记录逻辑条带中包含的数据块和校验块是否被写入数据;(2)在接收到写请求时,找到与所述写请求对应的第一逻辑条带,结合所述数据位图表得到与所述第一逻辑条带对应的物理条带,根据所述物理条带确定重构写RCW需要读取的数据块个数以及读改写RMW需要读取的数据块个数,然后根据RCW和RMW中读取数据块个数之间的大小关系选择进行写请求处理的方式,并更新所述数据位图表;(3)在恢复失效数据块时,根据所述失效数据块对应的第二逻辑条带在更新后的数据位图表中查找与所述失效数据块所对应的位,若所述失效数据块对应的位为0,则不进行恢复,若所述失效数据块对应的位为1,则采用所述第二逻辑条带对应的物理条带中没有失效的数据块进行数据恢复。2.根据权利要求1所述的方法,其特征在于,逻辑条带为磁盘阵列中的条带,物理条带由逻辑条带中写入数据的数据块和校验块组成。3.根据权利要求2所述的方法,其特征在于,所述重构写RCW需要读取的数据块个数为所述第一逻辑条带对应的物理条带内不需要更新数据块的个数,所述读改写RMW需要读取的数据块个数为所述第一逻辑条带对应的物理条带内需要更新数据块的个数加上1。4.根据权利要求2或3所述的方法,其特征在于,步骤(2)包括:(2.1)初始化所述重构写RCW需要读取的数据块个数rcw和所述读改写RMW需要读取的数据块个数rmw均为0;(2.2)找到与所述写请求对应的第一逻辑条带,根据所述第一逻辑条带中的每个逻辑块在所述数据位图表中对应位的值以及是否需要有写请求确定rmw和rcw的值;(2.3)若rcw等于0,则新的校验值等于所有需要更新的数据块的新值的异或;(2.4)若rmw小于rcw,且rmw不等于0,则采用RMW方式读取需要更新且在所述数据位图表中对应位为1的数据块旧值和校验块旧值,将读取的数据块的旧值与所有需要更新的数据块的新值进行异或得到新的校验值;(2.5)若rmw不小于rcw,且rcw不等于0,则采用RCW方式读取不需要更新且在所述数据位图表中对应位为1的数据块,将读取的数据块的值与所有需要更新的数据块的新值进行异或得到新的校验值。5.根据权利要求4所述的方法,其特征在于,步骤(2.2)包括:(2.2.1)找到与所述写请求对应的第一逻辑条带,对于所述第一逻辑条带中的每一个逻辑块,判断所述逻辑块在所述数据位图表中的位是否为1;(2.2.2)若所述逻辑块在所述数据位图表中的位为1,则判断所述逻辑块是否需要有写请求或所述逻辑块是否为校验块;(2.2.3)若所述逻辑块需要有写请求或所述逻辑块为校验块,则rmw值加1,若所述逻辑块不需要有写请求且所述逻辑块不为校验块,则rcw值加1。6.一种提高固态盘阵列性能和可靠性的系统,其特征在于,包括:数据...

【专利技术属性】
技术研发人员:冯丹梅林军陈俭喜曾令仿刘景宁张晓祎
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

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

1