一种raid5数据重建的方法及装置的制作方法

文档序号:6441078阅读:333来源:国知局
专利名称:一种raid5数据重建的方法及装置的制作方法
技术领域
本发明涉及数据存储技术,特别涉及一种RAID5数据重建的方法及装置。
背景技术
独立冗余磁盘阵列 RAID (Redundant Array of Independent Disk)是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),用于提供比单个硬盘更高的存储性能与数据备份能力。根据磁盘陈列的不同组合方式,可以将RAID 分为不同的级别。常用的 RAID 级别有RAID0、RAIDl、RAID2、RAID3、RAID4、RAID5、RAID6、 RAID01、RAIDlO等,不同的RAID级别对应于不同的性能、容量和可靠性。对于RAID类型为RAID5的磁盘阵列是一种存储性能、数据安全和存储成本兼顾的存储技术解决方案。RAID5不对存储的数据进行备份,而是把数据和相应的奇偶校验信息存储到组成RAID5的各个磁盘中,并且奇偶校验信息和对应的数据分别存储在不同的磁盘上,冗余校验数据均衡分布与所有磁盘中。当RAID5中的一个数据盘发生损坏以后,仍然可以向外界提供正常的读写服务,此时RAID处于降级或临界状态。如果再有一个数据盘失效后,则整个阵列将处于不可用的状态。为避免不可用状态的出现,RAID5 —般会添加一块或多块额外的数据盘作为备用盘,当某个数据盘失效以后,可以启动数据盘重建过程,根据正常数据盘中的数据计算失效盘中的数据,并将失效盘中的数据存储到备用盘中。在数据重建以后,备用盘会自动顶替失效的数据盘进行工作,达到与原阵列一样的状态。图1为现有技术中的RAID5数据重建结构示意图。如图1所示,RAID5包括了 4 块数据盘和1块备用盘。其中,4块数据盘分别为Diskl、Disk2、Disk3和Disk4;备用盘为 Disk5。当数据盘Diskl、Disk2、Disk3和Disk4正常工作时,备用盘Disk5上没有数据,此时备用盘Disk5处于空闲状态;当RAID5中的一块数据盘发生损坏以后,例如当数据盘Disk4 失效后,备用盘Disk5才会顶替Disk4工作,并重建阵列,即重新计算Disk4中的数据并检验正确后,将Disk4中的数据写入到备用盘Disk5中。在实现本发明的过程中,发明人发现现有技术中至少存在如下问题在目前的RAID5数据重建方法中,如果正常数据盘中的数据发生错误,则无法计算失效盘中的数据,从而导致RAID5数据重建失败。

发明内容
有鉴于此,本发明的主要目的在于提供一种RAID5数据重建的方法,可确保当正常数据盘中的数据发生错误时,能够完成RAID5的数据重建。本发明的另一目的在于提供一种RAID5数据重建的装置,可确保当正常数据盘中的数据发生错误时,能够完成RAID5的数据重建。为达到上述目的,本发明的技术方案是这样实现的一种RAID5数据重建的方法,该方法包括A、在独立冗余磁盘阵列RAID5的数据重建过程中,当一个正常数据盘中有错误数据发生时,判断所述RAID5中的损坏数据盘中与所述错误数据对应的条带数据是否可以进行读操作,若是,则在所述损坏数据盘中读取与所述错误数据对应的所述条带数据;B、将所述损坏数据盘中与所述错误数据对应的条带数据存储到备用数据盘中。一种RAID5数据修复装置,包括判断单元,用于在独立冗余磁盘阵列RAID5的数据重建过程中,当一个正常数据盘中有错误数据发生时,判断所述RAID5中的损坏数据盘中与所述错误数据对应的条带数据是否可以进行读操作,如果所述损坏数据盘中与所述错误数据对应的所述条带数据可以进行读操作,向读取单元发送一个第一读取指令,如果所述损坏数据盘中与所述错误数据对应的所述条带数据不可以进行读操作,向下电上电单元发送一个下电上电指令;所述读取单元,用于在收到所述第一读取指令之后,在所述损坏数据盘中读取与所述错误数据对应的所述条带数据,将所述损坏数据盘中读取与所述错误数据对应的所述条带数据发送给修复单元和存储单元;所述修复单元,用于根据所述RAID5中除发生错误数据的正常数据盘以外的其他正常数据盘中与所述错误数据对应的条带数据,以及所述损坏数据盘中与所述错误数据对应的条带数据,修复所述错误数据;所述存储单元,用于将接收到的所述损坏数据盘中与所述错误数据对应的条带数据存储到备用数据盘中。可见,采用本发明的技术方案,在RAID5的数据重建过程中,当一个正常数据盘中有错误数据发生时,判断RAID5中的损坏数据盘中与错误数据对应的条带数据是否可以进行读操作,若是,则在损坏数据盘中读取与错误数据对应的条带数据,并将损坏数据盘中与错误数据对应的条带数据存储到备用数据盘中。本发明提出的RAID5数据重建的方法及装置,可确保当正常数据盘中的数据发生错误时,能够完成RAID5的数据重建;再有,本发明所述方法实现起来简单方便,便于普及。


