CN111045858B - 一种坏道处理方法及系统 - Google Patents

一种坏道处理方法及系统 Download PDF

Info

Publication number
CN111045858B
CN111045858B CN201811197313.5A CN201811197313A CN111045858B CN 111045858 B CN111045858 B CN 111045858B CN 201811197313 A CN201811197313 A CN 201811197313A CN 111045858 B CN111045858 B CN 111045858B
Authority
CN
China
Prior art keywords
bad track
instruction
repair
bad
error
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811197313.5A
Other languages
English (en)
Other versions
CN111045858A (zh
Inventor
古亮
李诗逸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN201811197313.5A priority Critical patent/CN111045858B/zh
Publication of CN111045858A publication Critical patent/CN111045858A/zh
Application granted granted Critical
Publication of CN111045858B publication Critical patent/CN111045858B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery

Abstract

本发明实施例公开了一种坏道处理方法及系统,用于提升坏道修复的精细度和有效性。本发明实施例方法包括:获取分布式文件系统服务端与硬盘交互时,所述分布式文件系统服务端所接收的反馈信息;判断所述反馈信息中是否包含IO错误指令;若是,则根据所述IO错误指令验证所述硬盘是否存在坏道;若是,则读取所述IO错误指令的类型,并根据所述IO错误指令的类型在所述硬盘坏道上对文件数据执行有效修复,所述IO错误指令的类型包括写错误指令和读错误指令。

Description

一种坏道处理方法及系统
技术领域
本发明涉及数据恢复技术领域,尤其涉及一种坏道处理方法及系统。
背景技术
硬盘使用久了就可能出现各种各样的问题,而硬盘“坏道”便是最常见的问题,硬盘出现坏道除了硬盘本身质量及老化的原因外,主要是平时不能正确使用硬盘,如内存太少以致应用软件对硬盘频繁访问,或对硬盘过分频繁的了整理碎片,或是电源质量不好、温度过高而引起的。
硬盘坏道是存储在硬盘上数据的最大的可靠性挑战之一,一般硬盘本身都会内置一些发现坏道的机制,但这偏于底层,缺乏语义,属于被动式的发现方式。如当上层的用户读写数据时,在遇到访问错误发现的坏道就是基于这种被动式的发现方式。
一般在修复硬盘坏道问题时,人们通常会选择低格或者全盘清零的方式,但这种修复方式太过笼统,对坏道数据的修复方式不够精细化,且无法预料对坏道的修复结果。
发明内容
本发明实施例提供了一种坏道处理方法及系统,用于区分针对坏道的执行指令,即区分IO错误指令的类型,并根据IO错误指令的类型,对坏道执行不同的修复方式,从而提高坏道修复精细度和有效性。
本申请实施例第一方面提供了一种坏道处理方法,包括:
获取分布式文件系统服务端与硬盘交互时,所述分布式文件系统服务端所接收的反馈信息;
判断所述反馈信息中是否包含IO错误指令;
若是,则根据所述IO错误指令验证所述硬盘是否存在坏道;
若是,则读取所述IO错误指令的类型,并根据所述IO错误指令的类型在所述硬盘坏道上对文件数据执行有效修复,所述IO错误指令的类型包括写错误指令和读错误指令。
优选的,所述根据所述IO错误指令的类型在所述硬盘坏道上对文件数据执行有效修复,包括:
若所述IO错误指令为写错误指令,则确定所述写错误指令中文件数据副本对应坏道的数量,并在每个坏道上重复执行对应的写操作,并统计所述写操作的重复次数;
当所述写操作的重复次数大于预设的第一次数阈值时,统计返回写操作失败指令对应第一坏道的第一数量;
判断所述第一数量是否大于所述文件数据的容错数量;
若大于,则提示多点故障,并对所述第一坏道进行隔离;
若不大于,则对第一坏道数据迁移修复后,对第一坏道进行隔离。
优选的,所述根据所述IO错误指令的类型在所述硬盘坏道上对文件数据执行有效修复,包括:
若所述IO错误指令为读错误指令,确定所述读错误指令对应文件数据副本的数量及各自的存储位置;
执行切源指令,所述切源指令用于根据预设的选择策略从所述文件数据的副本中确定预设副本,并从所述预设副本的存储位置执行读操作指令,以用于执行修复读。
优选的,在执行切源指令之后,该方法还包括;
若切源失败,则验证所述预设副本的存储位置是否为坏道;
若是,则重复切源指令,并统计返回读操作失败指令对应第二坏道的第二数量;
判断所述第二数量是否大于所述文件数据的容错数量;
若大于,则提示修复读失败,并对所述第二坏道进行隔离;
若不大于,则提示修复读成功。
优选的,在执行切源指令之后,该方法还包括;
若切源成功,则统计所述读操作的重复次数;
当所述重复次数大于第二次数阈值时,判断是否读取成功;
若是,则提示修复读成功;
若否,则触发所述重复切源指令的步骤。
优选的,所述方法还包括:
若所述预设副本的存储位置不是坏道,则触发所述统计所述读操作的重复次数的步骤。
优选的,所述方法还包括:
当提示修复读成功时,将读取成功的文件数据在所述第二坏道上执行写操作;
判断所述写操作是否成功;
若是,则提示修复写成功;
若否,则提示修复写失败,并将第二坏道数据迁移修复后,对第二坏道进行隔离。
本申请实施例第二方面提供了一种坏道处理系统,包括:
获取单元,用于获取分布式文件系统服务端与硬盘交互时,所述分布式文件系统服务端所接收的反馈信息;
反馈判断单元,用于判断所述反馈信息中是否包含IO错误指令;
验证单元,用于在所述反馈信息中包含所述IO错误指令时,根据所述IO错误指令验证所述硬盘是否存在坏道;
修复单元,用于在所述硬盘存在坏道时,读取所述IO错误指令的类型,并根据所述IO错误指令的类型在所述硬盘坏道上对文件数据执行有效修复,所述IO错误指令的类型包括写错误指令和读错误指令。
优选的,所述修复单元,包括:
确定统计模块,用于在所述IO错误指令为写错误指令时,确定所述写错误指令中文件数据副本对应坏道的数量,并在每个坏道上重复执行对应的写操作,并统计所述写操作的重复次数;
统计模块,用于当所述写操作的重复次数大于预设的第一次数阈值时,统计返回写操作失败指令对应第一坏道的第一数量;
第一判断模块,用于判断所述第一数量是否大于所述文件数据的容错数量;
第一提示隔离模块,用于在所述第一数量大于所述文件数据的容错数量时,提示多点故障,并对所述第一坏道进行隔离;
迁移修复模块,用于在所述第一数量不大于所述文件数据的容错数量时,对第一坏道数据迁移修复后,对第一坏道进行隔离。
优选的,所述修复单元,包括:
确定模块,用于在所述IO错误指令为读错误指令时,确定所述读错误指令对应文件数据副本的数量及各自的存储位置;
切源模块,用于执行切源指令,所述切源指令用于根据预设的选择策略从所述文件数据的副本中确定预设副本,并从所述预设副本的存储位置执行读操作指令,以用于执行修复读。
优选的,所述修复单元,还包括;
验证模块,用于在切源失败时,验证所述预设副本的存储位置是否为坏道;
重复切源模块,用于在所述预设副本的存储位置为坏道时,重复切源指令,并统计返回读操作失败指令对应第二坏道的第二数量;
第二判断模块,用于判断所述第二数量是否大于所述文件数据的容错数量;
第二提示隔离模块,用于在所述第二数量大于所述文件数据的容错数量时,提示修复读失败,并对所述第二坏道进行隔离;
第一提示模块,用于在所述第二数量不大于所述文件数据的容错数量时,提示修复读成功。
优选的,所述修复单元,还包括:
统计模块,用于在切源成功时,统计所述读操作的重复次数;
第三判断模块,用于在所述重复次数大于第二次数阈值时,判断是否读取成功;
第二提示模块,用于在读取成功时,提示修复读成功;
第一触发模块,用于在读取失败时,触发所述重复切源指令的步骤。
优选的,所述修复单元,还包括:
第二触发模块,用于在所述预设副本的存储位置不是坏道时,触发所述统计所述读操作的重复次数的步骤
优选的,所述修复单元还包括:
修复写模块,用于在提示修复读成功时,将读取成功的文件数据在所述第二坏道上执行写操作;
第四判断模块,用于判断所述写操作是否成功;
第三提示模块,用于在所述写操作成功时,提示修复写成功;
第四提示模块,用于在所述写操作失败时,提示修复写失败,并将所述第二坏道数据迁移修复后,对第二坏道进行隔离。
本申请实施例还提供了一种坏道处理系统,包括处理器,该处理器在执行存储于存储器上的计算机程序时,用于实现本申请实施例第一方面提供的坏道处理方法。
本申请实施例还提供了一种可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,用于实现本申请实施例第一方面提供的坏道处理方法。
从以上技术方案可以看出,本发明实施例具有以下优点:
本申请实施例中,获取分布式文件系统服务端与硬盘交互时,分布式文件系统服务端接收的反馈信息,判断该反馈信息中是否包含IO错误指令,并在包含IO错误指令时,读取该IO错误指令的具体类型,并根据IO错误指令的类型对硬盘坏道上的数据进行有效修复。因为本申请实施例中,在判定硬盘中存有坏道时,读取IO错误指令的类型,并根据IO错误指令中的读错误或写错误,对硬盘坏道上的文件数据执行有效修复,提高了硬盘坏道中文件数据修复的精细度和有效性。
附图说明
图1为本申请实施例中坏道处理方法的一个实施例示意图;
图2为本申请实施例中坏道处理方法的另一个实施例示意图;
图3为本申请实施例中坏道处理方法的另一个实施例示意图;
图4为本申请实施例中坏道处理方法的另一个实施例示意图;
图5为本申请实施例中坏道修复系统的一个实施例示意图;
图6为本申请实施例中坏道修复系统中修复单元的一个实施例示意图;
图7为本申请实施例中坏道修复系统中修复单元的另一个实施例示意图;
图8为本申请实施例中坏道修复系统的另一个实施例示意图。
具体实施方式
本发明实施例提供了一种坏道处理方法及系统,用于区分针对坏道的执行指令,即区分IO错误指令的类型,并根据IO错误指令的类型,对坏道执行不同的修复方式,从而提高坏道修复精细度和有效性。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本申请实施例中的坏道处理方法进行描述,请参阅图1,本申请实施例中坏道处理方法的一个实施例,包括:
101、获取分布式文件系统服务端与硬盘交互时,所述分布式文件系统服务端所接收的反馈信息;
本地文件系统是将文件存储在本地计算机设备或服务器上,而随着本地数据的增长,只能单纯的通过增加本地硬盘个数来扩展计算机文件系统的存储容量,而这种本地文件系统在硬盘容量大小、容量增长速度、数据备份及数据安全都表现的差强人意。分布式文件系统可以有效解决数据的存储和管理难题,分布式文件系统可以将固定于某个地点的某个文件系统,扩展到任意多个地点/多个文件系统,众多的节点组成一个文件系统网络。每个节点可以分布在不同的地点,通过网络进行节点间的通信和数据传输。人们在使用分布式文件系统时,无需关心数据是存储在哪个节点上、或者是从哪个节点上获取的,只需要像使用本地文件系统一样管理和存储文件系统中的数据。
容易理解的是,在分布式文件系统中,为了保证数据的安全性,在数据存储时,往往会根据实际需求采用不同的备份方式,如当有10个文件时,可以是在一个节点上存储这10个文件数据,在其他的N个节点中的每个节点存储10个数据文件作为备份,也可以是将该10个文件平均分配至N个节点上,来保证数据的安全性,总而言之,在分布式文件系统中写数据时,需要同时将一个数据写在不同的节点上,若每个节点都对应设置自己的硬盘,则是同时将一个数据写在不同节点的硬盘中,同理,在分布式文件系统中读数据时,则可以从任一个存储有数据备份的节点硬盘中读取该数据。
而当分布式文件系统服务端在与硬盘交互时,本申请实施例中的坏道处理系统可以实时或定时获取在交互过程中,分布式文件系统服务端所接收的反馈信息,并根据该反馈信息执行步骤102,其中,分布式文件系统服务端可以是安装有分布式文件系统的操作系统,也可以是安装有分布式文件系统的计算机设备或服务器。
102、判断所述反馈信息中是否包含IO错误指令,若是,则执行步骤103,若否,则执行步骤105;
坏道处理系统在获取到反馈信息后,判断该反馈信息中是否包括IO错误指令,其中,该IO错误指令为指示硬盘出现输入输出错误的指令,即分布式文件系统服务端在与硬盘交互的过程中,出现数据读错误或数据写错误的指令。
一般,该IO错误指令会包括对应文件数据的文件地址及文件名称,当该反馈信息中包含IO错误指令时,则执行步骤103,否则,执行步骤105。
103、根据所述IO错误指令验证所述硬盘是否存在坏道,若是,则执行步骤104,若否,则执行步骤105;
当反馈信息中包含IO错误指令时,坏道处理系统根据该IO错误指令验证所述硬盘是否存在坏道。具体的,坏道处理系统在接收到该IO错误指令时,读取该IO错误指令中的文件地址,并将该文件地址转换为具体的硬盘物理地址,并进一步通过Linux系统提供的系统调用(badblock或sg_verify),或通过SCSI接口提供的sg_ioctl指令,验证该位置信息是否为坏道,若是,则执行步骤104,若否,则执行步骤105。
需要说明的是,本实施例中的硬盘坏道检测系统与SCSI接口、及Linux系统既可以集成于同一物理设备,也可以分别独立设置于不同的物理设备,此处不做具体限制。
104、读取所述IO错误指令的类型,并根据所述IO错误指令的类型在所述硬盘坏道上对文件数据执行有效修复,所述IO错误指令的类型包括写错误指令和读错误指令;
当所述硬盘中存有坏道时,即存储文件数据的硬盘地址为坏道时,本申请可以进一步判断区分针对该坏道数据的执行指令,即读取该IO错误指令的类型,具体的IO错误指令包括写错误指令和读错误指令,即坏道处理系统进一步根据IO错误指令的类型,对所述硬盘坏道上的文件数据执行有效修复,提高了对硬盘坏道修复的精细度和有效性。
105、执行其他流程。
当所述反馈信息中不包含IO错误指令,或在反馈信息中包含IO错误指令时,根据该IO错误指令验证该硬盘并非存有坏道,则坏道处理系统执行其他流程,或继续获取分布式文件系统服务端所接收的反馈信息,此处不做具体限制。
本申请实施例中,获取分布式文件系统服务端与硬盘交互时,分布式文件系统服务端接收的反馈信息,判断该反馈信息中是否包含IO错误指令,并在包含IO错误指令时,读取该IO错误指令的具体类型,并根据IO错误指令的类型对硬盘坏道上的数据进行有效修复。因为本申请实施例中,在判定硬盘中存有坏道时,读取IO错误指令的类型,并根据IO错误指令中的读错误或写错误,对硬盘坏道上的文件数据执行有效修复,提高了硬盘坏道中文件数据修复的精细度和有效性。
针对图1所述的实施例,下面详细描述图1中的步骤104,当IO错误指令为写错误指令时,请参阅图2,本申请实施例中坏道处理方法的另一个实施例,包括:
201、当IO错误指令为写错误指令时,确定所述写错误指令中文件数据副本对应坏道的数量,并在每个坏道上重复执行对应的写操作,并统计所述写操作的重复次数;
当坏道处理系统确定IO错误指令为写错误指令时,则确定该写错误指令中文件数据副本对应坏道的数量,如分布式文件系统在5个节点,同时写入同一文件数据时,接收到硬盘返回的写错误指令,其中该写错误指令中指示在3个节点上出现写错误,则该文件数据副本对应的坏道数量为3。
进一步,坏道处理系统在这三个坏道上重复执行对该文件数据的写操作,并在写重复的过程中,统计该写操作的重复次数。
202、当所述写操作的重复次数大于预设的第一次数阈值时,统计返回写操作失败指令对应第一坏道的第一数量;
当所述写操作的重复次数大于预设的第一次数阈值时,坏道处理系统进一步统计返回写操作成功指令对应的第三坏道的数量和返回写操作失败指令对应第一坏道的数量。
如步骤201所述,当在出现写错误指令中提示的3个节点上重复执行写操作的次数大于预设的第一次数阈值(例如为X次)时,统计这3个节点中返回写失败指令对应的第一坏道的第一数量,如上述3个节点中,在写重复执行了X+1次时,仍有2个节点提示写失败,1个节点提示写成功,则第一坏道的第一数数量为2。
需要说明的是,上述示例只是对第一坏道第一数量的举例说明,并不对第一坏道的第一数量构成限制。
203、判断所述第一数量是否大于所述文件数据的容错数量,若大于,则执行步骤204,若不大于,则执行步骤205;
得到第一坏道的第一数量后,将该第一数量与文件数据的容错数量进行对比,若第一数量大于文件数据的容错数量,则说明超出文件数据的容错能力,且该硬盘上的坏道为实质性物理坏道,无法进行修复,则执行步骤204;若第一坏道的第一数量不大于文件数据的容错数量,则说明错误文件数据的数量在文件数据的容错能力以内,即该文件数据在该错误数据范围内,也可以正常读写,则执行步骤205。
具体的,文件数据的容错数量是指该文件数据可以允许出错的最大数量,若文件数据出错的最大数量大于该文件数据的容错数量,则无法保证该文件数据的正常读取。例如:若文件数据的副本数量为9,一般设置容错数量为9,即当文件数据错误的副本数量在小于或等于9时,都可以保证该文件数据的正常读取,而当文件数据错误的副本数据大于9时,则无法实现该文件数据的正常读取,即文件错误数据的副本数量超出了该文件数据的容错数量。
204、提示多点故障,并对所述第一坏道进行隔离;
当第一坏道的第一数量大于文件数据的容错数量时,则提示多点故障,且该硬盘的坏道为实质性物理坏道,则对第一坏道进行隔离,以免以后在数据读写过程中,将文件数据写入该坏道,造成不可恢复的影响。
205、对第一坏道数据迁移修复后,对第一坏道进行隔离。
当第一坏道的第一数量不大于文件数据的容错数量时,则表示该文件数据在该错误数据的范围内,还可以正常读写,但该硬盘的坏道也为实质性物理坏道,则对原先存储有第一坏道的文件数据进行迁移修复,并在第一坏道的文件数据迁移修复完成后,对该第一坏道进行隔离。
本申请实施例中,当IO错误指令为写错误指令时,对出现写错误指令对应的坏道重复执行写操作,同时统计写操作的重复次数,并在写操作的重复次数大于第一次数阈值时,统计返回写操作失败指令对应第一坏道的第一数量,并在第一数量大于文件数据的容错数量时,对第一坏道进行隔离,而在第一坏道的第一数量不大于文件文件的容错数量时,对第一坏道进行迁移修复后隔离,本申请中根据IO错误指令的具体类型,不仅对坏道进行验证,而且在对坏道进行验证后进行隔离,避免以后将数据写入该坏道造成不可恢复的影响,同时根据文件数据的容量数量,对文件进行修复,提高了坏道数据处理的精细度。
基于图1所述的实施例,下面详细描述图1中的步骤104,当IO错误指令为写错误指令时,请参阅图3,本申请实施例中坏道处理方法的另一个实施例,包括:
301、当IO错误指令为读错误指令时,确定所述读错误指令对应文件数据副本的数量及各自的存储位置;
当IO错误指令为读错误指令时,因为分布式文件系统在存储数据时,会存储数据的多个副本,以提高数据的安全性,故在出现读错误指令时,则确定该读错误指令对应文件数据副本的数量及各自的存储位置。
如当分布式文件系统在5个节点都写入该文件数据时,而当分布式文件系统从一个节点的硬盘中读取数据时,出现读错误,则可以确定该读错误指令对应文件数据的副本数量为4,并进一步确定该文件数据在其他4个节点中的存储位置。
302、执行切源指令,所述切源指令用于根据预设的选择策略从所述文件数据的副本中选取预设副本,并从预设副本的存储位置执行读操作;
当确定了文件数据副本的数量及对应的存储位置后,则执行切源指令,该切源指令用于根据预设的选择策略从多个文件数据的副本中选取预设副本,并从预设副本的存储位置执行读操作;
具体的,此处的选择策略可以是随机选取,顺序选取或按照某种预设的顺序选取,此处对选择策略不做具体限制。
303、若切源失败,则验证所述预设副本的存储位置是否为坏道,若是,则执行步骤306;若否,则执行步骤304;
若切源失败,即从预设副本的存储位置读取数据失败,则进一步验证该预设副本的存储位置是否为坏道,若是,则执行步骤306,若否,则执行步骤304。
304、重复执行读操作,并统计所述读操作的重复次数;
若验证预设副本的存储位置不为坏道,则重复执行读操作,并统计该读操作所重复的次数。
305、当所述重复次数大于第二次数阈值时,判断所述读操作是否成功,若是,则执行步骤309,若否,则执行步骤306;
当上述读操作的重复次数大于第二次数阈值时,判断该读操作是否成功,若读取成功,则执行步骤309,即提示修复读成功;若读取失败,则执行步骤306。
306、重复切源指令,并统计返回读操作失败指令对应第二坏道的第二数量;
若切源失败,且进一步验证预设副本的存储位置也为坏道时,则重复执行切源指令,即从其他文件数据副本中再次重复读操作,并在重复切源指令失败时,再次验证其他文件数据副本的存储位置是否为坏道,若为坏道,则统计返回读操作失败指令对应第二坏道的第二数量,直至切源成功,或者直至对所有的文件数据副本都完成切源指令,且都切源失败。
307、判断所述第二数量是否大于所述文件数据的容错数量;
得到第二坏道的第二数量后,将该第二数量与文件数据的容错数量进行比较,并判断第二数量是否大于文件数据的容错数量,若是,则执行步骤308;若否,则执行步骤309;
308、提示修复读失败,并对所述第二坏道进行隔离;
当第二坏道的第二数量大于文件数据的容错数量时,则说明文件数据的毁坏数据超出了文件数据的容错能力,可能导致该文件数据不能被正常读取,则提示修复读失败,并对第二坏道进行隔离,以免以后将数据存储于第二坏道中,造成不可恢复的影响。
309、提示修复读成功;
若第二坏道的第二数量不大于文件数据的容错数量时,则说明文件数据的毁坏数据未超出文件数据的容错能力,该文件数据还可以被正常读取,则提示修复读成功。
310、若切源成功,则触发执行步骤304。
当切源成功后,触发执行步骤304,此处不再赘述。
本申请实施例中,当IO错误指令为读错误指令时,确定文件数据副本的数量和存储位置,并执行切源指令,并在切源成功时,从预设副本的存储位置执行读操作,而在切源失败时,重复执行切源指令,并进一步统计返回读操作失败指令对应第二坏道的第二数量,并将第二数量与文件数据的容错数量进行比较,当第二数量大于容错数量时,提示修复读失败,并对第二坏道进行隔离,而当第二数量不大于容错数量时,则提示修复成功,进一步提高了坏道数据修复的精细度和有效性。
基于图3所述的实施例,当对文件数据修复读成功后,还可以继续执行修复写,请参阅图4,本申请实施例中坏道处理方法的另一个实施例,包括:
401、当提示修复读成功时,将读取成功的数据写在所述第二坏道上;
当对文件数据修复读成功后,可以继续将读取成功的数据写在返回读操作失败指令对应的第二坏道上,以进行修复写,从而保证下次从第二坏道上读取数据时,能够成功读取;
402、判断对所述第二坏道的写操作是否成功,若是,则执行步骤403,若否,则执行步骤404;
当在第二坏道上对读取成功的数据执行写操作时,进一步判断该写操作是否成功,若是,则执行步骤403,即提示修复写成功;若否,则执行步骤404。
403、提示修复写成功;
当在第二坏道上对读取成功的数据执行写操作时,返回写成功时,则提示修复写成功。
404、提示修复写失败,将第二坏道数据迁移修复后,对第二坏道进行隔离。
当在第二坏道上对读取成功的数据执行写操作时,返回写失败,则提示修复写失败,也说明该第二坏道为实质性物理坏道,则将第二坏道上的数据进行迁移修复,并在迁移修复后对第二坏道进行隔离,以保证以后的数据不会写到第二坏道上,造成不可恢复的影响。
本申请实施例中,在修复读成功后,将读取成功的数据在第二坏道上执行修复写,并在写成功后,返回修复写成功,而在写失败后,返回修复写失败,并将第二坏道迁移修复后隔离,确保修复的完全性和正确性。
上面描述了本申请实施例中的坏道处理方法,下面对本申请实施例中的坏道修复系统进行描述,请参阅图5,本申请实施例中坏道修复系统的一个实施例,包括:
获取单元501,用于获取分布式文件系统服务端与硬盘交互时,所述分布式文件系统服务端所接收的反馈信息;
反馈判断单元502,用于判断所述反馈信息中是否包含IO错误指令;
验证单元503,用于在所述反馈信息中包含所述IO错误指令时,根据所述IO错误指令验证所述硬盘是否存在坏道;
修复单元504,用于在所述硬盘存在坏道时,读取所述IO错误指令的类型,并根据所述IO错误指令的类型在所述硬盘坏道上对文件数据执行有效修复,所述IO错误指令的类型包括写错误指令和读错误指令。
需要说明的是,本申请中各单元的作用与图1所述实施例中描述的类似,此处不再赘述。
本申请实施例中,通过获取单元501获取分布式文件系统服务端与硬盘交互时,分布式文件系统服务端接收的反馈信息,通过反馈判断单元502判断该反馈信息中是否包含IO错误指令,并在包含IO错误指令时,读取该IO错误指令的具体类型,通过修复单元504根据IO错误指令的类型对硬盘坏道上的数据进行有效修复。因为本申请实施例中,在判定硬盘中存有坏道时,读取IO错误指令的类型,并根据IO错误指令中的读错误或写错误,对硬盘坏道上的文件数据执行有效修复,提高了硬盘坏道中文件数据修复的精细度和有效性。
基于图5所述的实施例,下面详细描述修复单元504,请参阅图6,本申请中修复单元的一个实施例示意图,包括:
修复单元504,包括:
确定统计模块5041,用于在所述IO错误指令为写错误指令时,确定所述写错误指令中文件数据副本对应坏道的数量,并在每个坏道上重复执行对应的写操作,并统计所述写操作的重复次数;
统计模块5042,用于当所述写操作的重复次数大于预设的第一次数阈值时,统计返回写操作失败指令对应第一坏道的第一数量;
第一判断模块5043,用于判断所述第一数量是否大于所述文件数据的容错数量;
第一提示隔离模块5044,用于在所述第一数量大于所述文件数据的容错数量时,提示多点故障,并对所述第一坏道进行隔离;
迁移修复模块5045,用于在所述第一数量不大于所述文件数据的容错数量时,对所述第一坏道数据迁移修复后,对第一坏道进行隔离。
需要说明的是,本申请实施例中各模块的作用与图2所述实施例中描述的类似,此处不再赘述。
本申请实施例中,当IO错误指令为写错误指令时,通过确定统计模块5041对出现写错误指令对应的坏道重复执行写操作,同时统计写操作的重复次数,并在写操作的重复次数大于第一次数阈值时,通过统计模块5042统计返回写操作失败指令对应第一坏道的第一数量,并在第一数量大于文件数据的容错数量时,通过第一提示隔离模块5044对第一坏道进行隔离,而在第一坏道的第一数量不大于文件文件的容错数量时,通过迁移修复模块5045对第一坏道数据进行迁移修复后,对第一坏道进行隔离,本申请中根据IO错误指令的具体类型,不仅对坏道进行验证,而且在对坏道数据进行迁移修复后进行隔离,避免以后将数据写入该坏道造成不可恢复的影响,同时根据文件数据的容错数量,对文件进行修复,提高了坏道数据处理的精细度。
基于图5所述的实施例,下面详细描述修复单元504,请参阅图7,本申请中修复单元的另一个实施例示意图,修复单元504,包括:
确定模块5046,用于在所述IO错误指令为读错误指令时,确定所述读错误指令对应文件数据副本的数量及各自的存储位置;
切源模块5047,用于执行切源指令,所述切源指令用于根据预设的选择策略从所述文件数据的副本中确定预设副本,并从所述预设副本的存储位置执行读操作指令;
验证模块5048,用于在切源失败时,验证所述预设副本的存储位置是否为坏道;
重复切源模块5049,用于在所述预设副本的存储位置为坏道时,重复切源指令,并统计返回读操作失败指令对应第二坏道的第二数量;
第二判断模块5050,用于判断所述第二数量是否大于所述文件数据的容错数量;
第二提示隔离模块5051,用于在所述第二数量大于所述文件数据的容错数量时,提示修复读失败,并对所述第二坏道进行隔离;
第一提示模块5052,用于在所述第二数量不大于所述文件数据的容错数量时,提示修复读成功;
统计模块5053,用于在切源成功时,统计所述读操作的重复次数;
第三判断模块5054,用于在所述重复次数大于第二次数阈值时,判断是否读取成功;
第二提示模块5055,用于在读取成功时,提示修复读成功;
第一触发模块5056,用于在读取失败时,触发所述重复切源指令的步骤;
第二触发模块5057,用于在所述预设副本的存储位置不是坏道时,触发所述统计所述读操作的重复次数的步骤。
需要说明的是,本申请中各模块的作用与图3所述实施例中描述的类似,此处不再赘述。
本申请实施例中,当IO错误指令为读错误指令时,通过确定模块5046确定文件数据副本的数量和存储位置,并执行切源指令,并在切源成功时,从预设副本的存储位置执行读操作,而在切源失败时,通过重复切源模块5049重复执行切源指令,并进一步统计返回读操作失败指令对应第二坏道的第二数量,并将第二数量与文件数据的容错数量进行比较,当第二数量大于容错数量时,提示修复读失败,并对第二坏道进行隔离,而当第二数量不大于容错数量时,则提示修复成功,进一步提高了坏道数据修复的精细度和有效性。
基于图7所述的实施例,下面继续描述修复单元504,请参阅图8,本申请中修复单元的另一个实施例示意图,修复单元504,还包括:
修复写模块5058,用于在提示修复读成功时,将读取成功的文件数据在所述第二坏道上执行写操作;
第四判断模块5059,用于判断所述写操作是否成功;
第三提示模块5060,用于在所述写操作成功时,提示修复写成功;
第四提示模块5061,用于在所述写操作失败时,提示修复写失败,并将所述第二坏道数据迁移修复后,对第二坏道进行隔离。
需要说明的是,本实施例中各模块的作用与图4所述实施例中描述的类似,此处不再赘述。
本申请实施例中,在修复读成功后,通过修复写模块5058将读取成功的数据在第二坏道上执行修复写,并在写成功后,通过第三提示模块5060返回修复写成功,而在写失败后,返回修复写失败,并将第二坏道数据迁移修复后,对第二坏道进行隔离,确保修复的完全性和正确性。
上面从模块化功能实体的角度对本发明实施例中的坏道处理系统进行了描述,下面从硬件处理的角度对本发明实施例中的坏道处理系统进行描述:
本发明实施例中坏道处理系统一个实施例包括:
处理器以及存储器;
存储器用于存储计算机程序,处理器用于执行存储器中存储的计算机程序时,可以实现如下步骤:
获取分布式文件系统服务端与硬盘交互时,所述分布式文件系统服务端所接收的反馈信息;
判断所述反馈信息中是否包含IO错误指令;
若是,则根据所述IO错误指令验证所述硬盘是否存在坏道;
若是,则读取所述IO错误指令的类型,并根据所述IO错误指令的类型在所述硬盘坏道上对文件数据执行有效修复,所述IO错误指令的类型包括写错误指令和读错误指令。
在本发明的一些实施例中,处理器,还可以用于实现如下步骤:
若所述IO错误指令为写错误指令,则确定所述写错误指令中文件数据副本对应坏道的数量,并在每个坏道上重复执行对应的写操作,并统计所述写操作的重复次数;
当所述写操作的重复次数大于预设的第一次数阈值时,统计返回写操作失败指令对应第一坏道的第一数量;
判断所述第一数量是否大于所述文件数据的容错数量;
若大于,则提示多点故障,并对所述第一坏道进行隔离;
若不大于,则对第一坏道数据迁移修复后,对第一坏道进行隔离。
在本发明的一些实施例中,处理器,还可以用于实现如下步骤:
若所述IO错误指令为读错误指令,确定所述读错误指令对应文件数据副本的数量及各自的存储位置;
执行切源指令,所述切源指令用于根据预设的选择策略从所述文件数据的副本中确定预设副本,并从所述预设副本的存储位置执行读操作指令;
若切源失败,则验证所述预设副本的存储位置是否为坏道;
若所述预设副本的存储位置是坏道,则重复切源指令,并统计返回读操作失败指令对应第二坏道的第二数量;
判断所述第二数量是否大于所述文件数据的容错数量;
若大于,则提示修复读失败,并对所述第二坏道进行隔离;
若不大于,则提示修复读成功。
在本发明的一些实施例中,处理器,还可以用于实现如下步骤:
若切源成功,则统计所述读操作的重复次数;
当所述重复次数大于第二次数阈值时,判断是否读取成功;
若是,则提示修复读成功;
若否,则触发所述重复切源指令的步骤。
在本发明的一些实施例中,处理器,还可以用于实现如下步骤:
若所述预设副本的存储位置不是坏道,则触发执行统计所述读操作的重复次数。
在本发明的一些实施例中,处理器,还可以用于实现如下步骤:
当提示修复读成功时,将读取成功的文件数据在所述第二坏道上执行写操作;
判断所述写操作是否成功;
若是,则提示修复写成功;
若否,则提示修复写失败,并将第二坏道数据迁移修复后,对第二坏道进行隔离。
可以理解的是,上述说明的坏道处理系统中的处理器执行所述计算机程序时,也可以实现上述对应的各装置实施例中各单元的功能,此处不再赘述。示例性的,所述坏道处理系统可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述坏道处理系统中的执行过程。例如,所述计算机程序可以被分割成上述坏道处理系统中的各单元,各单元可以实现如上述相应坏道处理系统说明的具体功能。
所述计算机装置可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机装置可包括但不仅限于处理器、存储器。本领域技术人员可以理解,处理器、存储器仅仅是计算机装置的示例,并不构成对计算机装置的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机装置还可以包括输入输出设备、网络接入设备、总线等。
所述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本发明还提供了一种计算机可读存储介质,该计算机可读存储介质用于实现坏道处理系统的功能,其上存储有计算机程序,计算机程序被处理器执行时,处理器,可以用于执行如下步骤:
获取分布式文件系统服务端与硬盘交互时,所述分布式文件系统服务端所接收的反馈信息;
判断所述反馈信息中是否包含IO错误指令;
若是,则根据所述IO错误指令验证所述硬盘是否存在坏道;
若是,则读取所述IO错误指令的类型,并根据所述IO错误指令的类型在所述硬盘坏道上对文件数据执行有效修复,所述IO错误指令的类型包括写错误指令和读错误指令。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,可以具体用于执行如下步骤:
若所述IO错误指令为写错误指令,则确定所述写错误指令中文件数据副本对应坏道的数量,并在每个坏道上重复执行对应的写操作,并统计所述写操作的重复次数;
当所述写操作的重复次数大于预设的第一次数阈值时,统计返回写操作失败指令对应第一坏道的第一数量;
判断所述第一数量是否大于所述文件数据的容错数量;
若大于,则提示多点故障,并对所述第一坏道进行隔离;
若不大于,则对所述第一坏道数据迁移修复后,对第一坏道进行隔离。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,可以具体用于执行如下步骤:
若所述IO错误指令为读错误指令,确定所述读错误指令对应文件数据副本的数量及各自的存储位置;
执行切源指令,所述切源指令用于根据预设的选择策略从所述文件数据的副本中确定预设副本,并从所述预设副本的存储位置执行读操作指令;
若切源失败,则验证所述预设副本的存储位置是否为坏道;
若是,则重复切源指令,并统计返回读操作失败指令对应第二坏道的第二数量;
判断所述第二数量是否大于所述文件数据的容错数量;
若大于,则提示修复读失败,并对所述第二坏道进行隔离;
若不大于,则提示修复读成功。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,可以具体用于执行如下步骤:
若切源成功,则统计所述读操作的重复次数;
当所述重复次数大于第二次数阈值时,判断是否读取成功;
若是,则提示修复读成功;
若否,则触发所述重复切源指令的步骤。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,可以具体用于执行如下步骤:
若所述预设副本的存储位置不是坏道,则触发执行统计所述读操作的重复次数。
在本发明的一些实施例中,计算机可读存储介质存储的计算机程序被处理器执行时,处理器,可以具体用于执行如下步骤:
当提示修复读成功时,将读取成功的文件数据在所述第二坏道上执行写操作;
判断所述写操作是否成功;
若是,则提示修复写成功;
若否,则提示修复写失败,并将第二坏道数据迁移修复后,对第二坏道进行隔离。
可以理解的是,所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在相应的一个计算机可读取存储介质中。基于这样的理解,本发明实现上述相应的实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (14)

1.一种坏道处理方法,其特征在于,所述方法包括:
获取分布式文件系统服务端与硬盘交互时,所述分布式文件系统服务端所接收的反馈信息;
判断所述反馈信息中是否包含IO错误指令;
若是,则根据所述IO错误指令验证所述硬盘是否存在坏道;
若是,则读取所述IO错误指令的类型,并根据所述IO错误指令的类型在所述硬盘坏道上对文件数据执行有效修复,所述IO错误指令的类型包括写错误指令和读错误指令;
所述根据所述IO错误指令的类型在所述硬盘坏道上对文件数据执行有效修复,包括:
若所述IO错误指令为写错误指令,则确定所述写错误指令中文件数据副本对应坏道的数量,并在每个坏道上重复执行对应的写操作,并统计所述写操作的重复次数;
当所述写操作的重复次数大于预设的第一次数阈值时,统计返回写操作失败指令对应第一坏道的第一数量;
判断所述第一数量是否大于所述文件数据的容错数量;
若大于,则提示多点故障,并对所述第一坏道进行隔离;
若不大于,则对第一坏道数据迁移修复后,对所述第一坏道进行隔离。
2.根据权利要求1所述的方法,其特征在于,所述根据所述IO错误指令的类型在所述硬盘坏道上对文件数据执行有效修复,包括:
若所述IO错误指令为读错误指令,确定所述读错误指令对应文件数据副本的数量及各自的存储位置;
执行切源指令,所述切源指令用于根据预设的选择策略从所述文件数据的副本中确定预设副本,并从所述预设副本的存储位置执行读操作指令,以用于执行修复读。
3.根据权利要求2所述的方法,其特征在于,在所述执行切源指令之后,所述方法还包括:
若切源失败,则验证所述预设副本的存储位置是否为坏道;
若所述预设副本的存储位置是坏道,则重复切源指令,并统计返回读操作失败指令对应第二坏道的第二数量;
判断所述第二数量是否大于所述文件数据的容错数量;
若大于,则提示修复读失败,并对所述第二坏道进行隔离;
若不大于,则提示修复读成功。
4.根据权利要求3所述的方法,其特征在于,在所述执行切源指令之后,所述方法还包括:
若切源成功,则统计所述读操作的重复次数;
当所述重复次数大于第二次数阈值时,判断是否读取成功;
若是,则提示修复读成功;
若否,则触发所述重复切源指令的步骤。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若所述预设副本的存储位置不是坏道,则触发所述统计所述读操作的重复次数的步骤。
6.根据权利要求3至5中任一项所述的方法,其特征在于,所述方法还包括:
当提示修复读成功时,将读取成功的文件数据在所述第二坏道上执行写操作;
判断所述写操作是否成功;
若是,则提示修复写成功;
若否,则提示修复写失败,并将第二坏道数据迁移修复后,对所述第二坏道进行隔离。
7.一种坏道处理系统,其特征在于,包括:
获取单元,用于获取分布式文件系统服务端与硬盘交互时,所述分布式文件系统服务端所接收的反馈信息;
反馈判断单元,用于判断所述反馈信息中是否包含IO错误指令;
验证单元,用于在所述反馈信息中包含所述IO错误指令时,根据所述IO错误指令验证所述硬盘是否存在坏道;
修复单元,用于在所述硬盘存在坏道时,读取所述IO错误指令的类型,并根据所述IO错误指令的类型在所述硬盘坏道上对文件数据执行有效修复,所述IO错误指令的类型包括写错误指令和读错误指令;
所述修复单元,包括:
确定统计模块,用于在所述IO错误指令为写错误指令时,确定所述写错误指令中文件数据副本对应坏道的数量,并在每个坏道上重复执行对应的写操作,并统计所述写操作的重复次数;
统计模块,用于当所述写操作的重复次数大于预设的第一次数阈值时,统计返回写操作失败指令对应第一坏道的第一数量;
第一判断模块,用于判断所述第一数量是否大于所述文件数据的容错数量;
第一提示隔离模块,用于在所述第一数量大于所述文件数据的容错数量时,提示多点故障,并对所述第一坏道进行隔离;
迁移修复模块,用于在所述第一数量不大于所述文件数据的容错数量时,对第一坏道数据迁移修复后,对所述第一坏道进行隔离。
8.根据权利要求7所述的系统,其特征在于,所述修复单元,包括:
确定模块,用于在所述IO错误指令为读错误指令时,确定所述读错误指令对应文件数据副本的数量及各自的存储位置;
切源模块,用于执行切源指令,所述切源指令用于根据预设的选择策略从所述文件数据的副本中确定预设副本,并从所述预设副本的存储位置执行读操作指令,以用于执行修复读。
9.根据权利要求8所述的系统,其特征在于,所述修复单元,还包括:
验证模块,用于在切源失败时,验证所述预设副本的存储位置是否为坏道;
重复切源模块,用于在所述预设副本的存储位置为坏道时,重复切源指令,并统计返回读操作失败指令对应第二坏道的第二数量;
第二判断模块,用于判断所述第二数量是否大于所述文件数据的容错数量;
第二提示隔离模块,用于在所述第二数量大于所述文件数据的容错数量时,提示修复读失败,并对所述第二坏道进行隔离;
第一提示模块,用于在所述第二数量不大于所述文件数据的容错数量时,提示修复读成功。
10.根据权利要求9所述的系统,其特征在于,所述修复单元,还包括:
统计模块,用于在切源成功时,统计所述读操作的重复次数;
第三判断模块,用于在所述重复次数大于第二次数阈值时,判断是否读取成功;
第二提示模块,用于在读取成功时,提示修复读成功;
第一触发模块,用于在读取失败时,触发所述重复切源指令的步骤。
11.根据权利要求10所述的系统,其特征在于,所述修复单元,还包括:
第二触发模块,用于在所述预设副本的存储位置不是坏道时,触发所述统计所述读操作的重复次数的步骤。
12.根据权利要求9至11中任一项所述的系统,其特征在于,所述修复单元还包括:
修复写模块,用于在提示修复读成功时,将读取成功的文件数据在所述第二坏道上执行写操作;
第四判断模块,用于判断所述写操作是否成功;
第三提示模块,用于在所述写操作成功时,提示修复写成功;
第四提示模块,用于在所述写操作失败时,提示修复写失败,并将第二坏道数据迁移修复后,对所述第二坏道进行隔离。
13.一种坏道处理系统,其特征在于,包括处理器,所述处理器在执行存储于存储器上的计算机程序时,用于实现如权利要求1至6中任一项所述的坏道处理方法。
14.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,用于实现如权利要求1至6中任一项所述的坏道处理方法。
CN201811197313.5A 2018-10-15 2018-10-15 一种坏道处理方法及系统 Active CN111045858B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811197313.5A CN111045858B (zh) 2018-10-15 2018-10-15 一种坏道处理方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811197313.5A CN111045858B (zh) 2018-10-15 2018-10-15 一种坏道处理方法及系统

Publications (2)

Publication Number Publication Date
CN111045858A CN111045858A (zh) 2020-04-21
CN111045858B true CN111045858B (zh) 2023-12-29

Family

ID=70230210

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811197313.5A Active CN111045858B (zh) 2018-10-15 2018-10-15 一种坏道处理方法及系统

Country Status (1)

Country Link
CN (1) CN111045858B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112162909A (zh) * 2020-09-30 2021-01-01 新华三大数据技术有限公司 一种硬盘故障处理方法、装置、设备及机器可读存储介质
CN112559387B (zh) * 2020-12-23 2023-05-02 湖南国科微电子股份有限公司 一种读请求处理方法、装置、设备及介质
CN114356679B (zh) * 2022-03-18 2022-06-07 北京得瑞领新科技有限公司 实现坏块设置的方法、装置、存储介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101887351A (zh) * 2010-06-22 2010-11-17 杭州华三通信技术有限公司 一种磁盘阵列容错方法及其系统
CN103700387A (zh) * 2013-09-18 2014-04-02 福建鼎恩协创电子科技有限公司 硬盘坏道监测修复装置及方法
US9395923B1 (en) * 2013-09-27 2016-07-19 Emc Corporation Method and system for recovering from embedded errors from writing data to streaming media

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7237141B2 (en) * 2003-06-19 2007-06-26 Lsi Corporation Method for recovering data from a redundant storage object
CN102708019B (zh) * 2012-04-28 2014-12-03 华为技术有限公司 一种硬盘数据恢复方法、装置及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101887351A (zh) * 2010-06-22 2010-11-17 杭州华三通信技术有限公司 一种磁盘阵列容错方法及其系统
CN103700387A (zh) * 2013-09-18 2014-04-02 福建鼎恩协创电子科技有限公司 硬盘坏道监测修复装置及方法
US9395923B1 (en) * 2013-09-27 2016-07-19 Emc Corporation Method and system for recovering from embedded errors from writing data to streaming media

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
黄秀常.硬盘坏道修复对策与硬盘优化.中国科技信息.2005,(第1期),第15页. *

Also Published As

Publication number Publication date
CN111045858A (zh) 2020-04-21

Similar Documents

Publication Publication Date Title
CN109725822B (zh) 用于管理存储系统的方法、设备和计算机程序产品
US10013325B1 (en) Providing resiliency to a raid group of storage devices
CN111045858B (zh) 一种坏道处理方法及系统
US7565573B2 (en) Data-duplication control apparatus
CN103677650B (zh) 盘符漂移预防及处理方法及装置
CN102880522B (zh) 面向硬件故障的系统关键文件故障纠正方法及装置
US8930750B2 (en) Systems and methods for preventing data loss
EP3244315B1 (en) Method and apparatus for performing data recovery in redundant storage system
US9529674B2 (en) Storage device management of unrecoverable logical block addresses for RAID data regeneration
CN104484251A (zh) 一种硬盘故障的处理方法及装置
CN110750213A (zh) 一种硬盘管理方法及装置
EP0768604A2 (en) Promoting device level error to RAIDset level error to restore redundancy in a RAID array data storage system
CN110399247A (zh) 一种数据恢复方法、装置、设备及计算机可读存储介质
CN109726036B (zh) 一种存储系统中的数据重构方法和装置
CN112148204A (zh) 用于管理独立冗余盘阵列的方法、设备和计算机程序产品
CN113051104A (zh) 基于纠删码的磁盘间数据恢复方法及相关装置
CN113377569A (zh) 用于恢复数据的方法、设备和计算机程序产品
CN110955916B (zh) 一种数据完整性保护方法、系统及相关设备
CN106776142B (zh) 一种数据存储方法以及数据存储装置
CN110968456B (zh) 分布式存储系统中故障磁盘的处理方法及装置
CN116501259A (zh) 磁盘组双活同步方法、装置、计算机设备及存储介质
CN114442953B (zh) 一种数据校验的方法、系统、芯片和电子设备
CN115562594A (zh) 一种raid卡的构建方法、系统及相关装置
CN111506259B (zh) 数据存储、读取方法、装置、设备及可读存储介质
EP2176809A1 (en) Data storage method, apparatus and system for interrupted write recovery

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant