一种硬盘故障的处理方法及装置制造方法

文档序号:6638371阅读:123来源:国知局
一种硬盘故障的处理方法及装置制造方法
【专利摘要】本发明实施例提供一种硬盘故障的处理方法及装置,涉及存储【技术领域】,能够解决现有技术中由于硬盘上报故障有延迟,不能及时对硬盘故障进行处理而导致的硬盘数据丢失,使得存储系统可靠性差的问题。具体方案为:接收硬盘上报的故障信息,故障信息包括产生坏道的扇区的地址信息,并记录扇区的地址信息,在扇区修复成功后,根据地址信息周期性地对扇区进行扫描,确定扇区在修复成功后是否再次产生坏道,若扇区产生坏道的次数达到次数阈值,则对扇区所在的数据块进行数据重构。本发明实施例用于处理硬盘故障。
【专利说明】一种硬盘故障的处理方法及装置

【技术领域】
[0001]本发明涉及存储【技术领域】,尤其涉及一种硬盘故障的处理方法及装置。

【背景技术】
[0002]独立磁盘冗余阵列(RedundantArray of Independent Disks,RAID),是一种把多块独立的磁盘或硬盘组合起来形成的一个磁盘组或硬盘组,也可以称为逻辑硬盘,是一种高端存储阵列。随着高端存储系统对存储阵列中硬盘的可靠性要求越来越高,高端存储阵列通过在多个硬盘上同时写入和读取数据,来提高存储系统的数据吞吐量,增加平均故障间隔时间,并通过存储镜像备份或校验数据等相关冗余数据来增加容错功能,例如当存储阵列中某一硬盘故障时,可以根据其它硬盘中的冗余数据恢复故障硬盘中的数据,避免故障硬盘中数据的丢失,从而提高了存储系统的可靠性。
[0003]目前,高端存储阵列中的硬盘大多还是机械硬盘,而由于电压不稳定,非正常关机,高温,读写时震动等原因,可能导致硬盘中的扇区产生坏道。若硬盘已经存在坏道,则当上层主机业务读取坏道中的数据时,才会触发硬盘通过自身检测机制发现坏道,并将硬盘故障上报给存储阵列中的故障处理装置例如控制器。也就是说,硬盘不会在坏道出现后立即上报硬件故障,直至上层主机业务读取该坏道时才会上报硬盘故障,即硬盘上报故障有延迟。由于在硬盘上报故障后存储阵列中的控制器等才能对硬盘故障进行相应处理,且硬盘上报故障存在延迟,因而控制器不能及时对硬盘故障进行处理。若在硬盘产生坏道之后,上报硬盘故障之前,存储阵列中存储该坏道中相关冗余数据所在的其它硬盘也发生故障,则无法根据冗余数据对该坏道进行修复,无法恢复坏道中的数据,从而会造成故障硬盘中的数据丢失,降低了存储系统的可靠性。


【发明内容】

[0004]本发明实施例提供一种硬盘故障的处理方法及装置,能够解决现有技术中由于硬盘上报故障有延迟,不能及时对硬盘故障进行处理而导致的硬盘数据丢失,使得存储系统可靠性差的问题。
[0005]为达到上述目的,本发明采用如下技术方案:
[0006]第一方面,提供一种硬盘故障的处理方法,包括:
[0007]接收硬盘上报的故障信息,所述故障信息包括产生坏道的扇区的地址信息,并记录所述扇区的地址信息;
[0008]在所述扇区修复成功后,根据所述地址信息周期性地对所述扇区进行扫描,确定所述扇区在修复成功后是否再次产生坏道;
[0009]若所述扇区产生坏道的次数达到次数阈值,则对所述扇区所在的数据块进行数据重构。
[0010]结合第一方面,在第一方面的第一种可能实现的方式中,所述对所述扇区所在的数据块进行数据重构包括:
[0011]将所述坏道所在的数据块迀移至本硬盘的空闲区域或除所述硬盘以外的其它硬盘的空闲区域,并隔离所述硬盘中所述数据块。
[0012]结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能实现的方式中,所述对所述扇区所在的数据块进行数据重构包括:
[0013]若所述扇区产生坏道的次数达到所述次数阈值,则对所述扇区继续进行修复;
[0014]若对所述扇区继续修复成功,则对所述扇区进行校验;
[0015]若校验失败,则将当前所述硬盘单位时间内校验失败的次数与预设阈值进行比较,以在所述次数小于或等于所述预设阈值时对所述扇区所在的数据块进行数据重构。
[0016]结合第一方面的第一种可能的实现方式,在第一方面的第三种可能实现的方式中,所述方法还包括:
[0017]确定当前所述硬盘隔离的数据块的数量是否大于预设隔离数量;
[0018]若大于,则迀移所述硬盘的整盘数据至所述其它硬盘的空闲区域,并将所述硬盘置为失效。
[0019]结合第一方面的第二种可能的实现方式,在第一方面的第四种可能实现的方式中,所述方法还包括:
[0020]若所述硬盘单位时间内校验失败的次数大于所述预设阈值,则迀移所述硬盘的整盘数据至所述其它硬盘的空闲区域,并将所述硬盘置为失效。
[0021]第二方面,提供一种硬盘故障的处理装置,包括:
[0022]接收单元,用于接收硬盘上报的故障信息,所述故障信息包括产生坏道的扇区的地址信息;
[0023]记录单元,用于记录所述扇区的地址信息;
[0024]第一确定单元,用于在所述扇区修复成功后,根据所述记录单元记录的地址信息周期性地对所述扇区进行扫描,确定所述扇区在修复成功后是否再次产生坏道;
[0025]重构单元,若所述第一确定单元确定所述扇区产生坏道的次数达到次数阈值,则对所述扇区所在的数据块进行数据重构。
[0026]结合第二方面,在第二方面的第一种可能实现的方式中,所述重构单元具体用于:
[0027]将所述坏道所在的数据块迀移至本硬盘的空闲区域或除所述硬盘以外的其它硬盘的空闲区域,并隔离所述硬盘中所述数据块。
[0028]结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能实现的方式中,还包括:
[0029]修复单元,用于若所述第一确定单元确定所述扇区产生坏道的次数达到次数阈值,则对所述扇区继续进行修复;
[0030]校验单元,用于若所述修复单元对所述扇区继续修复成功,则对所述扇区进行校验;
[0031]第二确定单元,用于若所述校验单元校验失败,则将当前所述硬盘单位时间内校验失败的次数与预设阈值进行比较,以确定所述次数是否小于或等于所述预设阈值;
[0032]所述重构单元具体用于,若所述第二确定单元确定是,则对所述扇区所在的数据块进行数据重构。
[0033]结合第二方面的第一种可能的实现方式,在第二方面的第三种可能实现的方式中,还包括:
[0034]第三确定单元,用于确定当前所述硬盘隔离的数据块的数量是否大于预设隔离数量;
[0035]第一处理单元,用于若所述第三确定单元确定是,则迀移所述硬盘的整盘数据至所述其它硬盘的空闲区域,并将所述硬盘置为失效。
[0036]结合第二方面的第二种可能的实现方式,在第二方面的第四种可能实现的方式中,还包括:
[0037]第四确定单元,用于确定所述硬盘单位时间内校验失败的次数是否大于所述预设阈值;
[0038]第二处理单元,用于若所述第四确定单元确定是,则迀移所述硬盘的整盘数据至所述其它硬盘的空闲区域,并将所述硬盘置为失效。
[0039]本发明实施例提供一种硬盘故障的处理方法及装置,通过周期性地对产生坏道并修复成功的扇区进行扫描,确定该扇区是否再次产生坏道,可以及时发现坏道,避免了现有技术中硬盘需要等待上层主机业务读取该坏道时才能进行自身检测,从而导致上报故障存在延迟的问题;而后通过对产生坏道的次数达到次数阈值的扇区所在的数据块进行数据重构,可以及时恢复当前扇区及数据块中存在潜在坏道的扇区中的数据,避免了现有技术中由于当前硬盘上报故障有延迟,若在上报故障之前存储当前坏道或当前数据块的坏道中相关冗余数据的其它硬盘也发生故障,则本硬盘坏道中的数据无法恢复的问题,即可以解决现有技术中由于硬盘上报故障有延迟,不能及时对硬盘故障进行处理而导致的硬盘数据丢失,使得存储系统可靠性差的问题。

