磁盘阵列的容错方法和装置制造方法及图纸

技术编号:6534780 阅读:224 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了磁盘阵列的容错方法和装置。一种方法包括:当磁盘阵列中的磁盘发生故障时,在所述磁盘阵列中增加热备盘,以替换该发生故障的磁盘,并以条带为单位对增加了热备盘的磁盘阵列进行重建;在被重建的当前条带发生重建读错误时,将该当前条带的标识记录到非易失性内存中,并跳过当前条带,从下一个条带继续重建,直至完成磁盘阵列的重建;针对所述非易失性内存中记录的每一条带标识,通过写方式修复与该条带标识对应的条带的重建读错误,并在完成修复后从所述非易失性内存中删除该条带标识。采用本发明专利技术,能够避免处于降级状态下的磁盘阵列由于发生重建读错误或者业务读错误而引起的问题。

【技术实现步骤摘要】

本专利技术涉及存储领域,特别涉及磁盘阵列的容错方法和装置
技术介绍
独立磁盘冗余阵列(RAID Redundant Array of Independent Disks),简称磁盘阵列,其将多个独立的磁盘结合成一个阵列,提供很好的冗余性和比单个磁盘更高的存储性能。在存储领域中,通过磁盘阵列自身的冗余性将数据直接或间接存储在多个单独的磁盘上,以达到当一个或多个磁盘故障时数据不丢失的目的,即实现了数据容错。其中,当因为某些原因比如磁盘阵列中的磁盘故障等导致磁盘阵列失去冗余性时,该磁盘阵列会处于降级状态。以磁盘阵列中的磁盘故障导致磁盘阵列失去冗余性而使该磁盘阵列处于降级状态为例,则在现有技术中,为恢复该因磁盘故障而处于降级状态的磁盘阵列的冗余性,常用的方式为增加热备盘重建的方式,具体为用热备盘替换故障的磁盘。但是,在该重建过程中,如果又发生了磁盘重建读错误,其中,重建读错误为重建过程中,重建I/O导致磁盘发生的读错误,则,停止重建,此时该磁盘阵列只能停留在降级状态, 无法回到冗余状态。一旦该磁盘阵列中的其他磁盘再发生故障时,整个磁盘阵列就会失败, 即关闭I/O通道,这不仅导致该磁盘阵列停止提供业务,还会导致该磁盘阵列之前存储的数据丢失。另外,当对处于降级状态的磁盘阵列进行业务读时,如果发生业务读错误,其中, 业务读错误为业务读写过程中,业务I/O导致磁盘发生的读错误,则,此时该磁盘阵列失败,即关闭I/O通道,这导致该磁盘阵列停止提供业务,并导致之前存储的数据丢失。
技术实现思路
本专利技术提供了涉及磁盘阵列的容错方法和装置,避免处于降级状态的磁盘阵列由于发生重建读错误或者业务读错误而引起的问题。本专利技术提供的技术方案包括一种磁盘阵列的容错方法,该方法中,当磁盘阵列中的磁盘发生故障时,在所述磁盘阵列中增加热备盘,以替换该发生故障的磁盘,并以条带为单位对增加了热备盘的磁盘阵列进行重建;其关键在于,该方法包括在被重建的当前条带发生重建读错误时,将该当前条带的标识记录到非易失性内存中,并跳过当前条带,从下一个条带继续重建,直至完成磁盘阵列的重建;针对所述非易失性内存中记录的每一条带标识,通过写方式修复与该条带标识对应的条带的重建读错误,并在完成修复后从所述非易失性内存中删除该条带标识。一种磁盘阵列的容错方法,该方法包括在对处于降级状态的磁盘阵列中的条带进行业务读的过程中,当被读的当前条带发生业务读错误时,将该当前条带的标识记录到非易失性内存中,控制该磁盘阵列保持降低状态,并继续提供业务;针对所述非易失性内存中记录的每一条带标识,通过写方式修复与该条带标识对应的条带的业务读错误,并在完成修复后从所述非易失性内存中删除该条带标识。一种磁盘阵列的容错装置,该装置包括替换单元和重建单元;所述替换单元用于当磁盘阵列中的磁盘发生故障时,在所述磁盘阵列中增加热备盘,以替换该发生故障的磁盘;所述重建单元用于以条带为单位对增加了热备盘的磁盘阵列进行重建;其关键在于,所述装置还包括记录单元,用于在被所述重建单元重建的当前条带发生重建读错误时,将该当前条带的标识记录到非易失性内存中,并触发所述重建单元跳过当前条带,从下一个条带继续重建,直至完成磁盘阵列的重建;修复单元,用于针对所述非易失性内存中记录的每一条带标识,通过写方式修复与该条带标识对应的条带的重建读错误,并在完成修复后从所述非易失性内存中删除该条带标识。一种磁盘阵列的容错装置,包括业务读处理单元、记录单元、控制单元和修复单元,其中,业务读处理单元,用于对处于降级状态的磁盘阵列中的条带进行业务读;记录单元,用于在被读的当前条带发生业务读错误时,将该当前条带的标识记录到非易失性内存中,并触发所述控制单元控制磁盘阵列继续保持降低状态,并继续提供业务;修复单元,用于针对所述非易失性内存中记录的每一条带标识,通过写方式修复与该条带标识对应的条带的业务读错误,并在完成修复后从所述非易失性内存中删除该条带标识。由以上技术方案可以看出,本专利技术中,在当前条带发生重建读错误时,并非停止重建,而是将发生重建读错误的条带记录在非易失性内存中,跳过该当前条带,从下一个条带开始继续重建,并针对每一发生重建读错误的条带,通过写方式修复该条带的重建读错误, 尽快恢复磁盘阵列的冗余性,这样,即使在重建过程中有多个磁盘出现故障,也不会导致整个磁盘阵列就会失败;还有,本专利技术中,在当前条带发生业务读错误时,也并非导致整个磁盘阵列失败, 而是将该当前条带的标识记录到非易失性内存中,返回错误命令,并控制该磁盘阵列继续提供业务读、业务写;这样,一方面保证业务连续性,另一方面避免数据被丢失的风险。附图说明图1为本专利技术实施例提供的磁盘阵列示意图;图2为本专利技术实施例提供的磁盘故障时磁盘阵列的示意3为本专利技术实施例1的实现示意图;图4为本专利技术实施例2的实现示意图;图5为本专利技术实施例提供的装置结构图;图6为本专利技术实施例提供的另一装置结构图。具体实施方式为了使本专利技术的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本专利技术进行详细描述。在实际应用中,磁盘阵列都是通过划分条带的方式实现多块磁盘的并发读写的。 图1为本专利技术提供的磁盘阵列被划分的多个条带的示意图。在图1中,一个圆柱记为一个磁盘,其并联在一起即形成磁盘阵列,图1以磁盘阵列被划分成9个大小相同的条带为例, 可以看出被划分得到的各个条带均占用了磁盘阵列中各个磁盘的存储空间。基于上面描述,下面通过两个实施例对本专利技术提供的磁盘阵列的容错方法进行描述实施例1 本实施例1中,当图1所示的磁盘阵列中的磁盘比如磁盘3发生故障时,在该磁盘阵列中增加热备盘,以替换该发生故障的磁盘3,具体如图2所示。之后,以条带为单位对增加了热备盘的磁盘阵列即图2所示的磁盘阵列进行重建。在图2所示的磁盘阵列的重建过程中,如果当前被重建的条带发生重建读错误, 则将该当前条带的标识记录到非易失性内存中,并跳过当前条带,从下一个条带继续重建, 直至完成磁盘阵列的重建,具体可参见图3。在图3中,斜线标识的条带即序号为1、3、5、6 的条带发生重建读错误,即未被重建成功,被记录在非易失性内存。可以看出,本专利技术相比于现有技术,并非由于发生重建读错误的条带而影响磁盘阵列整体的重建,而是继续从下一条带继续重建,直至完成磁盘阵列的重建,这对磁盘故障少且该故障对业务影响不大的应用比如监控存储等,能尽量减少磁盘故障对整个系统带来的风险。需要说明的是,本专利技术将发生重建读错误的条带的标识记录到非易失性内存中, 主要有以下两个目的第一,由于在重建过程中,跳过发生了重建读错误的条带,因此,该被跳过的条带上的数据是非冗余的,当后续对该条带所占用的磁盘下发读命令时,如果读取的是图2中的磁盘1和/或磁盘2,则可以正常下发读命令,以根据该读命令读取数据;如果读取的是图2中的热备盘,则不下发读命令,而是直接利用该条带所占用的除热备盘之外的其他磁盘比如图2中的磁盘1和磁盘2中的数据计算出需要从热备盘读取的数据。也即被跳过的条带所占用的除热备盘之外的其他磁盘上的数据是可以读取的,而所占用的热备盘上的数据是不能读取的,其需要根据该条带所占用的其他磁盘上的数据进行相应计算比如异或计算等得到。这便于准确判断磁盘的可读取性,并且,本专利技术将发生重建读错误本文档来自技高网...

