【技术实现步骤摘要】
一种提升固态硬盘阵列系统修复性能的编码和修复方法
本专利技术属于计算机固态硬盘阵列存储系统
,尤其涉及一种提升固态硬盘阵列系统修复性能的编码和修复方法。
技术介绍
基于闪存的固态硬盘已经被广泛部署在服务器和数据中心当中。服务器和数据中心通常会利用阵列技术(RAID)为系统提供可靠性并支持特定数量的硬盘发生错误。据统计,硬盘错误对于大规模存储系统来说是非常常见的。当错误发生时,阵列系统需要消耗额外的带宽资源做数据修复工作进而影响用户访问性能;此外,如果不进行快速修复,当另外的硬盘发生故障且超过系统可以容忍的硬盘故障数,则系统的所有数据都将变得不可靠。因此如何提升修复性能、缩短修复时间成为阵列系统非常值得研究的课题。已有的解决方法都是针对基于传统硬盘的阵列系统,并未考虑到固态硬盘的固有物理特点,因此还存在可提升的空间。例如,固态硬盘采取异地更新策略,导致盘内存在着被标记为无效的数据块;再如,当前流行的开放通道的固态硬盘使得固态硬盘不再是一个黑盒,上层的系统也能够看到并获取闪存芯片上的数据。综上所述,现有技术存在的问题是:(1)现有技术中,都是针对一种编码方程为阵列进行保护,因此修复过程中的数据读取量不存在下降的空间。(2)现有技术中,没有针对固态硬盘阵列系统,利用开放通道固态硬盘及其物理特点,不能提升修复性能;而且现有技术修复时间长。解决上述技术问题的难度:如何利用固态硬盘的物理特点,减少修复过程中所需要的数据读取量,进而提升修复性能。包括,设计合适的数据结构和算法,利用固态 ...
【技术保护点】
1.一种提升固态硬盘阵列系统修复性能的编码和修复方法,其特征在于,所述提升固态硬盘阵列系统修复性能的编码和修复方法包括:/n步骤一,设置A个为固态硬盘阵列系统提供保障的线性无关的编码方程;/n步骤二,当更新发生时,循环依次交替使用不同的编码方程对同一个编码集合进行校验块编码;/n步骤三,当数据被更新时,将老版本数据所在的页面地址写入新页面的OOB中;/n步骤四,为阵列的所有条带设置对应的Bitmap_1数组,通过该数组内部特定元素的值,表示对应条带最近一次更新采用A个编码方程中的哪一个进行编码;/n步骤五,为阵列的所有条带设置对应的Bitmap_2数组,通过该数据内部特定元素的值,表示对应条带在做修复时采用多个编码方程共同求解还是采用传统方法求解;/n步骤六,数据在写入时,随机写入,则依次交替采用多个编码方程对该编码集合进行校验块编码,连续写入,则采用与上一次更新使用的编码方程对本次更新进行校验块编码;/n步骤七,数据修复时,根据Bitmap_2和Bitmap_1的值选择使用多个编码方程共同修复或者使用单个编码方程进行修复。/n
【技术特征摘要】
1.一种提升固态硬盘阵列系统修复性能的编码和修复方法,其特征在于,所述提升固态硬盘阵列系统修复性能的编码和修复方法包括:
步骤一,设置A个为固态硬盘阵列系统提供保障的线性无关的编码方程;
步骤二,当更新发生时,循环依次交替使用不同的编码方程对同一个编码集合进行校验块编码;
步骤三,当数据被更新时,将老版本数据所在的页面地址写入新页面的OOB中;
步骤四,为阵列的所有条带设置对应的Bitmap_1数组,通过该数组内部特定元素的值,表示对应条带最近一次更新采用A个编码方程中的哪一个进行编码;
步骤五,为阵列的所有条带设置对应的Bitmap_2数组,通过该数据内部特定元素的值,表示对应条带在做修复时采用多个编码方程共同求解还是采用传统方法求解;
步骤六,数据在写入时,随机写入,则依次交替采用多个编码方程对该编码集合进行校验块编码,连续写入,则采用与上一次更新使用的编码方程对本次更新进行校验块编码;
步骤七,数据修复时,根据Bitmap_2和Bitmap_1的值选择使用多个编码方程共同修复或者使用单个编码方程进行修复。
2.如权利要求1所述的提升固态硬盘阵列系统修复性能的编码和修复方法,其特征在于,步骤一中,所述固态硬盘阵列系统由N块固态硬盘构成的RAID5系统,系统参数A设置为2或3或4,表示使用2个或3个或4个线性无关的编码算法共同保护RAID5阵列。
3.如权利要求1所述的提升固态硬盘阵列系统修复性能的编码和修复方法,其特征在于,步骤二具体包括:编码集合采用第一个编码方程进行编码后,则当编码集合内部一块数据页面发生更新时则采用第二个编码方程进行编码;随后,该编码集合又有一块数据页面发生更新则又采用第一个编码方程进行编码;循环依次交替使用不同的编码方程对同一个编码集合进行编码;
所述两个编码方程为:
和其中“+/*”为有限域运算,X1/X2/Y1/Y2为编码方程的参数,在每个方程中,一半的数据的编码参数为X1或X2,一半的数据的编码参数为Y1或Y2,且两个方程线性无关。
4.如权利要求1所述的提升固态硬盘阵列系统修复性能的编码和修复方法,其特征在于,步骤三具体包括:采用开放通道的固态硬盘作为底层存储介质,当某个数据页面更新时,固态硬盘阵列系统将该页面新版本数据写入新的页面,将老版本数据所在页面标记无效,并在新版本页面的OOB部分写入老版本无效页数据的地址,使固态硬盘阵列系统在数据修复时能够读取最新版本的前一个版本无效数据,进而加速数据修复过程。
5.如权利要求1所述的提升固态硬盘阵列系统修复性能的编码和修复方法,其特征在于,步骤四具体包括:使用Bitmap_1数组结构,其中Bitmap_1的数组大小为阵列中的编码集合数量,且一一对应;
对应位置为0,则表示该编码集合采用第一个编码方程进行编码;
对应位置为1,则表示该编码集合采用第二个编码方程进行编码;Bitmap_1[0]=0,表示第0个编码集合采用第一个编码方程进行编码。
6.如权利要求1所述的提升固态硬盘阵列系统修复性能的编码和修复方法,其特征在于,步骤五具体包括:
使用Bitmap_2数组结...
【专利技术属性】
技术研发人员:潘玉彪,侯济恭,林运国,温廷羲,
申请(专利权)人:南威软件股份有限公司,
类型:发明
国别省市:福建;35
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。