【摘要】 本发明公开了一种磁盘阵列系统。该磁盘阵列系统包括n个磁盘,其中n≥4,允许≤t/2个磁盘出错;每个磁盘的存储空间划分为512字节或4k字节大小的扇区,各磁盘上相同编号的扇区编组为一个条带,所述磁盘阵列系统以条带为单位进行数据的读写操作;每个扇区的存储空间均匀分成n个块,前n-t块存储有效信息,作为信息块,后t块存储校验信息,作为校验块。与现有技术相比,本发明能提供一种服务不间断的高可靠性、高容错磁盘阵列系统,其容错能力能够达到10个以上,在发生较少磁盘错误时能够提供不间断服务,发生较多磁盘错误时能够恢复出全部数据。 【专利类型】发明授权 【申请人】中科院成都信息技术有限公司 【申请人类型】企业 【申请人地址】610041 四川省成都市高新区创业东路管委会高新大厦11楼5号 【申请人地区】中国 【申请人城市】成都市 【申请人区县】武侯区 【申请号】CN200810046312.0 【申请日】2008-10-20 【申请年份】2008 【公开公告号】CN101387975B 【公开公告日】2010-09-15 【公开公告年份】2010 【授权公告号】CN101387975B 【授权公告日】2010-09-15 【授权公告年份】2010.0 【IPC分类号】G06F11/10 【发明人】陈峥; 张永成; 唐聃; 王晓京; 曹晟; 万武南; 孙宣东; 杨洁; 孟庆春; 王一丁; 周红磊; 张良志; 方佳嘉; 蔡红亮 【主权项内容】一种磁盘阵列系统,其特征在于:包括n个磁盘,其中n≥4;n个磁盘中容量最小的为C字节,在允许小于等于t/2个磁盘出错的情况下仍然能够保证存储数据的安全性并正常提供服务,所述磁盘阵列系统的有效存储空间为(n-t)×C字节;每个磁盘的存储空间划分为512字节或4k字节大小的扇区,各磁盘上相同编号的扇区编组为一个条带,所述磁盘阵列系统以条带为单位进行数据的读写操作;每个扇区的存储空间均匀分成n个块,前n-t块存储有效信息,作为信息块,后t块存储校验信息,作为校验块;对条带进行写操作时,通过容错编码方法生产校验信息,有效信息存入信息块,校验信息存入校验块;当所述磁盘阵列系统出现磁盘错误时,通过错误磁盘恢复方法在提供不间断服务的同时恢复错误磁盘上的数据;所述错误磁盘恢复方法,步骤如下:(A1)预处理A1a)用新的磁盘替换错误磁盘;A1b)每个磁盘的每个扇区均匀分成n个块,每个条带上处于第x个磁盘的第y块编号为ay,x,其中0≤x<n,0≤y<n;进行容错译码,当被删除的信息块ay,x能够被恢复时,将参与恢复该信息块的信息块和校验块记录为一个二元组集合A1c)将前一步骤得到的所有二元组集合按照生成顺序组成一个有序集合;(A2)磁盘读取的处理A2a)当系统需要从磁盘阵列系统中读取一个条带时,从各个磁盘读取相应的扇区,依据预处理步骤得到的二元组集合的有序集合依次恢复被删除的信息块;将所有信息块串联提供给系统;A2b)通过容错编码方法重建被删除的校验块;A2c)将原存储于出错磁盘的信息块和校验块存入新替换的磁盘中对应的扇区;(A3)系统空闲的处理当所述磁盘阵列系统在一段时间之内没有访问请求的时候,按如下步骤恢复出错磁盘上的数据:A3a)从磁盘阵列系统中随机选取一个条带,从各个磁盘读取相应的扇区,依据预处理步骤得到的二元组集合的有序集合依次恢复被删除的信息块;A3b)通过容错编码方法重建被删除的校验块;A3c)将原存储于出错磁盘的信息块和校验块存入新替换的磁盘中对应的扇区;A3d)重复上述步骤A3a-A3c,直到所有的数据被恢复或者系统不再空闲;所述容错编码方法步骤如下:(B1)n个磁盘,允许小于等于t/2个磁盘出错,每个磁盘的每个扇区均匀分成n个块,每个条带上处于第x个磁盘的第y块编号为ay,x,其中0≤x<n,0≤y<n;前n-t块存储有效信息,作为信息块,后t块存储校验信息,作为校验块;(B2)生成一个[n-t,n-1]的矩阵,将其所有元素设为0;(B3)在第(B2)步骤所得到的矩阵中,随机选择p个元素,将其值设为1;其中p的取值为(n-t)>p>(n-t)/2;(B4)将第(B3)步骤得到的矩阵进行均匀化,具体方法是:a)均衡行重:i.统计矩阵行重;ii.如果最大行重减去最小行重大于1,那么最大行重行i和最小行重行j中必存在元素ai,k=1&aj,k=0,则将ai,k设为0,aj,k设为1;iii.重复前两步骤,直到最大行重减去最小行重不大于1;b)均衡列重:i.统计矩阵各列的列重;ii.如果最大列重减去最小列重大于1,那么最大列重列i和最小列重列j中必存在元素ak,i=1&ak,j=0,则将ak,i设为0,ak,j设为1;iii.重复前两步骤,直到最大列重减去最小列重不大于1;c)随机化:对均匀化后的矩阵,随机进行行列变换;(B5)将步骤(B4)所得到的编码矩阵中所有值为1的元素保存为一个二元组集合A={[b,d]||ab,d=1};(B6)磁盘阵列系统中第x个磁盘的第y块校验块所存储的校验信息由步骤(B5)所得到的二元组集合所对应的信息块进行“异或和”生成,其中0≤x<n,0≤y<t;具体对应方法是:对于第x个磁盘的第y个校验块,二元组集合A中二元组[b,d]对应的信息块编号为a[(b+y×m)mod(n-t),((d+y×m)mod(n-1)+x)mod n],其中m=n+1;所述容错译码步骤如下:(C1)将未出现删除错的磁盘中所有的校验块的状态标记为“可用”;(C2)随机选择一个状态为“可用”的校验块,检查它所校验的信息块是否被删除;如果其中没有信息块被删除,那么将此校验块标记为“无用”;如果其中有且仅有一个信息块被删除,此被删除的信息块根据该校验块与该校验块所校验的其他信息块的异或来恢复,然后将此校验块标记为“无用”;(C3)重复第(C2)步,直到未出现删除错的磁盘中所有的校验块的状态标记均为“无用”;(C4)未出现删除错的磁盘中所有的校验块的状态标记均为“无用”,则译码过程成功。FSB00000121384100011.tif 【当前权利人】中科院成都信息技术股份有限公司 【当前专利权人地址】四川省成都市高新区天晖路360号晶科1号大厦18栋1803室 【家族被引证次数】40