发明名称 一种垂直排布分布校验的节能型磁盘阵列的构建方法
摘要 本发明涉及一种垂直排布分布校验的节能型磁盘阵列的构建方法,适用于连续数据存储,属于独立磁盘冗余阵列技术领域。本发明针对连续数据存储的特点,设计实现一种垂直排布分布校验的节能型磁盘阵列S-RAID 5,主要包括:存储数据在S-RAID 5上的布局、存储数据的读写、校验数据的生成方式、写数据时的数据缓冲与预读优化、磁盘工作状态转换调度等。磁盘阵列S-RAID 5不但具有良好的冗余数据保护机制,而且能显著降低功耗,延长使用寿命。
申请公布号 CN101976174B 申请公布日期 2012.01.25
申请号 CN201010256665.0 申请日期 2010.08.19
申请人 北京同有飞骥科技股份有限公司 发明人 谭毓安;孙志卓;周泽湘;李虓;谢红军;王成武;郭毅;李艳国
分类号 G06F3/06(2006.01)I;G06F12/06(2006.01)I 主分类号 G06F3/06(2006.01)I
代理机构 代理人
主权项 1.一种垂直排布分布校验的节能型磁盘阵列的构建方法,垂直排布分布校验的节能型磁盘阵列,简称为磁盘阵列S-RAID 5;其特征在于:应用于磁盘阵列包含N个磁盘的场景中,其中N≥3且N为正整数;将N个磁盘构造成1行×N列的磁盘矩阵;对全部磁盘进行条带划分,分成N个条带并为每个条带顺序编号,每个条带上有N个存储块,其中1个为校验块,另外N-1个为数据块,校验块由相同条带内的N-1个数据块通过异或运算得出,N个校验块顺序分布在阵列的不同磁盘上;用X(i,j)表示磁盘阵列中的一个存储块,其中i表示该存储块所在磁盘的序号,存储块X(i,j)位于磁盘i上;j表示该存储块所在条带的序号,1≤i,j≤N,则存储块X(N+1-j,j)为校验块,用P(i,j)表示;其它存储块为数据块,用L(p,q)表示,其中p表示数据块所在磁盘的序号,1≤p≤N,q表示该数据块在所属磁盘内的数据块的序号,编号从1开始,1≤q≤N-1;数据块L(p,q)对应的存储块为:<maths num="0001"><![CDATA[<math><mrow><mi>L</mi><mrow><mo>(</mo><mi>p</mi><mo>,</mo><mi>q</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='{' 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></math>]]></maths>相同磁盘内,序号相邻的数据块逻辑地址相邻,不同磁盘内,前一磁盘中最后一个逻辑存储块与后一磁盘中第一个逻辑存储块逻辑地址相邻;称逻辑地址相邻的数据块为相邻数据块;每个数据块分成K个数据子块,K≥2且K为正整数,物理位置相邻的数据子块,其逻辑地址相邻;每个校验块也分成K个校验子块,物理位置相邻的校验子块的逻辑地址也是相邻的;然后按照逻辑地址顺序,分别对数据子块和校验子块编号;所述校验子块由其所在条带中的各个数据块中偏移位置相同的N-1个数据子块通过异或运算得出,这N-1数据子块及其异或生成的校验子块,构成一个校验条;所述方法进一步包括:控制磁盘工作状态的方法;磁盘工作状态包括:停止、运行、就绪三种状态;磁盘停止状态时,磁盘转轴停止旋转、磁头停止寻道;磁盘运行状态时,磁盘正在执行读写操作,包括转轴旋转、磁头寻道;磁盘就绪状态时,表示将要被读写,此时磁盘转轴旋转、磁头不寻道;进行连续写操作时,绝大部分时间里,只有2个磁盘处于运行状态,没有工作的磁盘被调度到停止状态,以达到节能的目的,磁盘工作状态转换调度策略具体为:为每个磁盘设置一个信号量,用Sem i表示,1≤i≤N,设置信号量Sem i的初始值均为0;第1步:根据访问数据的逻辑地址,用LBA表示,计算出访问数据所在的数据块的p、q值;通过公式2得到:<img file="FSB00000659254300021.GIF" wi="2003" he="300" />其中,单块磁盘数据量为磁盘上的有效数据量,不包括磁盘上的校验数据,MOD表示模运算,加1表示p、q的值从1开始计数;然后,使用公式1进一步得到访问数据所在的数据块的所在磁盘,用i′表示,和所在条带,用j′表示,以及第j′条带内的校验块所在的磁盘为N+1-j′,并对磁盘i′和磁盘N+1-j′分别处理:若磁盘处于停止状态,则调度到就绪状态;条带序号j′和磁盘序号i′分别用于记录当前访问操作的条带序号和磁盘序号;第2步:当磁盘i′和磁盘N+1-j′处于就绪状态时,分别向其进行读写操作时,进行读写操作的磁盘由就绪状态转为运行状态;第3步:如果本次访问在数据块X(i′,j′)内结束,则本次访问结束后,磁盘i′和磁盘N+1-j′由运行状态转为就绪状态,然后退出本次调度;否则,在数据块X(i′,j′)访问结束前t时刻,t为磁盘由停止状态转为就绪状态所需要的时间,判断数据块X(i′,j′)的相邻数据块X(I,J),I,J为正整数,I为相邻数据块所在磁盘编号,J为相邻数据块的所在条带编号,及第J条带校验块所在磁盘N+1-J的工作状态并分别处理:如果是该磁盘是运行状态,则使该磁盘对应的信号量加1,如果是该磁盘是停止状态,则使其转入就绪状态;在数据块X(i′,j′)访问结束后,磁盘i′和磁盘N+1-j′的信号量减1,并分别处理:如果磁盘的信号量小于零,则将该磁盘由运行状态转为停止状态,并重新初始该磁盘的信号量为零;如果磁盘的信号量不小于零,则将该磁盘由运行状态转为就绪状态;第4步:把记录当前访问所在磁盘序号的i′值更新为I,将记录当前访问所在条带序号的j′的值更新为J,重复执行第2步到第4步;进行连续读操作时,绝大部分时间里,也只有2个磁盘处于运行状态,磁盘工作状态转换调度策略与连续写操作相同。
地址 100081 北京市海淀区中关村南大街36号湖北大厦18号