【技术保护点】
1.一种磁盘阵列的容错方法,该方法中,当磁盘阵列中的磁盘发生故障时,在所述磁盘阵列中增加热备盘,以替换该发生故障的磁盘,并以条带为单位对增加了热备盘的磁盘阵列进行重建;其特征在于,该方法包括:在被重建的当前条带发生重建读错误时,将该当前条带的标识记录到非易失性内存中,并跳过当前条带,从下一个条带继续重建,直至完成磁盘阵列的重建;针对所述非易失性内存中记录的每一条带标识,通过写方式修复与该条带标识对应的条带的重建读错误,并在完成修复后从所述非易失性内存中删除该条带标识。

【技术特征摘要】
1.一种磁盘阵列的容错方法,该方法中,当磁盘阵列中的磁盘发生故障时,在所述磁盘阵列中增加热备盘,以替换该发生故障的磁盘,并以条带为单位对增加了热备盘的磁盘阵列进行重建;其特征在于,该方法包括在被重建的当前条带发生重建读错误时,将该当前条带的标识记录到非易失性内存中,并跳过当前条带,从下一个条带继续重建,直至完成磁盘阵列的重建;针对所述非易失性内存中记录的每一条带标识,通过写方式修复与该条带标识对应的条带的重建读错误,并在完成修复后从所述非易失性内存中删除该条带标识。2.根据权利要求1所述的方法,其特征在于,所述通过写方式修复与该条带标识对应的条带的重建读错误包括通过向与该条带标识对应的整个条带写数据来修复与该条带标识对应的条带的重建读错误;或者,确定与该条带标识对应的条带所存储数据的重要程度,如果确定出该数据的重要程度小于设定阈值,则通过以下操作修复该条带的重建读错误向该条带所占用的除热备盘之外的其他磁盘写满设定数据,并向该条带所占用的热备盘写入根据所述其他磁盘中的设定数据所计算出的数据。3.根据权利要求1所述的方法,其特征在于,该方法进一步包括当需要向与所述非易失性内存中条带标识对应的条带所占用的热备盘读取数据时,不下发读命令,利用该条带所占用的除热备盘之外的其他磁盘中的数据计算出需要从热备盘读取的数据;当需要向与所述非易失性内存中条带标识对应的条带所占用的除热备盘之外的其他磁盘读取数据时,向该其他磁盘下发读命令,以根据该读命令读取数据。4.一种磁盘阵列的容错方法,其特征在于,该方法包括在对处于降级状态的磁盘阵列中的条带进行业务读的过程中,当被读的当前条带发生业务读错误时,将该当前条带的标识记录到非易失性内存中,控制该磁盘阵列保持降低状态,并继续提供业务;针对所述非易失性内存中记录的每一条带标识,通过写方式修复与该条带标识对应的条带的业务读错误,并在完成修复后从所述非易失性内存中删除该条带标识。5.根据权利要求4所述的方法,其特征在于,所述通过写方式修复与该条带标识对应的条带的业务读错误包括通过向与该条带标识对应的整个条带写数据来修复与该条带标识对应的条带的业务读错误;或者,确定与该条带标识对应的条带所存储数据的重要程度,如果确定出该数据的重要程度小于设定阈值,则通过以下操作修复与该条带标识对应的条带的业务读错误向与该条带标识对应的条带所占用的磁盘写入设定数据。6.一种磁盘阵列的容错装置,该装置包括替换单元和重建单元;所述替换单元用于...

【专利技术属性】
技术研发人员:郑辉曹庭华
申请(专利权)人:杭州华三通信技术有限公司
类型:发明
国别省市:86

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1