【专利附图】

【附图说明】
[0040]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0041]图1为现有技术中一种存储阵列RAID-5的结构示意图;
[0042]图2为本发明实施例提供的一种硬盘故障的处理方法流程图;
[0043]图3为本发明另一实施例提供的一种硬盘故障的处理方法流程图;
[0044]图4为本发明另一实施例提供的一种硬盘故障的处理方法流程图;
[0045]图5为本发明另一实施例提供的一种硬盘故障的处理装置结构图;
[0046]图6为本发明实施例提供的另一种硬盘故障的处理装置结构图;
[0047]图7为本发明实施例提供的另一种硬盘故障的处理装置结构图;
[0048]图8为本发明实施例提供的另一种硬盘故障的处理装置结构图;
[0049]图9为本发明另一实施例提供的一种硬盘故障的处理装置结构图。

【具体实施方式】
[0050]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0051]本发明实施例中涉及的术语“硬盘”和“磁盘”具有基本相同含义。磁盘是通过磁性进行读写功能的设备磁盘,可以为非易失性存储介质,断电后保存的文件不会丢失。硬盘是将磁盘的储存片装到硬质金属盒子里以得到更好的保护。
[0052]高端存储系统通常通过控制器将一组硬盘连接起来构成一个存储阵列,高端存储阵列应用于对数据安全要求更高的场景,因而其可靠性要求较高。存储阵列中的硬盘大多为机械硬盘即磁盘,由涂有磁性材料的圆形盘片组成,盘片的存储结构以磁道的形式组织,磁道指的是覆盖了盘片上所有读写区域的同心圆。磁道按照512字节被划分成较小的读写单元,即扇区。随着磁盘的旋转,当读写头移动到特定的磁道上时,磁道中相应扇区的数据就可以被读写头所处理。
[0053]本发明各实施例提供的硬盘故障的处理方法及装置可以应用于采用独立磁盘冗余阵列RAID技术的高端存储阵列,包括第一代RAID技术RAID1.0和第二代RAID技术RAID2.0,其中,RAID可以是基于软件的也可以是基于硬件的。本发明实施例可以应用于各种 RAID 组合方式,用 RAID 级别标识,例如 RAID-0,RAID-1,RAID-1E,RAID-5,RAID-6,RAID-7,RAID-10,RAID-50。不同的RAID级别可以实现不同等级的恢复和保护策略,满足性能和安全的多种需要。各种RAID级别所需硬盘的数目和存储方式为公众所知,不再赘述。
[0054]独立磁盘冗余阵列简称磁盘阵列RAID,通过把多块独立的硬盘(物理硬盘)按不同方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据冗余的技术。RAID在整个阵列中对数据进行分区,并通过硬盘奇偶校验数据提供数据恢复功能。当一个硬盘由于产生坏道而发生故障时,可以根据奇偶校验数据及阵列中其它硬盘上的数据计算出故障硬盘坏道中所丢失的数据,从而进行坏道修复。其中,RAID中可以有多个硬盘,若干个连续扇区构成的存储容量,例如64k、128k等的存储区域可以称为一个分条,若干个连续磁道构成的存储容量,例如64M的存储区域可以称为一个数据块(Chunk),跨越RAID组中所有硬盘的逻辑位置相关的数据块可以称为一个条带,其中逻辑位置相关可以认为位于同一条带中的数据块在硬盘中的编号相同,但在硬盘中的物理位置不一定相同。示例性的,图1提供了一种RAID-5的结构示意图,RAID-5将相关数据存放在同一条带的不同硬盘的上,包括用户数据和校验数据,例如可以将用户数据存储在硬盘I至硬盘4中位于条带I中的编号为I的数据块中,如图1中的Dl所示,可以将用户数据根据校验算法(例如异或)计算获得的校验数据存储在硬盘5中的编号为I的数据块中,如图中的Pl所示。在同一条带中,一个数据块中的数据可以通过其它硬盘的数据块中的数据通过校验算法获得,因而其它数据块中的数据可以称为当前数据块中数据的相关冗余数据。当然,本发明实施例中的存储阵列并不仅限于RAID-5。
[0055]本发明实施例还可以应用于低、中端存储阵列,或服务器等其它设备的存储系统中,本发明实施例不做限定。
[0056]硬盘故障一般遵循以下规律:若硬盘的某一扇区产生坏道,则相邻的连续扇区也产生坏道的可能性大,例如由于磁片被划伤等原因可能导致划伤区域中连续的多个扇区产生坏道;若硬盘中多个扇区出现不可修复的坏道,则硬盘失效的可能性大。
[0057]现有技术中,当硬盘中任一扇区产生坏道时,不会立即上报硬盘坏道,而是当上层主机业务访问当前扇区时,硬盘才会通过自身检测机制检测到该坏道,从而将该坏道上报至存储阵列中的故障处理装置例如控制器。硬盘是否失效的判断机制可以有多种,示例性的当产生坏道的扇区达到一定的数量时可以认为硬盘失效,或者当硬盘中的磁头等部件损坏时可以认为硬盘失效,而当上层主机业务对硬盘进行检测时(例如开机检测),硬盘才会上报硬盘失效,因而上报硬盘失效同样存在延迟。也就是说,硬盘上报故障有延迟,这里的故障可以包括上报硬盘坏道和上报硬盘失效。
[0058]本发明实施例提供一种硬盘故障的处理方法,参见图2,其步骤主要可以包括:
[0059]201、装置接收硬盘上报的故障信息,故障信息包括产生坏道的扇区的地址信息,并记录扇区的地址信息。
[0060]其中,这里的装置为硬盘故障的处理装置,例如可以是存储阵列中的控制器。
[0061]由于电压不稳定,非正常关机,高温,读写时震动等原因,可能导致硬盘中的扇区不能被正常访问或不能被正常读写,即硬盘产生坏道。该装置可以通过其它硬盘中存储的相关冗余数据进行坏道修复,从而将产生坏道的扇区或扇区所在的分条重构至当前磁盘的热备区域中,防止数据丢失。其中,由于扇区是将硬盘的存储容量按照存储地址划分成的512字节的存储区域,因而,示例性的,可以通过记录存储地址信息,记录产生坏道的扇区所在的位置。例如,当上层主机业务读取坏道中的数据时,硬盘通过自身检测机制,上报首次产生坏道的扇区时,可以将该扇区的地址信息记录下来,以便于通过对该位置的扇区进行扫描检测确定其是否再次产生坏道。
[0062]202、装置在扇区修复成功后,根据地址信息周期性地对扇区进行扫描,确定扇区在修复成功后是否再次产生坏道。
[0063]对于步骤201中修复成功后的扇区,可以周期性地对该扇区进行扫描,例如可以进行读(read)扫描,若read扫描过程中可以正常读取,则表明该扇区正常,没有再次产生坏道;若不能正常读取,则表明该扇区再次产生坏道。其中的周期性是指,可以对任一产生坏道并修复成功的扇区设定一个时间周期,并在间隔该指定时间后分别对任一产生坏道的扇区进行周期性扫描,或者也可以对所有产生坏道并修复成功的扇区设定同一个时间周期,并在间隔该指定时间后,对所有产生坏道的扇区依次进行周期性扫描。
[0064]当然,也可以对产生坏道的扇区所在的分条、或包括当前产生坏道的扇区在内的多个连续扇区构成的区域进行扫描,本发明实施例对扫描的具体范围不做限定。
[0065]需要说明的是,若确定当前扇区在修复成功后没有再次产生坏道,则可以等待下一周期的扫描检测,以确定当前扇区是否再次产生坏道。
[0066]本发明实施例通过周期性地主动对产生坏道并修复成功的扇区进行扫描来确定该扇区是否再次产生坏道,可以及时发现坏道,避免了现有技术中硬盘需要等待上层主机业务读取该坏道时才能进行自身检测,从而导致上报故障存在延迟的问题。
[0067]203、若扇区产生坏道的次数达到次数阈值,则装置对扇区所在的数据块进行数据重构。
[0068]其中,本步骤中的次数阈值可以为2、3或其它值,具体可以根据实际情况来设定,本发明实施例不做限定。由于硬盘某一产生坏道的扇区附近的扇区往往也可能会产生坏道,即存在潜在坏道,例如由于磁片被划伤等原因可能导致划伤区域中包括当前坏道在内的连续多个扇区产生坏道。若扇区产生坏道的次数达到次数阈值,说明当前扇区再次产生坏道的可能性大,当前扇区的可靠性差,与当前扇区相邻的扇区反复产生坏道的可能性也大,因而可以将当前扇区所在的数据块,即当前扇区附近连续的多个扇区进行数据重构,避免该数据块中的潜在坏道造成数据丢失。示例性的,当该次数阈值为2时,即确定当前扇区在第一次修复成功后再次产生坏道,也就是说当前扇区第二次产生坏道时,可以对扇区所在的数据块进行数据重构。
[0069]可选地,对扇区所在的数据块进行数据重构可以包括:将坏道所在的数据块迀移至本硬盘的空闲区域或除本硬盘以外的其它硬盘的空闲区域,并隔离硬盘中数据块。
[0070]其中,将硬盘中的数据块隔离,可以是指撤消上层主机业务与该数据块的映射关系,这样一来,上层主机业务不会再对该数据块进行读写操作,即该数据块将不再被使用。此外,对扇区所在的数据块进行数据重构还可以包括,根据坏道所在数据块的迀移位置,重新构建冗余校验数据,以便与其它硬盘中的数据构成冗余关系。
[0071]本发明实施例通过对再次产生坏道的扇区所在的数据块进行数据重构,可以及时恢复坏道中的数据,避免了现有技术中由于当前硬盘上报故障有延迟,若在上报故障之前存储当前坏道或数据块潜在坏道中相关冗余数据的其它硬盘也发生故障,则本硬盘坏道中的数据无法恢复的问题,即可以解决现有技术中由于硬盘上报故障有延迟,不能及时对硬盘故障进行处理而导致的硬盘数据丢失,使得存储系统可靠性差的问题。
[0072]本发明实施例提供一种硬盘故障的处理方法,通过周期性地对产生坏道并修复成功的扇区进行扫描,确定该扇区是否再次产生坏道,可以及时发现坏道,避免了现有技术中硬盘需要等待上层主机业务读取该坏道时才能进行自身检测,从而导致上报故障存在延迟的问题;而后通过对产生坏道的次数达到次数阈值的扇区所在的数据块进行数据重构,可以及时恢复当前扇区及数据块中存在潜在坏道的扇区中的数据,避免了现有技术中由于当前硬盘上报故障有延迟,若在上报故障之前存储当前坏道或当前数据块的坏道中相关冗余数据的其它硬盘也发生故障,则本硬盘坏道中的数据无法恢复的问题,即可以解决现有技术中由于硬盘上报故障有延迟,不能及时对硬盘故障进行处理而导致的硬盘数据丢失,使得存储系统可靠性差的问题。
[0073]本发明实施例将以图1中所示的RAID-5为例,对硬盘故障的处理方法进行描述,参见图3,可以包括以下主要步骤:
[0074]301、装置接收硬盘上报的故障信息,故障信息包括产生坏道的扇区的地址信息,并记录扇区的地址信息。
[0075]其中,这里的装置为硬盘故障的处理装置,例如可以是存储阵列中的控制器。
[0076]由于电压不稳定,非正常关机,高温,读写时震动等多种原因,可能导致硬盘中的扇区产生坏道。产生坏道的硬盘可以通过其它硬盘中存储的相关冗余数据进行坏道修复,从而恢复坏道中的数据,防止数据丢失。其中,当上层主机业务读取坏道中的数据时,硬盘通过自身检测机制,上报首次产生坏道的扇区时,可以下记录产生坏道的扇区所在位置的存储地址信息,以便于通过对该位置的扇区进行检测确定其是否再次产生坏道。
[0077]示例性的,在步骤301中,对硬盘的数据块I中产生坏道的扇区A进行坏道修复可以在当前硬盘的热备区域中通过重新构建映射关系指定某一扇区B作为扇区A的热备扇区,并在扇区B中根据其它硬盘中的相关冗余数据以及校验算法(例如异或算法),恢复当前产生坏道的扇区中的数据并重新构建数据冗余关系。重新构建映射关系后,热备区域中的扇区B已被重新映射为数据块I中的扇区A。同时,撤消上层主机业务与原数据块I中的扇区A的映射关系,上层主机业务不会再对原数据块I中的扇区A进行读写操作,即原数据块I中扇区A被隔离而不再被使用。
[0078]其中,由于硬盘某一产生坏道的扇区附近的扇区往往也会产生坏道,即可能存在潜在坏道,例如由于磁片被划伤等原因可能导致划伤区域中包括当前坏道在内的连续的多个扇区产生坏道。因而,当硬盘中的扇区A产生坏道时,扇区A附近的连续扇区也产生坏道的可能性大,通过硬盘的热备区域进行坏道修复时,可以对产生坏道的扇区A进行数据重构,也可以对扇区A附近的多个连续扇区,例如扇区A所在的分条进行数据重构,本发明实施例不做限定。
[0079]另外,由于其它硬盘故障或相关冗余数据丢失等原因,对于产生坏道且修复失败的扇区,可以认为该扇区不可修复,并对该扇区进行坏块标记(Bad Sector Tag,BST),从而放弃使用该扇区。
[0080]302、在扇区修复成功后,装置根据地址信息周期性地对扇区进行扫描,确定扇区在修复成功后是否再次产生坏道。
[0081]对于步骤301中修复成功后的扇区,示例性的,可以根据记录的存储地址信息确定产生坏道并修复成功的扇区的位置,而后周期性地对扇区A(实际上是热备区域中映射为扇区A的扇区B的位置)进行read扫描,若read扫描过程中可以正常读取,则表明该扇区正常,没有再次产生坏道;若不能正常读取,则表明该扇区再次产生坏道。其中的周期性是指,可以对任一产生坏道并修复成功的扇区设定一个时间周期,并在间隔该指定时间后,分别对任一产生坏道的扇区进行周期性扫描,或者也可以对所有扇区设定同一个时间周期,并在间隔该指定时间后,对所有产生坏道的扇区依次进行周期性扫描。
[0082]需要说明的是,本发明实施例中通过read扫描只是确定扇区在修复成功后是否再次产生坏道的其中一种方式,还可以采用其它方式,本发明实施例不做限定。
[0083]当然,也可以对产生坏道的扇区所在的分条、或包括当前产生坏道的扇区在内的多个连续扇区构成的区域进行扫描,本发明实施例对扫描的具体范围不做限定。
[0084]本发明实施例通过周期性地主动对产生坏道并修复成功的扇区进行read扫描来确定该扇区是否再次产生坏道,可以及时发现坏道,避免了现有技术中硬盘需要等待上层主机业务读取该坏道时才能进行自身检测,从而导致上报故障存在延迟的问题。
[0085]303、若扇区产生坏道的次数达到次数阈值,则装置对扇区所在的数据块进行数据重构。
[0086]由于硬盘某一扇区产生坏道时,其附近的连续扇区可能存在潜在坏道。若扇区产生坏道的次数达到次数阈值,说明当前扇区再次产生坏道的可能性大,当前扇区的可靠性差,与当前扇区相邻的扇区反复产生坏道的可能性大,因而可以将当前扇区所在的数据块,即当前扇区附近连续的多个扇区进行数据重构,避免该数据块中的潜在坏道造成数据丢失。示例性的,当该次数阈值为2时,即确定当前扇区在第一次坏道修复成功后再次产生坏道时,则可以对扇区所在的数据块进行数据重构。当然,本步骤中的次数阈值可以为3或其它值,具体可以根据实际情况来设定,本发明实施例不做限定。
[0087]其中,对扇区所在的数据块进行数据重构可以包括:将坏道所在的数据块迀移至本硬盘的空闲区域或除本硬盘以外的其它硬盘的空闲区域,并隔离硬盘中数据块。
[0088]这里可以通过本硬盘中的空闲区域或除本硬盘以外的其它硬盘的空闲区域对产生坏道的扇区所在的数据块进行数据重构,即可以将坏道所在的数据块迀移至本硬盘的空闲区域或除本硬盘以外的其它硬盘的空闲区域。
[0089]具体的,将硬盘中的数据块进行隔离,可以是指撤消上层主机业务与该数据块的映射关系,上层主机业务不会再对该数据块进行读写操作,即该数据块不再被使用。此外,对扇区所在的数据块进行数据重构还可以包括,根据坏道所在数据块的迀移位置,重新构建冗余校验数据,以便与其它硬盘中的数据构成冗余关系。
[0090]本发明实施例通过对再次产生坏道的扇区所在的数据块进行数据重构,可以及时恢复坏道中的数据,避免了现有技术中由于当前硬盘上报故障有延迟,若在上报故障之前存储当前坏道或数据块潜在坏道中相关冗余数据的其它硬盘也发生故障,则本硬盘坏道中的数据无法恢复的问题,即可以解决现有技术中由于硬盘上报故障有延迟,不能及时对硬盘故障进行处理而导致的硬盘数据丢失,使得存储系统可靠性差的问题。
[0091]需要说明的是,若扇区产生坏道的次数未达到次数阈值,则继续进行修复,若修复成功则等待下一周期的扫描检测,以确定当前扇区在下一次的扫描检测中是否再次产生坏道,并确定产生坏道的次数是否达到次数阈值;若修复失败则进行BST标记。
[0092]304、装置确定当前硬盘隔离的数据块的数量是否大于预设隔离数量,若大于,则迀移硬盘的整盘数据至其它硬盘的空闲区域,并将硬盘置为失效。
[0093]在本步骤中,若确定当前硬盘隔离的数据块的数量大于预设隔离数量(例如可以是3个),则表明当前硬盘中已有多个不同位置的数据块中的扇区修复成功后又一次产生坏道,因而该硬盘再次产生坏道的可能性大,硬盘失效的可能性大,硬盘的可靠性低,从而可以预测当前硬盘即将失效。因而可以在硬盘失效之前,提前迀移硬盘的整盘数据至其它硬盘的空闲区域,而后主动将硬盘提前置为失效,以通知用户换盘,从而可以提前将当前即将失效的硬盘中的数据迀移至安全的硬盘区域中,避免了现有技术中由于当前硬盘上报故障有延迟,使得在硬盘失效之后,上报硬盘失效之前存储硬盘中相关冗余数据的其它硬盘也发生故障,则本硬盘中的数据无法恢复的问题。
[0094]示例性的,本发明实施例中提前将硬盘置为失效,可以通过将该硬盘状态中的有效状态置为失效状态,并上报给用户。其中,硬盘的状态可以包括:用以表征硬盘能够正常工作的有效状态,以及用于表明硬盘不能正常工作的失效状态。
[0095]需要说明的是,这里迀移硬盘的整盘数据至其它硬盘的空闲区域中的其它硬盘时,可以将其迀移至某一个硬盘的空闲区域,也可以迀移至多个硬盘的空闲区域,本发明实施例不做限定。
[0096]本发明实施例提供一种硬盘故障的处理方法,通过周期性地对产生坏道并修复成功的扇区进行扫描,确定该扇区是否再次产生坏道,可以及时发现坏道,避免了现有技术中硬盘需要等待上层主机业务读取该坏道时才能进行自身检测,从而导致上报故障存在延迟的问题;而后通过对产生坏道的次数达到次数阈值的扇区所在的数据块进行数据重构,可以及时恢复当前扇区及数据块中存在潜在坏道的扇区中的数据;进而,在当前硬盘隔离的数据块的数量大于预设隔离数量时,通过迀移硬盘的整盘数据至其它硬盘的空闲区域,并将硬盘置为失效,以通知用户换盘,可以提前将当前即将失效的硬盘中的数据迀移至安全的硬盘区域中,避免了现有技术中由于硬盘上报故障有延迟,若在上报故障之前存储当前硬盘中相关冗余数据的其它硬盘也发生故障,则本硬盘中的数据无法恢复的问题,即可以解决现有技术中由于硬盘上报故障有延迟,不能及时对硬盘故障进行处理而导致的硬盘数据丢失,使得存储系统可靠性差的问题。
[0097]本发明实施例将以图1中所示的RAID-5为例,对硬盘故障的处理方法进行描述,参见图4,可以包括以下主要步骤:
[0098]401、装置接收硬盘上报的故障信息,故障信息包括产生坏道的扇区的地址信息,并记录扇区的地址信息。
[0099]402、在扇区修复成功后,装置根据地址信息周期性地对扇区进行扫描,确定扇区在修复成功后是否再次产生坏道。
[0100]其中,步骤401?402的具体过程可以参见步骤301?302。
[0101]403、若扇区产生坏道的次数达到次数阈值,则装置对扇区继续进行修复。
[0102]在本步骤中,若扇区产生坏道的次数达到次数阈值,则在当前硬盘的热备区域中,继续对当前扇区或当前扇区所在的分条进行修复,具体修复过程可以参见步骤301。示例性的,当该次数阈值为2时,即确定当前扇区在第一次坏道修复成功后再次产生坏道,也就是说在当前扇区在第二次产生坏道后,继续对该扇区进行修复。当然该次数阈值也可以是其它数值,本发明实施例不做限定。
[0103]需要说明的是,若扇区产生坏道的次数未达到次数阈值,则继续进行修复,若修复成功则等待下一周期的扫描检测,以确定当前扇区在下一次的扫描检测中是否再次产生坏道,并确定产生坏道的次数是否达到次数阈值;若修复失败则进行BST标记。
[0104]404、若装置对扇区继续修复成功,则对扇区进行校验。
[0105]若步骤403中对当前扇区继续修复成功,则在步骤404中可以立即对该扇区进行校验。例如,可以根据一定的校验算法例如异或算法,对该扇区进行Verify校验,以检测继续修复成功后的扇区是否可读,即检测继续修复成功后的扇区是否会再次产生坏道。示例性的,可以读取该扇区中的数据,以及阵列中同一条带内其它硬盘中存储的相关冗余数据,并进行异或运算,若异或结果为0,说明继续修复成功后的扇区可读,没有再次产生坏道,则校验成功,继续等待下一周期的扫描检测;否则,说明继续修复成功后的扇区不可读,当前扇区再次产生坏道,即当前扇区在继续修复成功后立即失效,校验失败。
[0106]需要说明的是,若对扇区继续修复失败,则可以认为该扇区不可修复,因而可以对其进行BST标记。
[0107]405、若装置校验失败,则将当前硬盘单位时间内校验失败的次数与预设阈值进行比较,而后进入步骤406或步骤407。
[0108]406、在次数小于或等于预设阈值时,装置对扇区所在的数据块进行数据重构。
[0109]若步骤404中校验失败,则表明当前扇区在继续修复成功后立即失效,或当前扇区出现只可写不可读的情况,此时可以认为当前扇区不可修复。又由于当前扇区附近可能存在潜在坏道,当前扇区不可修复,则当前扇区附近扇区产生坏道且不可修复的可能性大,此时将当前硬盘单位时间内校验失败的次数与预设阈值进行比较,如果小于或等于预设阈值,说明虽然当前硬盘出现坏道的扇区不可修复的可能性大,但是该硬盘尚可通过数据重构对产生坏道的扇区所在的数据块进行迀移,并隔离该数据块,因而可以对当前扇区所在的数据块进行数据重构,从而可以及时恢复当前扇区及数据块中存在潜在坏道的扇区中的数据,避免了现有技术中由于当前硬盘上报故障有延迟,若在上报故障之前存储当前坏道或数据块潜在坏道中相关冗余数据的其它硬盘也发生故障,则本硬盘坏道中的数据无法恢复的问题,即可以解决现有技术中由于硬盘上报故障有延迟,不能及时对硬盘故障进行处理而导致的硬盘数据丢失,使得存储系统可靠性差的问题。
[0110]407、若硬盘单位时间内校验失败的次数大于预设阈值,则装置迀移硬盘的整盘数据至其它硬盘的空闲区域,并将硬盘置为失效。
[0111]若确定硬盘单位时间内校验失败的次数大于预设阈值(例如每小时3次),则可以表明当前硬盘中存在多个反复出现坏道的扇区,且扇区不可修复,因而当前硬盘中的扇区再次产生坏道且不可修复的可能性大,硬盘失效的可能性大,硬盘的可靠性低。因而可以在硬盘失效前,提前迀移硬盘的整盘数据至其它硬盘的空闲区域,而后主动将硬盘提前置为失效,以通知用户换盘,从而可以提前将当前即将失效的硬盘中的数据迀移至安全的硬盘区域中,避免了现有技术中在本硬盘失效之后,在硬盘上报故障之前,存储硬盘中相关冗余数据的其它硬盘也发生故障时,本硬盘中的数据无法恢复的问题。
[0112]与步骤304类似,本发明实施例中提前将硬盘置为失效,也可以通过将该硬盘状态中的有效状态置为失效状态,并上报给用户。其中,硬盘的状态可以包括:用以表征硬盘能够正常工作的有效状态,以及用于表明硬盘不能正常工作的失效状态。且迀移硬盘的整盘数据至其它硬盘的空闲区域中的其它硬盘时,可以将其迀移至某一个硬盘的空闲区域,也可以迀移至多个硬盘的空闲区域,本发明实施例不做限定。
[0113]本发明实施例提供一种硬盘故障的处理方法,通过周期性地对产生坏道并修复成功的扇区进行扫描,确定该扇区是否再次产生坏道,可以及时发现坏道,避免了现有技术中硬盘需要等待上层主机业务读取该坏道时才能进行自身检测,从而导致上报故障存在延迟的问题;而后通过对产生坏道的次数达到次数阈值且继续修复成功的扇区进行校验,并对校验失败的扇区所在的数据块进行数据重构,可以及时恢复当前扇区及数据块中存在潜在坏道的扇区中的数据;进而,在当前硬盘单位时间内校验失败的次数大于预设阈值时,通过迀移硬盘的整盘数据至其它硬盘的空闲区域,并将硬盘置为失效,以通知用户换盘,可以提前将当前即将失效的硬盘中的数据迀移至安全的硬盘区域中,避免了现有技术中由于硬盘上报故障有延迟,若在上报故障之前存储当前硬盘中相关冗余数据的其它硬盘也发生故障,则本硬盘中的数据无法恢复的问题,即可以解决现有技术中由于硬盘上报故障有延迟,不能及时对硬盘故障进行处理而导致的硬盘数据丢失,使得存储系统可靠性差的问题。
[0114]本发明实施例提供一种硬盘故障的处理装置500,该装置500用于处理硬盘故障,可以为存储阵列中的控制器,如图5所示,该装置500可以包括:
[0115]接收单元501,可以用于接收硬盘上报的故障信息,故障信息包括产生坏道的扇区的地址信息。
[0116]记录单元502,可以用于记录接收单元501接收到的故障信息中产生坏道的扇区的地址信息。
[0117]第一确定单元503,可以用于在扇区修复成功后,根据记录单元502记录的地址信息周期性地对扇区进行扫描,确定扇区在修复成功后是否再次产生坏道。
[0118]重构单元504,可以用于若第一确定单元503确定扇区产生坏道的次数达到次数阈值,则对扇区所在的数据块进行数据重构。
[0119]可选地,重构单元504可以具体用于:
[0120]将坏道所在的数据块迀移至本硬盘的空闲区域或除本硬盘以外的其它硬盘的空闲区域,并隔离硬盘中数据块。
[0121]可选地,参见图6,装置500还可以包括:
[0122]修复单元505,可以用于若第一确定单元503确定扇区产生坏道的次数达到次数阈值,则对扇区继续进行修复;
[0123]校验单元506,可以用于若修复单元505对扇区继续修复成功,则对扇区进行校验;
[0124]第二确定单元507,可以用于若校验单元506校验失败,则将当前硬盘单位时间内校验失败的次数与预设阈值进行比较,以确定次数是否小于或等于预设阈值;
[0125]重构单元504可以具体用于,若第二确定单元507确定是,则对扇区所在的数据块进行数据重构。
[0126]可选地,参见图7,装置500还可以包括:
[0127]第三确定单元508,可以用于确定当前硬盘隔离的数据块的数量是否大于预设隔离数量;
[0128]第一处理单元509,可以用于若第三确定单元508确定是,则迀移硬盘的整盘数据至其它硬盘的空闲区域,并将硬盘置为失效。
[0129]可选地,参见图8,装置500还可以包括:
[0130]第四确定单元510,可以用于确定硬盘单位时间内校验失败的次数是否大于预设阈值;
[0131]第二处理单元511可以用于,若第四确定单元510确定是,则迀移硬盘的整盘数据至其它硬盘的空闲区域,并将硬盘置为失效。
[0132]本发明实施例提供一种硬盘故障的处理装置500,可以用于处理硬盘故障,通过周期性地对产生坏道并修复成功的扇区进行扫描,确定该扇区是否再次产生坏道,可以及时发现坏道,避免了现有技术中硬盘需要等待上层主机业务读取该坏道时才能进行自身检测,从而导致上报故障存在延迟的问题;而后通过对产生坏道的次数达到次数阈值的扇区所在的数据块进行数据重构,可以及时恢复坏道中的数据,避免了现有技术中由于当前硬盘上报故障有延迟,若在上报故障之前存储当前坏道或当前数据块的坏道中相关冗余数据的其它硬盘也发生故障,则本硬盘坏道中的数据无法恢复的问题,即可以解决现有技术中由于硬盘上报故障有延迟,不能及时对硬盘故障进行处理而导致的硬盘数据丢失,使得存储系统可靠性差的问题。
[0133]本发明实施例提供一种硬盘故障的处理装置900,该装置900用于处理硬盘故障,可以为存储阵列中的控制器,如图9所示,该装置900可以包括:总线904 ;以及连接到总线904的处理器901、存储器902,接收器903 ;其中该存储器902用于存储指令和数据;该接收器903执行该指令用于接收硬盘上报的故障信息,故障信息包括产生坏道的扇区的地址信息;该处理器901执行该指令用于,记录接收器903接收到的故障信息中产生坏道的扇区的地址信息;该处理器901执行该指令还用于,在扇区修复成功后,根据记录单元记录的地址信息周期性地对扇区进行扫描,确定扇区在修复成功后是否再次产生坏道;该处理器901执行该指令还用于,若确定扇区产生坏道的次数达到次数阈值,则对扇区所在的数据块进行数据重构;该存储器902执行该指令还用于,存储处理器901记录的扇区的地址信息。
[0134]在本发明实施例中,可选地,该处理器901执行该指令用于对扇区所在的数据块进行数据重构包括:
[0135]将坏道所在的数据块迀移至本硬盘的空闲区域或除本硬盘以外的其它硬盘的空闲区域,并隔离硬盘中数据块。
[0136]在本发明实施例中,可选地,该处理器901执行该指令用于对扇区所在的数据块进行数据重构包括:
[0137]若扇区产生坏道的次数达到次数阈值,则对扇区继续进行修复;
[0138]若对扇区继续修复成功,则对扇区进行校验;
[0139]若校验失败,则将当前硬盘单位时间内校验失败的次数与预设阈值进行比较,以在次数小于或等于预设阈值时对扇区所在的数据块进行数据重构。
[0140]在本发明实施例中,可选地,该处理器901执行该指令还用于:
[0141]确定当前硬盘隔离的数据块的数量是否大于预设隔离数量;
[0142]若大于,则迀移硬盘的整盘数据至其它硬盘的空闲区域,并将硬盘置为失效。
[0143]在本发明实施例中,可选地,该处理器901执行该指令还用于:
[0144]若硬盘单位时间内校验失败的次数大于预设阈值,则迀移硬盘的整盘数据至其它硬盘的空闲区域,并将硬盘置为失效。
[0145]本发明实施例提供一种硬盘故障的处理装置900,可以用于处理硬盘故障,通过周期性地对产生坏道并修复成功的扇区进行扫描,确定该扇区是否再次产生坏道,可以及时发现坏道,避免了现有技术中硬盘需要等待上层主机业务读取该坏道时才能进行自身检测,从而导致上报故障存在延迟的问题;而后通过对产生坏道的次数达到次数阈值的扇区所在的数据块进行数据重构,可以及时恢复坏道中的数据,避免了现有技术中由于当前硬盘上报故障有延迟,若在上报故障之前存储当前坏道或当前数据块的坏道中相关冗余数据的其它硬盘也发生故障,则本硬盘坏道中的数据无法恢复的问题,即可以解决现有技术中由于硬盘上报故障有延迟,不能及时对硬盘故障进行处理而导致的硬盘数据丢失,使得存储系统可靠性差的问题。
[0146]在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0147]另外,在本发明各个实施例中的设备中,各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。且上述的各单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0148]实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read OnlyMemory,缩写:R0M)、随机存取存储器(英文:Random Access Memory,缩写:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0149]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
【权利要求】
1.一种硬盘故障的处理方法,其特征在于,包括: 接收硬盘上报的故障信息,所述故障信息包括产生坏道的扇区的地址信息,并记录所述扇区的地址信息; 在所述扇区修复成功后,根据所述地址信息周期性地对所述扇区进行扫描,确定所述扇区在修复成功后是否再次产生坏道; 若所述扇区产生坏道的次数达到次数阈值,则对所述扇区所在的数据块进行数据重构。
2.根据权利要求1所述的方法,其特征在于,所述对所述扇区所在的数据块进行数据重构包括: 将所述坏道所在的数据块迀移至本硬盘的空闲区域或除所述硬盘以外的其它硬盘的空闲区域,并隔离所述硬盘中所述数据块。
3.根据权利要求1或2所述的方法,其特征在于,所述对所述扇区所在的数据块进行数据重构包括: 若所述扇区产生坏道的次数达到所述次数阈值,则对所述扇区继续进行修复; 若对所述扇区继续修复成功,则对所述扇区进行校验; 若校验失败,则将当前所述硬盘单位时间内校验失败的次数与预设阈值进行比较,以在所述次数小于或等于所述预设阈值时对所述扇区所在的数据块进行数据重构。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括: 确定当前所述硬盘隔离的数据块的数量是否大于预设隔离数量; 若大于,则迀移所述硬盘的整盘数据至所述其它硬盘的空闲区域,并将所述硬盘置为失效。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括: 若所述硬盘单位时间内校验失败的次数大于所述预设阈值,则迀移所述硬盘的整盘数据至所述其它硬盘的空闲区域,并将所述硬盘置为失效。
6.一种硬盘故障的处理装置,其特征在于,包括: 接收单元,用于接收硬盘上报的故障信息,所述故障信息包括产生坏道的扇区的地址信息; 记录单元,用于记录所述接收单元接收到的所述故障信息中所述产生坏道的扇区的地址信息; 第一确定单元,用于在所述扇区修复成功后,根据所述记录单元记录的地址信息周期性地对所述扇区进行扫描,确定所述扇区在修复成功后是否再次产生坏道; 重构单元,若所述第一确定单元确定所述扇区产生坏道的次数达到次数阈值,则对所述扇区所在的数据块进行数据重构。
7.根据权利要求6所述的装置,其特征在于,所述重构单元具体用于: 将所述坏道所在的数据块迀移至本硬盘的空闲区域或除所述硬盘以外的其它硬盘的空闲区域,并隔离所述硬盘中所述数据块。
8.根据权利要求6或7所述的装置,其特征在于,还包括: 修复单元,用于若第一单元确定所述扇区产生坏道的次数达到次数阈值,则对所述扇区继续进行修复; 校验单元,用于若所述修复单元对所述扇区继续修复成功,则对所述扇区进行校验;第二确定单元,用于若所述校验单元校验失败,则将当前所述硬盘单位时间内校验失败的次数与预设阈值进行比较,以确定所述次数是否小于或等于所述预设阈值; 所述重构单元具体用于,若所述第二确定单元确定所述次数小于或等于所述预设阈值,则对所述扇区所在的数据块进行数据重构。
9.根据权利要求7所述的装置,其特征在于,还包括: 第三确定单元,用于确定当前所述硬盘隔离的数据块的数量是否大于预设隔离数量;第一处理单元,用于若第三确定单元确定当前所述硬盘隔离的数据块的数量大于预设隔离数量,则迀移所述硬盘的整盘数据至所述其它硬盘的空闲区域,并将所述硬盘置为失效。
10.根据权利要求8所述的装置,其特征在于,还包括: 第四确定单元,用于确定所述硬盘单位时间内校验失败的次数是否大于所述预设阈值; 第二处理单元,用于若所述第四确定单元确定所述硬盘单位时间内校验失败的次数大于所述预设阈值,则迀移所述硬盘的整盘数据至所述其它硬盘的空闲区域,并将所述硬盘置为失效。
【文档编号】G06F11/22GK104484251SQ201410763670
【公开日】2015年4月1日 申请日期:2014年12月11日 优先权日:2014年12月11日
【发明者】王键 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1