一种垂直排布分布校验的节能型磁盘阵列的构建方法

文档序号:6463845阅读:194来源:国知局

专利名称::一种垂直排布分布校验的节能型磁盘阵列的构建方法
技术领域
:本发明涉及一种独立磁盘冗余阵列(RedundantArraysofIndependentDisks,RAID)的构建方法,特别涉及一种垂直排布分布校验的节能型磁盘阵列的构建方法,适用于连续数据存储,属于独立磁盘冗余阵列
技术领域

背景技术
:在现代存储领域,为了提高存储数据的可靠性和改善存储系统的输入、输出性能,人们设计了多种数据存储方案,这些数据存储方案通常是各种类型的独立磁盘冗余阵列(RedundantArraysofIndependentDisks,RAID)。通过使用特定的硬件或软件,RAID把多个物理存储设备如磁盘,联合起来,形成一个统一的逻辑存储设备。下面对RAID中常用的技术术语进行解释条带又称为Stripe;是磁盘阵列的不同磁盘上的位置相关的分块的集合,是组织不同磁盘上条块的单位。条带化又称为Striping;是指把一段连续数据分割成相同大小的数据块,把每段数据分别写入到磁盘阵列的不同磁盘上的方法。磁盘镜像是指复制源数据到一个或更多的磁盘上,错误修正是指利用某种运算,如异或运算,生成并保存冗余数据,可利用冗余数据,再生磁盘上丢失或出错的数据。XOR运算异或运算。比较常用的RAID有RAIDO、RAID1、RAID5、RAID6、RAIDlO等。其中RAIDO不具有冗余能力,RAIDl只是对磁盘做了镜像。其它3种阵列分别有多个磁盘组成,它们以条带的方式向阵列中的磁盘写数据,奇偶校验数据存放在阵列中的各个磁盘上。RAID5的每个条带含有1个校验块,支持任意损坏其中一个磁盘、通过其它磁盘上的奇偶校验块来重建数据;RAID6的每个条带含有2个校验块,支持任意损坏其中两个磁盘、通过其它磁盘上的奇偶校验块来恢复数据;RAIDlO是先对磁盘组进行镜像,再对磁盘进行条带化,所以其不含奇偶校验块,当一个磁盘损坏后通过其对应的镜像盘恢复数据,理想状态下最多允许不同位置下50%的磁盘损坏,最糟糕的情况是同一对镜像磁盘同时损坏。在RAID5中,一个条带包含一组逻辑相邻的数据块,并且这些数据块存储在阵列中不同的存储设备上,RAID5能够纠正或再生一个磁盘上存储的数据,并且由于多个磁盘联合使用一个磁盘容量的冗余数据,所以单位有效数据所需的冗余数据量较少,尤其当RAID5中包含多个磁盘时,这种优势更明显。如8个磁盘构成的RAID5,冗余数据占1个磁盘容量,为全部存储数据的1/8。并且由于RAID5每个条带分散到不同磁盘上的数据块较大,保证了大部分I/O操作都能落入到一个磁盘的数据块内,校验数据也是分布存储的,这样大大增加多I/O并发的可能性。由于RAID5具有突出的综合性能,为大多数商业服务器提供了优化的性价比,所以获得了广泛应用。然而,在连续数据存储领域,如视频监控、虚拟磁带库、连续数据保护等应用中,连5续数据流顺序写入到磁盘中,进行的是顺序存储,即存储数据的地址是连续的,满足存储空间访问的局部性原理,因此不存在I/O并发性。常用的磁盘阵列,为了提高数据访问速度和保证I/O并发性,把连续数据分散存储到不同的磁盘上,虽然每次只访问局部的一块或几块逻辑相邻的磁盘,阵列中多数磁盘没有任务也必须空转,这样不仅浪费大量能源,同时也大大增加了磁盘的无效在线时间,严重缩短了磁盘的使用寿命。随着磁盘技术的进步,单块磁盘的连续读写带宽已经得到了显著提高,对于连续数据存储,如果能够在具有冗余数据保护机制的同时,根据实际任务需求,充分利用单块磁盘的传输带宽,令阵列中的单块磁盘工作,完成存储任务,而其它磁盘暂时处于停止状态,即磁盘转轴和磁头电机停止工作,这样不仅能够节省大量能源,而且还能极大延长阵列的使用寿命。磁盘在不同工作状态下的能量消耗见表1。表1磁盘在不同工作状态下的能量消耗权利要求一种垂直排布分布校验的节能型磁盘阵列的构建方法,垂直排布分布校验的节能型磁盘阵列,简称为磁盘阵列SRAID5;其特征在于应用于磁盘阵列包含N个磁盘的场景中,其中N≥3且N为正整数;将N个磁盘构造成1行×N列的磁盘矩阵;对全部磁盘进行条带划分,分成N个条带并为每个条带顺序编号,每个条带上有N个存储块,其中1个为校验块,另外N1个为数据块,校验块由相同条带内的N1个数据块通过异或运算得出,N个校验块顺序分布在阵列的不同磁盘上;用X(i,j)表示磁盘阵列中的一个存储块,其中i表示该存储块所在磁盘的序号,存储块X(i,j)位于磁盘i上;j表示该存储块所在条带的序号,1≤i,j≤N,则存储块X(N+1j,j)为校验块,用P(i,j)表示;其它存储块为数据块,用L(p,q)表示,其中p表示数据块所在磁盘的序号,1≤p≤N,q表示该数据块在所属磁盘内的数据块的序号,编号从1开始,1≤q≤N1;数据块L(p,q)对应的存储块为<mrow><mi>L</mi><mrow><mo>(</mo><mi>p</mi><mo>,</mo><mi>q</mi><mo>)</mo></mrow><mo>=</mo><mfencedopen='{'close=''><mtable><mtr><mtd><mi>X</mi><mrow><mo>(</mo><mi>p</mi><mo>,</mo><mi>q</mi><mo>)</mo></mrow></mtd><mtd><mi>p</mi><mo>+</mo><mi>q</mi><mo>&lt;</mo><mi>N</mi><mo>+</mo><mn>1</mn></mtd></mtr><mtr><mtd><mi>X</mi><mrow><mo>(</mo><mi>p</mi><mo>,</mo><mi>q</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mtd><mtd><mi>p</mi><mo>+</mo><mi>q</mi><mo>&GreaterEqual;</mo><mi>N</mi><mo>+</mo><mn>1</mn></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>相同磁盘内,序号相邻的数据块逻辑地址相邻,不同磁盘内,前一磁盘中最后一个逻辑存储块与后一磁盘中第一个逻辑存储块逻辑地址相邻;称逻辑地址相邻的数据块为相邻数据块;每个数据块分成K个数据子块,K≥2且K为正整数,物理位置相邻的数据子块,其逻辑地址相邻;每个校验块也分成K个校验子块,物理位置相邻的校验子块的逻辑地址也是相邻的;然后按照逻辑地址顺序,分别对数据子块和校验子块编号;所述校验子块由其所在条带中的各个数据块中偏移位置相同的N1个数据子块通过异或运算得出,这N1数据子块及其异或生成的校验子块,构成一个校验条;所述方法进一步包括控制磁盘工作状态的方法;磁盘工作状态包括停止、运行、就绪三种状态;磁盘停止状态时,磁盘转轴停止旋转、磁头停止寻道;磁盘运行状态时,磁盘正在执行读写操作,包括转轴旋转、磁头寻道;磁盘就绪状态时,表示将要被读写,此时磁盘转轴旋转、磁头不寻道;进行连续写操作时,绝大部分时间里,只有2个磁盘处于运行状态,没有工作的磁盘被调度到停止状态,以达到节能的目的,磁盘工作状态转换调度策略具体为为每个磁盘设置一个信号量,用Semi表示,1≤i≤N,设置信号量Semi的初始值均为0;第1步根据访问数据的逻辑地址,用LBA表示,计算出访问数据所在的数据块的p、q值;通过公式2得到其中,单块磁盘数据量为磁盘上的有效数据量,不包括磁盘上的校验数据,MOD表示模运算,加1表示p、q的值从1开始计数;然后,使用公式1进一步得到访问数据所在的数据块的所在磁盘,用i′表示,和所在条带,用j′表示,以及第j′条带内的校验块所在的磁盘为N+1j′,并对磁盘i′和磁盘N+1j′分别处理若磁盘处于停止状态,则调度到就绪状态;条带序号j′和磁盘序号i′分别用于记录当前访问操作的条带序号和磁盘序号;第2步当磁盘i′和磁盘N+1j′处于就绪状态时,分别向其进行读写操作时,进行读写操作的磁盘由就绪状态转为运行状态;第3步如果本次访问在数据块X(i′,j′)内结束,则本次访问结束后,磁盘i′和磁盘N+1j′由运行状态转为就绪状态,然后退出本次调度;否则,在数据块X(i′,j′)访问结束前t时刻,t为磁盘由停止状态转为就绪状态所需要的时间,判断数据块X(i′,j′)的相邻数据块X(I,J),I,J为正整数,I为相邻数据块所在磁盘编号,J为相邻数据块的所在条带编号,及第J条带校验块所在磁盘N+1J的工作状态并分别处理如果是该磁盘是运行状态,则使该磁盘对应的信号量加1,如果是该磁盘是停止状态,则使其转入就绪状态;在数据块X(i′,j′)访问结束后,磁盘i′和磁盘N+1j′的信号量减1,并分别处理如果磁盘的信号量小于零,则将该磁盘由运行状态转为停止状态,并重新初始该磁盘的信号量为零;如果磁盘的信号量不小于零,则将该磁盘由运行状态转为就绪状态;第4步把记录当前访问所在磁盘序号的i′值更新为I,将记录当前访问所在条带序号的j′的值更新为J,重复执行第2步到第4步;进行连续读操作时,绝大部分时间里,也只有2个磁盘处于运行状态,磁盘工作状态转换调度策略与连续写操作相同。FSA00000234233100021.tif2.如权利要求1所述的一种垂直排布分布校验的节能型磁盘阵列的构建方法,其特征在于优选的,仅进行连续读操作时,校验块所在磁盘停止工作。3.如权利要求1所述的一种垂直排布分布校验的节能型磁盘阵列的构建方法,其特征在于所述方法进一步包括写操作的优化处理方法,具体为设立一个新数据缓冲区,用来缓存应用程序写入阵列的新数据,一个旧数据预读区和一个旧校验数据预读区,分别用来存放从阵列中预读的,与待写新数据对应的旧数据及旧校验数据,新数据子块对应的旧数据子块及旧校验数据子块在写操作前预读到预读区;然后进行以下操作步骤第2.1步当新数据缓冲区不为空时,从新数据缓冲区中取出数据子块D,写入对应数据磁盘,同时送往异或器;第2.2步旧数据预读区中对应的旧数据子块D'送往异或器,与第2.1步送来的写数据子块D进行异或运算,生成差异数据子块X;第2.3步差异数据子块X送往异或器,旧校验数据预读区中对应的旧校验数据子块P',送往异或器,异或运算生成新校验数据子块P;第2.4步更新对应校验条中的旧校验数据子块为新校验数据子块P;由于可以从预读区直接读取旧数据与旧校验数据,磁盘就可以连续执行写操作,只有预读区中的数据用完后,才进行一次预读来填满预读区,通过预读,多个分散的读操作被转换为一个连续的读操作,有效减少了磁头的切换次数,预读区越大,越能提高磁盘阵列S-RAID5的写性能,预读区的极限就是存储块X(i,j)的大小,当然这是不现实的,但是可以根据实际情况设置预读区为足够大;4.如权利要求3所述的一种垂直排布分布校验的节能型磁盘阵列的构建方法,其特征在于优选的,旧数据预读区和旧校验数据预读区大小相等,并且远大于新数据缓冲区。5.如权利要求1至4所述的一种垂直排布分布校验的节能型磁盘阵列的构建方法,其特征在于所述方法进一步包括对故障磁盘进行数据读写的处理方法;具体为当有磁盘出现故障,无法进行正常数据读写时,此时激活磁盘阵列S-RAID5中所有磁盘进入就绪状态,暂停使用所述磁盘工作状态控制方法控制磁盘阵列S-RAID5的工作状态;然后分为以下2中情况进行处理情况1如果校验块所在磁盘出现故障,则继续读写数据块所在磁盘上的数据,但此时磁盘阵列处于无冗余数据校验状态;待更换新盘后,对故障盘上的每个存储块,使用该存储块所在条带的其余存储块,进行异或运算重新生成;情况2如果数据块所在磁盘出现故障,则根据对读、写操作分别处理读操作使用该数据块所在条带的其它存储块进行异或运算,生成该数据块;待更换新盘后,对故障盘上的每个存储块,使用该分块所在条带的其他存储块进行异或运算,恢复该盘上的数据;写操作有2种处理方式第1种处理方式直接将写数据写到同条带的校验块并记录写入的校验块,待更换故障盘后,进行数据还原、数据再生和再生校验数据;数据还原即把寄存在校验块磁盘中的数据块移回到原来位置;数据再生即恢复新数据盘上非还原存储块,利用所在条带的其余存储块进行异或运算实现;再生校验数据是重新生成记录的写入校验块,利用所在条带的其余存储块异或运算实现;第2种处理方式使用备用盘来暂存写往故障磁盘上的数据,当更换故障磁盘后,进行数据还原、数据再生和再生校验数据;当转入正常状态后,再次启用所述磁盘工作状态控制方法对磁盘阵列S-RAID5的工作状态进行控制。全文摘要本发明涉及一种垂直排布分布校验的节能型磁盘阵列的构建方法,适用于连续数据存储,属于独立磁盘冗余阵列
技术领域
。本发明针对连续数据存储的特点,设计实现一种垂直排布分布校验的节能型磁盘阵列S-RAID5,主要包括存储数据在S-RAID5上的布局、存储数据的读写、校验数据的生成方式、写数据时的数据缓冲与预读优化、磁盘工作状态转换调度等。磁盘阵列S-RAID5不但具有良好的冗余数据保护机制,而且能显著降低功耗,延长使用寿命。文档编号G06F3/06GK101976174SQ20101025666公开日2011年2月16日申请日期2010年8月19日优先权日2010年8月19日发明者周泽湘,孙志卓,李艳国,李虓,王成武,谢红军,谭毓安,郭毅申请人:北京同有飞骥科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1