图1为现有技术中的RAID5数据重建结构示意图。图2为本发明RAID5数据重建的方法流程图。图3为本发明修复正常数据盘中发生错误的数据的方法流程图。图4为本发明RAID5数据重建的装置结构示意图。
具体实施例方式针对现有技术中存在的问题,本发明中提出一种改进后的RAID5数据修复方案, 可确保当正常数据盘中的数据发生错误时,能够完成RAID5的数据修复。为使本发明的技术方案更加清楚、明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。图2为本发明RAID5数据重建的方法流程图。如图2所示,包括以下步骤步骤201,在独立冗余磁盘阵列RAID5的数据重建过程中,当一个正常数据盘中有错误数据发生时,判断RAID5中的损坏数据盘中与错误数据对应的条带数据是否可以进行读操作。
在本步骤中,如图1所示,例如RAID5中的数据盘Disk3发生损坏,在RAID5的数据重建过程中,假设正常数据盘Diskl中的数据Dl发生错误时,判断损坏数据盘Disk3中与错误数据Dl对应的条带数据D3是否可以进行读操作。步骤202,若是,则在损坏数据盘中读取与错误数据对应的条带数据。在本步骤中,如果损坏数据盘Disk3中与错误数据Dl对应的条带数据D3可以进行读操作,则在损坏数据盘Disk3中读取与错误数据Dl对应的条带数据D3。步骤203,将损坏数据盘中与错误数据对应的条带数据存储到备用数据盘中。在本步骤中,如图1所示,在损坏数据盘Disk3中读取与错误数据Dl对应的条带数据D3之后,将D3存储到备用数据盘Disk5中。进一步的,在本发明的具体实施例子中,在步骤201之后以及在步骤203之前还包括如下步骤步骤204,若RAID5中的损坏数据盘中与错误数据对应的条带数据不可以进行读操作,对损坏数据盘进行下电上电操作。如图1所示,当RAID5中的损坏数据盘Disk3不能做任何读写操作时,很多时候通过对损坏数据盘重新下电上电操作之后又可以对该损坏数据盘再次进行读写操作。因此, 在本步骤中,如果损坏数据盘Disk3中与错误数据Dl对应的条带数据D3不可以进行读操作,对损坏数据盘Disk3进行下电上电操作。步骤205,判断损坏数据盘中与错误数据对应的条带数据是否可以进行读操作。步骤206,若是,则在损坏数据盘中读取与错误数据对应的所述条带数据。此外,如果损坏数据盘中与错误数据对应的条带数据不可以进行读操作时,则 RAID5数据重建失败。步骤207,将损坏数据盘中与错误数据对应的条带数据存储到备用数据盘中。根据上述的描述可知,通过上述的步骤201 207,可以实现在RAID5的数据重建过程中,当正常数据盘中的数据发生错误时,通过读取损坏数据盘中的数据从而完成RAID5 的数据重建。较佳地,在步骤203或者步骤207之后,在本发明的技术方案中进一步提出根据 RAID5中除发生错误数据的正常数据盘以外的其他正常数据盘中与错误数据对应的条带数据,以及损坏数据盘中与错误数据对应的条带数据,修复正常数据盘中发生错误的数据,可以在完成RAID5数据重建之后,进一步修复正常数据盘中发生错误的数据。图3为本发明修复正常数据盘中发生错误的数据的方法流程图。如图3所示,所述修复正常数据盘中发生错误的数据的方法可包括如下所述的步骤步骤301,将RAID5中除发生错误数据的正常数据盘以外的其他正常数据盘中与错误数据对应的条带数据,以及损坏数据盘中与错误数据对应的条带数据进行异或计算, 得到与错误数据对应的正确数据。具体地,将RAID5中除发生错误数据的正常数据盘Diskl以外的其他正常数据盘Disk2和Disk4中与错误数据Dl对应的条带数据D2和P1,以及损坏数据盘Disk3中与错误数据Dl对应的条带数据D3进行异或计算,得到与错误数据Dl对应的正确数据。在如图1所示的RAID5中,PU P2、P3和P4为数据校验位。其中,P1=D1 D2 D3; P2=D4 D5 D6; P3=D7 D8 D9;
6P4=D10十Dll十D12。例如,在本发明的具体实施例中,Dl = 101,D2 = 011,D3 = 110,Pl= Dl十D2十D3=101十011十110=000,在RAID5的数据重建过程中,假设Diskl中的数据Dl发生错误,如果损坏数据盘Disk3中与错误数据Dl对应的条带数据D3可以进行读操作,则在损坏数据盘Disk3中读取与错误数据Dl对应的条带数据D3,将D2、D3和Pl进行异或计算,得到与错误数据Dl对应的正确数据Dl',即 D1'=D2十D3 P1=011 十 110十 000=101。步骤302,在发生错误数据的正常数据盘中将正确数据替换错误数据。具体地,在根据D2、D3和Pl计算得出与错误数据Dl对应的正确数据Dl'之后, 在发生错误数据的正常数据盘中将正确数据Dl'替换错误数据D1。本发明提出的RAID5数据重建的方法,在RAID5的数据重建过程中,当一个正常数据盘中有错误数据发生时,判断损坏数据盘中与错误数据对应的条带数据是否可以进行读操作,若是,则在损坏数据盘中读取与错误数据对应的条带数据,并将损坏数据盘中与错误数据对应的条带数据存储到备用数据盘中。本发明提出的RAID5数据重建的方法,可确保当正常数据盘中的数据发生错误时,能够完成RAID5的数据重建;再有,本发明所述方法实现起来简单方便,便于普及。图4为本发明RAID5数据重建的装置结构示意图。如图4所示,包括判断单元401,用于在独立冗余磁盘阵列RAID5的数据重建过程中,当一个正常数据盘中有错误数据发生时,判断所述RAID5中的损坏数据盘中与所述错误数据对应的条带数据是否可以进行读操作,若是,向读取单元402发送一个第一读取指令,若否,向下电上电单元403发送一个下电上电指令;所述读取单元402,用于在收到所述第一读取指令之后,在所述损坏数据盘中读取与所述错误数据对应的所述条带数据,将所述损坏数据盘中与所述错误数据对应的所述条带数据发送给存储单元404 ;所述存储单元404,用于将接收到的所述损坏数据盘中与所述错误数据对应的条带数据存储到备用数据盘中。进一步的,所述下电上电单元403,用于在接收到所述下电上电指令之后,对所述损坏数据盘进行下电上电操作,并向所述判断单元401发送一个判断指令;所述判断单元401,还用于在接收到所述判断指令之后,判断所述损坏数据盘中与所述错误数据对应的条带数据是否可以进行读操作,若是,则向所述读取单元402发送一个第二读取指令;所述读取单元402,还用于在接收到所述第二读取指令之后,在所述损坏数据盘中读取与所述错误数据对应的所述条带数据,将所述损坏数据盘中与所述错误数据对应的所述条带数据发送给所述存储单元404 ;所述存储单元404,用于将接收到的所述损坏数据盘中与所述错误数据对应的条带数据存储到备用数据盘中。进一步的,所述装置还包括修复单元405 ;所述读取单元402,还用于将所述损坏数据盘中与所述错误数据对应的所述条带数据发送给所述修复单元405 ;所述修复单元405,用于根据所述RAID5中除发生错误数据的正常数据盘以外的其他正常数据盘中与所述错误数据对应的条带数据,以及所述损坏数据盘中与所述错误数据对应的条带数据,修复所述错误数据。进一步的,所述修复单元405包括计算子单元4051,用于将所述RAID5中除发生错误数据的正常数据盘以外的其他正常数据盘中与所述错误数据对应的条带数据,以及所述损坏数据盘中与所述错误数据对应的条带数据进行异或计算,得到与所述错误数据对应的正确数据,并将所述正确数据发送给替换子单元4052 ;所述替换子单元4052,用于在所述发生错误数据的正常数据盘中将所述正确数据替换所述错误数据。本发明提出的RAID5数据重建的装置,在RAID5的数据重建过程中,当一个正常数据盘中有错误数据发生时,判断单元判断损坏数据盘中与错误数据对应的条带数据是否可以进行读操作,若是,读取单元在损坏数据盘中读取与错误数据对应的条带数据,并通过存储单元将损坏数据盘中与错误数据对应的条带数据存储到备用数据盘中。本发明提出的 RAID5数据重建的装置,可确保当正常数据盘中的数据发生错误时,能够完成RAID5的数据重建;再有,本发明所述方法实现起来简单方便,便于普及。图4所示装置实施例的具体工作流程请参照图2所示方法实施例中的相应说明, 不再赘述。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种RAID5数据重建的方法,其特征在于,包括A、在独立冗余磁盘阵列RAID5的数据重建过程中,当一个正常数据盘中有错误数据发生时,判断所述RAID5中的损坏数据盘中与所述错误数据对应的条带数据是否可以进行读操作,若是,则在所述损坏数据盘中读取与所述错误数据对应的所述条带数据;B、将所述损坏数据盘中与所述错误数据对应的条带数据存储到备用数据盘中。
2.根据权利要求1所述的方法,其特征在于,在步骤B之前还包括若否,对所述损坏数据盘进行下电上电操作;判断所述损坏数据盘中与所述错误数据对应的条带数据是否可以进行读操作,若是, 则在所述损坏数据盘中读取与所述错误数据对应的所述条带数据;将所述损坏数据盘中与所述错误数据对应的所述条带数据存储到所述备用数据盘中。
3.根据权利要求1所述的方法,在步骤A之后还包括根据所述RAID5中除发生错误数据的正常数据盘以外的其他正常数据盘中与所述错误数据对应的条带数据,以及所述损坏数据盘中与所述错误数据对应的条带数据,修复所述错误数据。
4.根据权利要求3所述的方法,其特征在于,具体包括将所述RAID5中除发生错误数据的正常数据盘以外的其他正常数据盘中与所述错误数据对应的条带数据,以及所述损坏数据盘中与所述错误数据对应的条带数据进行异或计算,得到与所述错误数据对应的正确数据;在所述发生错误数据的正常数据盘中将所述正确数据替换所述错误数据。
5.一种RAID5数据修复装置,其特征在于,包括判断单元,用于在独立冗余磁盘阵列RAID5的数据重建过程中,当一个正常数据盘中有错误数据发生时,判断所述RAID5中的损坏数据盘中与所述错误数据对应的条带数据是否可以进行读操作,若是,向读取单元发送一个第一读取指令,若否,向下电上电单元发送一个下电上电指令;所述读取单元,用于在收到所述第一读取指令之后,在所述损坏数据盘中读取与所述错误数据对应的所述条带数据,将所述损坏数据盘中与所述错误数据对应的所述条带数据发送给存储单元;所述存储单元,用于将接收到的所述损坏数据盘中与所述错误数据对应的条带数据存储到备用数据盘中。
6.根据权利要求5所述的装置,其特征在于,所述下电上电单元,用于在接收到所述下电上电指令之后,对所述损坏数据盘进行下电上电操作,并向所述判断单元发送一个判断指令;所述判断单元,还用于在接收到所述判断指令之后,判断所述损坏数据盘中与所述错误数据对应的条带数据是否可以进行读操作,若是,则向所述读取单元发送一个第二读取指令;所述读取单元,还用于在接收到所述第二读取指令之后,在所述损坏数据盘中读取与所述错误数据对应的所述条带数据,将所述损坏数据盘中与所述错误数据对应的所述条带数据发送给所述存储单元;所述存储单元,用于将接收到的所述损坏数据盘中与所述错误数据对应的条带数据存储到备用数据盘中。
7.根据权利要求5所述的装置,其特征在于,所述装置还包括修复单元;所述读取单元,还用于将所述损坏数据盘中与所述错误数据对应的所述条带数据发送给所述修复单元;所述修复单元,用于根据所述RAID5中除发生错误数据的正常数据盘以外的其他正常数据盘中与所述错误数据对应的条带数据,以及所述损坏数据盘中与所述错误数据对应的条带数据,修复所述错误数据。
8.根据权利要求7所述的装置,其特征在于,所述修复单元包括计算子单元,用于将所述RAID5中除发生错误数据的正常数据盘以外的其他正常数据盘中与所述错误数据对应的条带数据,以及所述损坏数据盘中与所述错误数据对应的条带数据进行异或计算,得到与所述错误数据对应的正确数据,并将所述正确数据发送给替换子单元;所述替换子单元,用于在所述发生错误数据的正常数据盘中将所述正确数据替换所述错误数据。
全文摘要
本发明提出一种RAID5数据重建的方法及装置,所述方法包括在独立冗余磁盘阵列RAID5的数据重建过程中,当一个正常数据盘中有错误数据发生时,判断DAID5中的损坏数据盘中与所述错误数据对应的条带数据是否可以进行读操作;若是,则在所述损坏数据盘中读取与所述错误数据对应的所述条带数据;将所述损坏数据盘中与所述错误数据对应的条带数据存储到备用数据盘中。和现有技术相比,本发明提出的RAID5数据重建的方法及装置,可确保当正常数据盘中的数据发生错误时,能够完成RAID5的数据重建。
文档编号G06F11/00GK102411516SQ201110415459
公开日2012年4月11日 申请日期2011年12月13日 优先权日2011年12月13日
发明者肖勇, 金振成 申请人:云海创想信息技术(天津)有限公司, 云海创想信息技术(无锡)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1