一种磁盘阵列容错装置的制造方法
【技术领域】
[0001]本发明涉及磁盘存储技术领域,具体涉及一种磁盘阵列容错装置。
【背景技术】
[0002]独立磁盘冗余阵列,简称磁盘阵列,其将多个独立的磁盘结合成一个阵列,提供很好的冗余性和比单个磁盘更高的存储性能。在存储领域中,通过磁盘阵列自身的冗余性将数据直接或间接存储在多个单独的磁盘上,以达到当一个或多个磁盘故障时数据不丢失的目的,即实现了数据容错。
[0003]其中,当因为某些原因比如磁盘阵列中的磁盘故障等导致磁盘阵列失去冗余性时,该磁盘阵列会处于降级状态。以磁盘阵列中的磁盘故障导致磁盘阵列失去冗余性而使该磁盘阵列处于降级状态为例,则在现有技术中,为恢复该因磁盘故障而处于降级状态的磁盘阵列的冗余性,常用的方式为增加热备盘重建的方式,具体为:用热备盘替换故障的磁盘。但是,在该重建过程中,如果又发生了磁盘重建读错误,其中,重建读错误为重建过程中,重建I/O导致磁盘发生的读错误,则,停止重建,此时该磁盘阵列只能停留在降级状态,无法回到冗余状态。一旦该磁盘阵列中的其他磁盘再发生故障时,整个磁盘阵列就会失败,即关闭I/O通道,这不仅导致该磁盘阵列停止提供业务,还会导致该磁盘阵列之前存储的数据丢失。
[0004]另外,当对处于降级状态的磁盘阵列进行业务读时,如果发生业务读错误,其中,业务读错误为:业务读写过程中,业务I/o导致磁盘发生的读错误,则,此时该磁盘阵列失败,即关闭I/o通道,这导致该磁盘阵列停止提供业务,并导致之前存储的数据丢失。
【发明内容】
[0005]本发明的目的在于提供一种磁盘阵列容错装置,避免处于降级状态的磁盘阵列由于发生重建读错误或者业务读错误而引起的问题。
[0006]为实现上述目的,本发明采用了以下技术方案:包括替换单元、重建单元、记录单元、处理单元、修复单元和恢复单元;
所述替换单元,用于当磁盘阵列中的磁盘发生故障时,在所述磁盘阵列中增加热备盘,以替换该发生故障的磁盘;
所述重建单元,用于以条带为单位对增加了热备盘的磁盘阵列进行重建;
所述记录单元,用于在被所述重建单元重建的当前条带发生重建读错误时,将该当前条带的标识记录到非易失性内存中,并触发所述重建单元跳过当前条带,从下一个条带继续重建,直至完成磁盘阵列的重建;
所述处理单元,用于当需要向与所述非易失性内存中条带标识对应的条带所占用的热备盘读取数据时,不下发读命令,利用该条带所占用的除热备盘之外的其他磁盘中的数据计算出需要从热备盘读取的数据;当需要向与所述非易失性内存中条带标识对应的条带所占用的除热备盘之外的其他磁盘读取数据时,向该其他磁盘下发读命令,以根据该读命令读取数据;
所述修复单元,用于针对所述非易失性内存中记录的每一条带标识,通过写方式修复与该条带标识对应的条带的重建读错误,并在完成修复后从所述非易失性内存中删除该条带标识;
所述恢复单元,用于当磁盘修复数据出现错误或删除了标识错误时,将该数据恢复到修复之前的数据。
[0007]进一步的,所述修复单元通过向与该条带标识对应的整个条带写数据来修复与该条带标识对应的条带的业务读错误;或者,确定与该条带标识对应的条带所存储数据的重要程度,如果确定出该数据的重要程度小于设定阈值,则通过以下操作修复与该条带标识对应的条带的业务读错误:向与该条带标识对应的条带所占用的磁盘写入设定数据。
[0008]由上述技术方案可知,本发明通过写方式修复该条带的重建读错误,尽快恢复磁盘阵列的冗余性,避免重建过程中多个磁盘出现故障而导致整个磁盘阵列失败的情况发生。在当前条带发生业务读错误时,可将该当前条带的标识记录到非易失性内存中,并控制该磁盘阵列继续提供业务读写,不仅保证了业务连续性而且避免了数据被丢失的风险。
【附图说明】
[0009]图1是本发明的结构示意图。
【具体实施方式】
[0010]下面结合附图对本发明做进一步说明:
如图1所示,本实施例的磁盘阵列容错装置,包括替换单元、重建单元、记录单元、处理单元、修复单元和恢复单元;
替换单元,用于当磁盘阵列中的磁盘发生故障时,在磁盘阵列中增加热备盘,以替换该发生故障的磁盘;重建单元,用于以条带为单位对增加了热备盘的磁盘阵列进行重建;记录单元,用于在被重建单元重建的当前条带发生重建读错误时,将该当前条带的标识记录到非易失性内存中,并触发重建单元跳过当前条带,从下一个条带继续重建,直至完成磁盘阵列的重建;处理单元,用于当需要向与非易失性内存中条带标识对应的条带所占用的热备盘读取数据时,不下发读命令,利用该条带所占用的除热备盘之外的其他磁盘中的数据计算出需要从热备盘读取的数据;当需要向与非易失性内存中条带标识对应的条带所占用的除热备盘之外的其他磁盘读取数据时,向该其他磁盘下发读命令,以根据该读命令读取数据;修复单元,用于针对非易失性内存中记录的每一条带标识,通过写方式修复与该条带标识对应的条带的重建读错误,并在完成修复后从非易失性内存中删除该条带标识;恢复单元,用于当磁盘修复数据出现错误或删除了标识错误时,将该数据恢复到修复之前的数据。
[0011]本实施例中,修复单元通过向与该条带标识对应的整个条带写数据来修复与该条带标识对应的条带的业务读错误;或者,确定与该条带标识对应的条带所存储数据的重要程度,如果确定出该数据的重要程度小于设定阈值,则通过以下操作修复与该条带标识对应的条带的业务读错误:向与该条带标识对应的条带所占用的磁盘写入设定数据。
[0012]本实施例中,假设有三个磁盘,分别为磁盘1、磁盘2和磁盘3,当磁盘阵列中的磁盘比如磁盘3发生故障时,(在该磁盘阵列中增加热备盘,以替换该发生故障的磁盘3),以条带为单位对增加了热备盘的磁盘阵列进行重建。该磁盘阵列的重建过程中,如果当前被重建的条带发生重建读错误,则将该当前条带的标识记录到非易失性内存中,并跳过当前条带,从下一个条带继续重建,直至完成磁盘阵列的重建,而未被重建成功的条带磁盘,被记录在非易失性内存中,当磁盘出线重建错误时,其磁盘中的数据恢复为重建之前的数据进行再次重建。可以看出,本发明相比于现有技术,并非由于发生重建读错误的条带而影响磁盘阵列整体的重建,而是继续从下一条带继续重建,直至完成磁盘阵列的重建,这对磁盘故障少且该故障对业务影响不大的应用比如监控存储等,能尽量减少磁盘故障对整个系统带来的风险。
[0013]以上所述的实施例仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案作出的各种变形和改进,均应落入本发明权利要求书确定的保护范围内。
【主权项】
1.一种磁盘阵列容错装置,其特征在于:包括替换单元、重建单元、记录单元、处理单元、修复单元和恢复单元; 所述替换单元,用于当磁盘阵列中的磁盘发生故障时,在所述磁盘阵列中增加热备盘,以替换该发生故障的磁盘; 所述重建单元,用于以条带为单位对增加了热备盘的磁盘阵列进行重建; 所述记录单元,用于在被所述重建单元重建的当前条带发生重建读错误时,将该当前条带的标识记录到非易失性内存中,并触发所述重建单元跳过当前条带,从下一个条带继续重建,直至完成磁盘阵列的重建; 所述处理单元,用于当需要向与所述非易失性内存中条带标识对应的条带所占用的热备盘读取数据时,不下发读命令,利用该条带所占用的除热备盘之外的其他磁盘中的数据计算出需要从热备盘读取的数据;当需要向与所述非易失性内存中条带标识对应的条带所占用的除热备盘之外的其他磁盘读取数据时,向该其他磁盘下发读命令,以根据该读命令读取数据; 所述修复单元,用于针对所述非易失性内存中记录的每一条带标识,通过写方式修复与该条带标识对应的条带的重建读错误,并在完成修复后从所述非易失性内存中删除该条带标识; 所述恢复单元,用于当磁盘修复数据出现错误或删除了标识错误时,将该数据恢复到修复之前的数据。2.根据权利要求1所述的磁盘阵列容错装置,其特征在于:所述修复单元通过向与该条带标识对应的整个条带写数据来修复与该条带标识对应的条带的业务读错误;或者,确定与该条带标识对应的条带所存储数据的重要程度,如果确定出该数据的重要程度小于设定阈值,则通过以下操作修复与该条带标识对应的条带的业务读错误:向与该条带标识对应的条带所占用的磁盘写入设定数据。
【专利摘要】本发明涉及一种磁盘阵列容错装置,包括替换单元、重建单元、记录单元、处理单元、修复单元和恢复单元;所述替换单元经重建单元与记录单元相连,所述记录单元通过修复单元与恢复单元相连,所述处理单元与记录单元相连,所述恢复单元,用于当磁盘修复数据出现错误或删除了标识错误时,将该数据恢复到修复之前的数据。本发明通过写方式修复该条带的重建读错误,尽快恢复磁盘阵列的冗余性,避免重建过程中多个磁盘出现故障而导致整个磁盘阵列失败的情况发生。在当前条带发生业务读错误时,可将该当前条带的标识记录到非易失性内存中,并控制该磁盘阵列继续提供业务读写,不仅保证了业务连续性而且避免了数据被丢失的风险。
【IPC分类】G06F11/16, G06F11/07
【公开号】CN105183589
【申请号】CN201510546906
【发明人】宋旭东
【申请人】安徽欧迈特数字技术有限责任公司
【公开日】2015年12月23日
【申请日】2015年8月31日