发明名称 一种RAID数据自修复的方法
摘要 本发明提供一种RAID数据自修复的方法,对数据进行分段预留,不仅能提升转移的性能,减少了寻址的距离;还能对数据进行分层次转移,方便管理;预留区域分散,防止坏扇区集中产生于某个区域,或者是预留区域发生了损坏,若单一预留区域,发生损坏就无法转移,分段预留,即使一个活多个预留区损坏,还能继续转移到全局预留区域。
申请公布号 CN102968361A 申请公布日期 2013.03.13
申请号 CN201210465017.5 申请日期 2012.11.19
申请人 浪潮电子信息产业股份有限公司 发明人 文中领;古世磊
分类号 G06F11/16(2006.01)I 主分类号 G06F11/16(2006.01)I
代理机构 代理人
主权项 一种RAID数据自修复的方法, 其特征在于该方法是把数据区分成多个数据单元,对每个数据单元的数据都设置有一个局部预留区域;一旦某个扇区损坏,就把坏扇区的数据转移到预留区域,另外再磁盘的尾端还设置全局预留区域,一旦局部预留区域再出现坏扇区而发生错误是,将数据及时转移到全局预留区域,以此防止数据的丢失,具体步骤如下:(1)坏扇区数据转移的故障决策,包括以下两个方面:1)通过扇区读写报错,做为数据转移的一个故障决策;2)周期性扫描硬盘发现介质或者数据错误,做为数据转移的一个故障决策;(2)数据布局 在创建RAID的时候,首先要把数据区域分成多个部分,对每个部分都设置一个预留区域,当数据发生读写错误的时候,先将数据转移到对应的局部预留区域;在磁盘的尾部再设置全局预留区域,如果转移到对应的局部预留区域再发生错误,就把数据转移到全局预留区域;当转移到全局预留区域还是错误,就认为该盘失效,数据的分配以及预留区域的大小是磁盘空间而定;为了记录数据转移信息,对每个数据部分要建立一个扇区映射表,表格的每一项包含原来扇区号和新转移的扇区号,这个表格放到磁盘预留空间,使用的时候放到内存;另外,磁盘内还设置有计数组,记录每个磁盘的每个预留区域扇区数据的转移信息;对于4TB的磁盘容量,使用34位即可表示扇区数,考虑以后磁盘容量扩展,以及标志位,用64位表示一个偏移记录,对于一次转移来说,因为要表示原扇区位置和预留扇区位置,所以,需要128位来表示,其中,第一位是标志位,来表示是否有过转移;当有扇区发生读写错误的时候,记录是哪个扇区出现的错误,并增加该盘的坏扇区统计计数,在扇区映射表格里填上原始扇区号和新映射的扇区号,把数据写到预留空间,预留空间是按照时间先后顺序排序写入的,当某一块盘的坏扇区数目过多的时候,就宣告这块盘失效,把这块盘踢出阵列;为了防止扇区映射表格丢失,需要将表格备份,通过冗余提高可靠性,把备份的表格记录副本放在每个数据部分的开头位置,同步扇区映射表格副本,但是同步会影响数据转移时的性能;或采用异步备份副本,虽然异步备份可能丢失一部分记录信息,但是大部分记录会保存下来,对于丢失的部分,可以比较原本对副本进行修复,当一份记录发生错误或者丢失,就去读另一个副本,当副本也发生错误或丢失,则宣告该磁盘失效;综上所述,一个数据单元包括两份扇区映射表信息,一个数据区,一个局部预留区域;(3)读写错误分析具体步骤如下:1)读写操作先在映射表中查询此扇区是否已经记录为坏扇区;2)如果此扇区在映射表中有坏扇区记录,就到预留扇区上读写数据,并判断是否出错;否则读写该扇区的数据;3)如果读写预留扇区或者原始扇区出现错误,则判断是否可修复,判断根据RAID算法,如果一个条带错误过多,则无法修复,如果能修复,就进行数据转移;如果无法修复,就设定该盘失效;(4)周期扫描本方法引入一个周期线程,用于扫描磁盘及时发现错误,为了不影响磁盘使用性能,该线程只在设备空闲的时候进行扫描。
地址 250014 山东省济南市高新区舜雅路1036号