一种磁盘阵列的重建方法及系统的制作方法
【专利摘要】本发明提供了一种磁盘阵列的重建方法及系统,该方法包括:预先设置磁盘出现异常的第一触发条件以及相应的磁盘恢复正常的第二触发条件;在向磁盘阵列写IO的过程中,当检测到该磁盘阵列中的任一目标磁盘满足第一触发条件时,将目标磁盘记录为异常状态,并将从目标磁盘满足第一触发条件至目标磁盘满足第二触发条件的时间间隔内的应写入目标磁盘中的目标数据的相关信息进行保存;当检测到目标磁盘满足第二触发条件时,将目标磁盘更新为重建状态,并根据所保存的目标数据的相关信息,将目标数据写入目标磁盘。因此,本方案能够提高磁盘阵列的重建效率。
【专利说明】
一种磁盘阵列的重建方法及系统
技术领域
[0001]本发明涉及计算机技术领域,特别涉及一种磁盘阵列的重建方法及系统。
【背景技术】
[0002]随着信息量的快速增长和计算机应用复杂程度的增加,存储系统的作用也愈加重要。磁盘阵列作为存储系统的重要组成部分,其稳定性和可用性是影响存储系统整体性能的主要因素。但是,在磁盘阵列的实际应用过程中,由磁盘状态异常所导致的磁盘阵列重建现象时有发生。
[0003]目前,当磁盘阵列中有成员磁盘出现异常时,常用的磁盘阵列重建方法为读取该磁盘阵列中的全部正常磁盘的条带数据,然后通过计算将缺失数据写入到在线热备磁盘中,从而实现磁盘阵列的恢复。
[0004]但是,现有的磁盘阵列重建方法会加重存储系统的负载,故磁盘阵列的重建效率较低。
【发明内容】
[0005]本发明提供了一种磁盘阵列的重建方法及系统,能够提高磁盘阵列的重建效率。
[0006]为了达到上述目的,本发明是通过如下技术方案实现的:
[0007]—方面,本发明提供了一种磁盘阵列的重建方法,预先设置磁盘出现异常的第一触发条件以及相应的磁盘恢复正常的第二触发条件,还包括:
[0008]在向磁盘阵列写1的过程中,当检测到所述磁盘阵列中的任一目标磁盘满足所述第一触发条件时,记录所述目标磁盘的状态为异常状态;
[0009]将从所述目标磁盘满足所述第一触发条件至所述目标磁盘满足所述第二触发条件的时间间隔内的应写入所述目标磁盘中的目标数据的相关信息进行保存;
[0010]当检测到所述目标磁盘满足所述第二触发条件时,将所述目标磁盘的状态更改为重建状态;
[0011 ]根据所述目标数据的相关信息,将所述目标数据写入所述目标磁盘。
[0012]进一步地,所述目标数据的相关信息,包括:目标数据的条带号;
[0013]所述根据所述目标数据的相关信息,将所述目标数据写入所述目标磁盘,包括:读取与所述目标数据的条带号相对应的写入所述磁盘阵列中的其他非异常磁盘中的第一数据;利用异或运算计算出与所述第一数据相对应的所述目标数据,并将所述目标数据写入所述目标磁盘。
[0014]进一步地,所述第一触发条件,包括:磁盘被从磁盘阵列中拔出、磁盘链路不稳定和磁盘链路闪断中的任意一种或多种。
[0015]进一步地,所述第二触发条件,包括:磁盘被插回到磁盘阵列中、磁盘链路恢复稳定和闪断的磁盘链路恢复正常中的任意一种或多种。
[0016]进一步地,所述将从所述目标磁盘满足所述第一触发条件至所述目标磁盘满足所述第二触发条件的时间间隔内的应写入所述目标磁盘中的目标数据的相关信息进行保存,包括:将从所述目标磁盘满足所述第一触发条件至所述目标磁盘满足所述第二触发条件的时间间隔内的应写入所述目标磁盘中的目标数据的相关信息写入非易失性随机访问存储器NVRAM中ο
[0017]进一步地,在所述将所述目标数据写入所述目标磁盘之后,进一步包括:更新所述目标磁盘中的超级块信息,以及将所述目标磁盘的状态更改为正常状态。
[0018]另一方面,本发明提供了一种磁盘阵列的重建系统,包括:
[0019]设置单元,用于设置磁盘出现异常的第一触发条件以及相应的磁盘恢复正常的第二触发条件;
[0020]记录单元,用于在向磁盘阵列写1的过程中,当检测到所述磁盘阵列中的任一目标磁盘满足所述第一触发条件时,记录所述目标磁盘的状态为异常状态,以及向处理单元输出目标磁盘异常信号;当检测到所述目标磁盘满足所述第二触发条件时,将所述目标磁盘的状态更改为重建状态,以及向所述处理单元输出目标磁盘重建信号;
[0021 ]所述处理单元,用于在接收到由所述记录单元发送的目标磁盘异常信号之后,将从所述目标磁盘满足所述第一触发条件至所述目标磁盘满足所述第二触发条件的时间间隔内的应写入所述目标磁盘中的目标数据的相关信息进行保存;以及在接收到由所述记录单元发送的目标磁盘重建信号之后,根据所述目标数据的相关信息,将所述目标数据写入所述目标磁盘。
[0022]进一步地,所述处理单元,具体用于在接收到由所述记录单元发送的目标磁盘异常信号之后,将从所述目标磁盘满足所述第一触发条件至所述目标磁盘满足所述第二触发条件的时间间隔内的应写入所述目标磁盘中的目标数据的条带号进行保存;以及在接收到由所述记录单元发送的目标磁盘重建信号之后,读取与所述目标数据的条带号相对应的写入所述磁盘阵列中的其他非异常磁盘中的第一数据,利用异或运算计算出与所述第一数据相对应的所述目标数据,并将所述目标数据写入所述目标磁盘。
[0023]进一步地,所述设置单元,具体用于设置磁盘出现异常的第一触发条件为磁盘被从磁盘阵列中拔出、磁盘链路不稳定和磁盘链路闪断中的任意一种或多种。
[0024]进一步地,所述设置单元,具体用于设置磁盘恢复正常的第二触发条件为磁盘被插回到磁盘阵列中、磁盘链路恢复稳定和闪断的磁盘链路恢复正常中的任意一种或多种。
[0025]进一步地,所述处理单元,具体用于将从所述目标磁盘满足所述第一触发条件至所述目标磁盘满足所述第二触发条件的时间间隔内的应写入所述目标磁盘中的目标数据的相关信息写入NVRAM中。
[0026]进一步地,所述处理单元,还用于在将所述目标数据写入所述目标磁盘之后,向所述记录单元输出目标磁盘重建完成信号,以及更新所述目标磁盘中的超级块信息;
[0027]所述记录单元,还用于在接收到由所述处理单元发送的目标磁盘重建完成信号之后,将所述目标磁盘的状态更改为正常状态。
[0028]本发明提供了一种磁盘阵列的重建方法及系统,预先设置磁盘出现异常的第一触发条件以及相应的磁盘恢复正常的第二触发条件;在向磁盘阵列写1的过程中,当检测到该磁盘阵列中的任一目标磁盘满足第一触发条件时,将目标磁盘记录为异常状态,并将从目标磁盘满足第一触发条件至目标磁盘满足第二触发条件的时间间隔内的应写入目标磁盘中的目标数据的相关信息进行保存;当检测到目标磁盘满足第二触发条件时,将目标磁盘更新为重建状态,并根据所保存的目标数据的相关信息,将目标数据写入目标磁盘。因此,本发明能够提高磁盘阵列的重建效率。
【附图说明】
[0029]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0030]图1是本发明一实施例提供的一种磁盘阵列的重建方法的流程图;
[0031]图2是本发明一实施例提供的另一种磁盘阵列的重建方法的流程图;
[0032]图3是本发明一实施例提供的一种磁盘阵列的重建系统的示意图。
【具体实施方式】
[0033]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0034]如图1所示,本发明实施例提供了一种磁盘阵列的重建方法,可以包括以下步骤:
[0035]步骤101:预先设置磁盘出现异常的第一触发条件以及相应的磁盘恢复正常的第二触发条件。
[0036]步骤102:在向磁盘阵列写1的过程中,当检测到所述磁盘阵列中的任一目标磁盘满足所述第一触发条件时,记录所述目标磁盘的状态为异常状态。
[0037]步骤103:将从所述目标磁盘满足所述第一触发条件至所述目标磁盘满足所述第二触发条件的时间间隔内的应写入所述目标磁盘中的目标数据的相关信息进行保存。
[0038]步骤104:当检测到所述目标磁盘满足所述第二触发条件时,将所述目标磁盘的状态更改为重建状态。
[0039]步骤105:根据所述目标数据的相关信息,将所述目标数据写入所述目标磁盘。
[0040]本发明实施例提供了一种磁盘阵列的重建方法,预先设置磁盘出现异常的第一触发条件以及相应的磁盘恢复正常的第二触发条件;在向磁盘阵列写1的过程中,当检测到该磁盘阵列中的任一目标磁盘满足第一触发条件时,将目标磁盘记录为异常状态,并将从目标磁盘满足第一触发条件至目标磁盘满足第二触发条件的时间间隔内的应写入目标磁盘中的目标数据的相关信息进行保存;当检测到目标磁盘满足第二触发条件时,将目标磁盘更新为重建状态,并根据所保存的目标数据的相关信息,将目标数据写入目标磁盘。因此,本发明实施例能够提高磁盘阵列的重建效率。
[0041]在一种可能的实现方式中,为了能够对磁盘数据进行快速重建,所以,所述目标数据的相关信息,包括:目标数据的条带号;
[0042]所述根据所述目标数据的相关信息,将所述目标数据写入所述目标磁盘,包括:读取与所述目标数据的条带号相对应的写入所述磁盘阵列中的其他非异常磁盘中的第一数据;利用异或运算计算出与所述第一数据相对应的所述目标数据,并将所述目标数据写入所述目标磁盘。
[0043]在一种可能的实现方式中,为了能够说明磁盘出现异常的实际情况,所以,所述第一触发条件,包括:磁盘被从磁盘阵列中拔出、磁盘链路不稳定和磁盘链路闪断中的任意一种或多种。
[0044]在一种可能的实现方式中,为了能够说明异常磁盘恢复正常的实际情况,所以,所述第二触发条件,包括:磁盘被插回到磁盘阵列中、磁盘链路恢复稳定和闪断的磁盘链路恢复正常中的任意一种或多种。
[0045]在一种可能的实现方式中,为了能够保证所保存的目标数据的相关信息安全、可靠且掉电非易失,所以,所述将从所述目标磁盘满足所述第一触发条件至所述目标磁盘满足所述第二触发条件的时间间隔内的应写入所述目标磁盘中的目标数据的相关信息进行保存,包括:将从所述目标磁盘满足所述第一触发条件至所述目标磁盘满足所述第二触发条件的时间间隔内的应写入所述目标磁盘中的目标数据的相关信息写入NVRAM(Non-Volatile Random Access Memory,非易失性随机访问存储器)中。
[0046]在一种可能的实现方式中,为了能够对重建后的磁盘的相关信息进行记录和更新,所以,在所述将所述目标数据写入所述目标磁盘之后,进一步包括:更新所述目标磁盘中的超级块信息,以及将所述目标磁盘的状态更改为正常状态。
[0047]为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
[0048]如图2所示,本发明一个实施例提供了磁盘阵列的重建方法,该方法可以包括以下步骤:
[0049]步骤201:设置磁盘出现异常的第一触发条件以及相应的磁盘恢复正常的第二触发条件。
[0050]具体地,可以设置所述第一触发条件为磁盘被从磁盘阵列中拔出、磁盘链路不稳定和磁盘链路闪断中的任意一种或多种;相应的,可以设置所述第二触发条件为磁盘被插回到磁盘阵列中、磁盘链路恢复稳定和闪断的磁盘链路恢复正常中的任意一种或多种。[0051 ]在本实施例中,当磁盘阵列中的任一磁盘出现上述磁盘异常情况时,以及相应的出现上述异常磁盘恢复正常情况时,计算机软件系统均可以实时检测到磁盘状态的变化。
[0052]举例来说,现有一个磁盘阵列RAID5,且RAID5中包含磁盘A、磁盘B、磁盘C和磁盘D四个磁盘。目前需要向RAID5中写10。
[0053]步骤202:在向RAID5写1的过程中,当检测到RAID5中的磁盘A被拔出而满足所述第一触发条件时,记录磁盘A的状态为missing。
[0054]例如,在向RAID5写1的过程中,由于实际需要,磁盘A被工作人员拔出,那么软件系统可以检测到磁盘A满足预先设定的第一触发条件,故可以记录磁盘A的状态为missing,说明磁盘A为需要进行快速重建的磁盘。
[0055]详细地,在本实施例中,在磁盘出现异常时,可以记录该磁盘的状态为missing,相应的,在异常磁盘恢复正常时,可以将该磁盘的状态由missing更改为rebuilding,以及在该磁盘重建完成之后,可以将该磁盘的状态由rebuilding更改为normal。若磁盘始终未出现异常,则其状态可以始终为normal。
[0056]此外,在本实施例中,可以将磁盘的状态信息记录在非易失性存储设备,如NVRAM中。
[0057]步骤203:将从磁盘A被拔出至磁盘A被重新插回的时间间隔内的应写入磁盘A中的条带数据的条带号写入NVRAM中。
[0058]在本实施例中,对于磁盘拔出、磁盘链路不稳及磁盘链路闪断等常见磁盘异常情况,磁盘从出现异常至恢复正常的时间间隔一般较短,故可以仅保存磁盘异常时间间隔内应写入该磁盘的数据相关信息,以实现异常磁盘的快速重建。
[0059]由于在异常磁盘恢复正常之后,可以仅对磁盘异常期间所丢失的数据进行重建,而非重建该异常磁盘中的全部数据,故大大提高了磁盘阵列的重建速度。本实施所提供的磁盘阵列重建方法,不仅可以实现磁盘阵列的快速重建,而且能够减轻存储系统的负载,以及在磁盘阵列重建时不影响正常10,尤其适用于磁盘短时间内拔出并插回、磁盘链路不稳并快速恢复及磁盘链路闪断并快速恢复等常见磁盘异常情况。
[0060]此外,对于现有的磁盘阵列重建方法,即便异常磁盘能够短时间内恢复正常,该异常磁盘仍不能被原磁盘阵列所继续利用,造成资源的浪费和不合理利用。通过本实施例所提供的磁盘阵列重建方法,异常磁盘在短时间内恢复正常后仍可以被原磁盘阵列所用,故可以有效利用磁盘资源。
[0061]在一些特殊情况下,若从磁盘异常至磁盘恢复正常的时间间隔的长短不能确定,则可以预先设置该时间间隔的适宜阈值。优选地,该设定阈值不大于5min。通过这一方式,可以避免因磁盘异常时间过长,如磁盘被拔出后始终未被插回所造成的磁盘阵列不能及时被重建等情况。
[0062]例如,预先设定阈值为5min。在磁盘出现异常时,开始保存相应的条带号,但若在达到5min时仍未能检测到该异常磁盘恢复正常,则不再保存后续的数据相关信息,并将该5min内保存的信息进行清空,以及将该异常磁盘从磁盘阵列中移除。此外,若存在热备磁盘,则可以通过现有的磁盘重建技术进行相应数据信息的重建,并将重建数据写入该热备磁盘中,并利用该热备磁盘替换掉异常磁盘。
[0063]在本实施例中,在从磁盘A被拔出至被重新插回的时间间隔内,由于磁盘A处于missing状态,故无法完成正常的数据信息写入操作,故可以将该时间间隔内应写入磁盘A中的数据的相关信息进行保存。由于直接保存数据的方式在实际情况下较为复杂且效率低,故优选的,可以选择仅保存数据的条带号,以根据条带号使相应的数据得到恢复。
[0064]例如,在磁盘A被拔出期间,原本应向磁盘A写入条带数据1,磁盘B写入条带数据2,磁盘C写入条带数据3,磁盘D写入与数据1、数据2和数据3相对应的校验数据I。由于磁盘A被拔出,故条带数据I丢失,但数据2、数据3和校验数据I被成功写入。因此,可以对条带数据I的条带号进行记录。
[0065]优选地,可以将数据的条带号写入NVRAM中,以保证条带号被写入后的安全可靠、掉电非易失。此外,若磁盘阵列中的cache缓存设备使用NVRAM作为物理介质,则也可以将数据的条带号写入cache缓存设备中。
[0066]步骤204:当检测到磁盘A被重新插回而满足所述第二触发条件时,更新磁盘A的状态为rebuilding。
[0067]例如,磁盘A在被工作人员拔出Imin后,被重新插回至RAID5中。
[0068]步骤205:读取与所述条带号相对应的写入RAID5中的其他非异常磁盘中的第一数据。
[0069]详细地,在读取非易失性存储设备中保存的条带数据的条带号之前,首先要检测该非易失性存储设备是否可用,例如,对于cache缓存设备来说,要查询其缓存电量是否充足,以确保所保存的条带号的有效性。
[0070]在本实施例中,根据保存的条带数据的条带号,可以读取RAID5内其他正常磁盘中所写入的相应数据,并通过特定算法,如异或运算计算出所述条带数据。例如,在磁盘A被重新插回之后,根据记录的条带数据I的条带号,读取写入磁盘B中的条带数据2、写入磁盘C中的条带数据3和写入磁盘D中的校验数据I。
[0071]步骤206:利用异或运算计算出与所述第一数据相对应的所述条带数据,并将所述条带数据写入磁盘A。
[0072]例如,可以根据读取到的条带数据2、条带数据3和校验数据I,通过异或运算将条带数据I重新恢复出来,再将恢复出来的条带数据I写入磁盘A。
[0073]详细地,在将条带数据写入磁盘A之后,系统可以默认自动清空在磁盘A拔出期间NVRAM中所记录的条带号。
[0074]步骤207:更新磁盘A中的超级块信息,以及更新磁盘A的状态为normal。
[0075]详细地,在完成磁盘A的重建之后,可以更新磁盘A中的超级块信息,例如,可以对相关配置信息进行更新,以便于软件系统对其识别。
[0076]如图3所示,本发明实施例提供了一种磁盘阵列的重建系统,包括:
[0077]设置单元301,用于设置磁盘出现异常的第一触发条件以及相应的磁盘恢复正常的第二触发条件;
[0078]记录单元302,用于在向磁盘阵列写1的过程中,当检测到所述磁盘阵列中的任一目标磁盘满足所述第一触发条件时,记录所述目标磁盘的状态为异常状态,以及向处理单元303输出目标磁盘异常信号;当检测到所述目标磁盘满足所述第二触发条件时,将所述目标磁盘的状态更改为重建状态,以及向所述处理单元303输出目标磁盘重建信号;
[0079]所述处理单元303,用于在接收到由所述记录单元302发送的目标磁盘异常信号之后,将从所述目标磁盘满足所述第一触发条件至所述目标磁盘满足所述第二触发条件的时间间隔内的应写入所述目标磁盘中的目标数据的相关信息进行保存;以及在接收到由所述记录单元302发送的目标磁盘重建信号之后,根据所述目标数据的相关信息,将所述目标数据写入所述目标磁盘。
[0080]在一种可能的实现方式中,所述处理单元303,具体用于在接收到由所述记录单元302发送的目标磁盘异常信号之后,将从所述目标磁盘满足所述第一触发条件至所述目标磁盘满足所述第二触发条件的时间间隔内的应写入所述目标磁盘中的目标数据的条带号进行保存;以及在接收到由所述记录单元302发送的目标磁盘重建信号之后,读取与所述目标数据的条带号相对应的写入所述磁盘阵列中的其他非异常磁盘中的第一数据,利用异或运算计算出与所述第一数据相对应的所述目标数据,并将所述目标数据写入所述目标磁盘。
[0081]在一种可能的实现方式中,所述设置单元301,具体用于设置磁盘出现异常的第一触发条件为磁盘被从磁盘阵列中拔出、磁盘链路不稳定和磁盘链路闪断中的任意一种或多种。
[0082]在一种可能的实现方式中,所述设置单元301,具体用于设置磁盘恢复正常的第二触发条件为磁盘被插回到磁盘阵列中、磁盘链路恢复稳定和闪断的磁盘链路恢复正常中的任意一种或多种。
[0083]在一种可能的实现方式中,所述处理单元303,具体用于将从所述目标磁盘满足所述第一触发条件至所述目标磁盘满足所述第二触发条件的时间间隔内的应写入所述目标磁盘中的目标数据的相关信息写入NVRAM中。
[0084]在一种可能的实现方式中,所述处理单元303,进一步用于在将所述目标数据写入所述目标磁盘之后,向所述记录单元302输出目标磁盘重建完成信号,以及更新所述目标磁盘中的超级块信息;
[0085]所述记录单元302,进一步用于在接收到由所述处理单元303发送的目标磁盘重建完成信号之后,将所述目标磁盘的状态更改为正常状态。
[0086]上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
[0087]综上所述,本发明的各个实施例至少具有如下有益效果:
[0088]1、本发明实施例中,预先设置磁盘出现异常的第一触发条件以及相应的磁盘恢复正常的第二触发条件;在向磁盘阵列写1的过程中,当检测到该磁盘阵列中的任一目标磁盘满足第一触发条件时,将目标磁盘记录为异常状态,并将从目标磁盘满足第一触发条件至目标磁盘满足第二触发条件的时间间隔内的应写入目标磁盘中的目标数据的相关信息进行保存;当检测到目标磁盘满足第二触发条件时,将目标磁盘更新为重建状态,并根据所保存的目标数据的相关信息,将目标数据写入目标磁盘。因此,本发明实施例能够提高磁盘阵列的重建效率。
[0089]2、本发明实施例中,由于在异常磁盘恢复正常之后,可以仅对磁盘异常期间所丢失的数据进行重建,而非重建该异常磁盘中的全部数据,故大大提高了磁盘阵列的重建速度。本实施所提供的磁盘阵列重建方法,不仅可以实现磁盘阵列的快速重建,而且能够减轻存储系统的负载,以及在磁盘阵列重建时不影响正常1,尤其适用于磁盘短时间内拔出并插回、磁盘链路不稳并快速恢复及磁盘链路闪断并快速恢复等常见磁盘异常情况。
[0090]3、本发明实施例中,与现有磁盘阵列重建方法所造成的异常磁盘恢复正常后不能被原磁盘阵列所用不同,通过本实施例所提出的实现方法,异常磁盘在短时间内恢复正常后仍可以被原磁盘阵列所用,故可以有效利用磁盘资源。
[0091]需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
[0092]本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
[0093]最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
【主权项】
1.一种磁盘阵列的重建方法,其特征在于,预先设置磁盘出现异常的第一触发条件以及相应的磁盘恢复正常的第二触发条件,还包括: 在向磁盘阵列写1的过程中,当检测到所述磁盘阵列中的任一目标磁盘满足所述第一触发条件时,记录所述目标磁盘的状态为异常状态; 将从所述目标磁盘满足所述第一触发条件至所述目标磁盘满足所述第二触发条件的时间间隔内的应写入所述目标磁盘中的目标数据的相关信息进行保存; 当检测到所述目标磁盘满足所述第二触发条件时,将所述目标磁盘的状态更改为重建状态; 根据所述目标数据的相关信息,将所述目标数据写入所述目标磁盘。2.根据权利要求1所述的方法,其特征在于, 所述目标数据的相关信息,包括:目标数据的条带号; 所述根据所述目标数据的相关信息,将所述目标数据写入所述目标磁盘,包括:读取与所述目标数据的条带号相对应的写入所述磁盘阵列中的其他非异常磁盘中的第一数据;利用异或运算计算出与所述第一数据相对应的所述目标数据,并将所述目标数据写入所述目标磁盘。3.根据权利要求1所述的方法,其特征在于, 所述第一触发条件,包括:磁盘被从磁盘阵列中拔出、磁盘链路不稳定和磁盘链路闪断中的任意一种或多种; 和/或, 所述第二触发条件,包括:磁盘被插回到磁盘阵列中、磁盘链路恢复稳定和闪断的磁盘链路恢复正常中的任意一种或多种。4.根据权利要求1所述的方法,其特征在于,所述将从所述目标磁盘满足所述第一触发条件至所述目标磁盘满足所述第二触发条件的时间间隔内的应写入所述目标磁盘中的目标数据的相关信息进行保存,包括:将从所述目标磁盘满足所述第一触发条件至所述目标磁盘满足所述第二触发条件的时间间隔内的应写入所述目标磁盘中的目标数据的相关信息写入非易失性随机访问存储器NVRAM中。5.根据权利要求1至4中任一所述的方法,其特征在于, 在所述将所述目标数据写入所述目标磁盘之后,进一步包括:更新所述目标磁盘中的超级块信息,以及将所述目标磁盘的状态更改为正常状态。6.一种磁盘阵列的重建系统,其特征在于,包括: 设置单元,用于设置磁盘出现异常的第一触发条件以及相应的磁盘恢复正常的第二触发条件; 记录单元,用于在向磁盘阵列写1的过程中,当检测到所述磁盘阵列中的任一目标磁盘满足所述第一触发条件时,记录所述目标磁盘的状态为异常状态,以及向处理单元输出目标磁盘异常信号;当检测到所述目标磁盘满足所述第二触发条件时,将所述目标磁盘的状态更改为重建状态,以及向所述处理单元输出目标磁盘重建信号; 所述处理单元,用于在接收到由所述记录单元发送的目标磁盘异常信号之后,将从所述目标磁盘满足所述第一触发条件至所述目标磁盘满足所述第二触发条件的时间间隔内的应写入所述目标磁盘中的目标数据的相关信息进行保存;以及在接收到由所述记录单元发送的目标磁盘重建信号之后,根据所述目标数据的相关信息,将所述目标数据写入所述目标磁盘。7.根据权利要求6所述的磁盘阵列的重建系统,其特征在于, 所述处理单元,具体用于在接收到由所述记录单元发送的目标磁盘异常信号之后,将从所述目标磁盘满足所述第一触发条件至所述目标磁盘满足所述第二触发条件的时间间隔内的应写入所述目标磁盘中的目标数据的条带号进行保存;以及在接收到由所述记录单元发送的目标磁盘重建信号之后,读取与所述目标数据的条带号相对应的写入所述磁盘阵列中的其他非异常磁盘中的第一数据,利用异或运算计算出与所述第一数据相对应的所述目标数据,并将所述目标数据写入所述目标磁盘。8.根据权利要求6所述的磁盘阵列的重建系统,其特征在于, 所述设置单元,具体用于设置磁盘出现异常的第一触发条件为磁盘被从磁盘阵列中拔出、磁盘链路不稳定和磁盘链路闪断中的任意一种或多种; 和/或, 所述设置单元,具体用于设置磁盘恢复正常的第二触发条件为磁盘被插回到磁盘阵列中、磁盘链路恢复稳定和闪断的磁盘链路恢复正常中的任意一种或多种。9.根据权利要求6所述的磁盘阵列的重建系统,其特征在于,所述处理单元,具体用于将从所述目标磁盘满足所述第一触发条件至所述目标磁盘满足所述第二触发条件的时间间隔内的应写入所述目标磁盘中的目标数据的相关信息写入NVRAM中。10.根据权利要求6至9中任一所述的磁盘阵列的重建系统,其特征在于, 所述处理单元,进一步用于在将所述目标数据写入所述目标磁盘之后,向所述记录单元输出目标磁盘重建完成信号,以及更新所述目标磁盘中的超级块信息; 所述记录单元,进一步用于在接收到由所述处理单元发送的目标磁盘重建完成信号之后,将所述目标磁盘的状态更改为正常状态。
【文档编号】G06F11/07GK105892950SQ201610202531
【公开日】2016年8月24日
【申请日】2016年4月1日
【发明人】王宜燕
【申请人】浪潮电子信息产业股份有限公司