一种硬盘坏道的修复方法及装置.pdf

上传人:b*** 文档编号:171100 上传时间:2018-01-31 格式:PDF 页数:23 大小:1.17MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410468320.X

申请日:

2014.09.15

公开号:

CN104318960A

公开日:

2015.01.28

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G11C 29/44申请日:20140915|||公开

IPC分类号:

G11C29/44

主分类号:

G11C29/44

申请人:

华为数字技术(成都)有限公司

发明人:

周钊; 张海艳

地址:

611731 四川省成都市高新区西部园区清水河片区

优先权:

专利代理机构:

广州三环专利代理有限公司 44202

代理人:

郝传鑫;熊永强

PDF下载: PDF下载
内容摘要

本发明实施例公开了一种硬盘坏道的修复方法及装置,该方法包括在检测出磁盘阵列中存在硬盘坏道后获取硬盘坏道的坏道信息,其中,坏道信息包括硬盘坏道所处的目标硬盘、硬盘坏道在目标硬盘中的第一起始位置以及硬盘坏道的坏道长度,并以坏道信息以及硬盘与LUN的映射关系为依据获取硬盘坏道所处的目标LUN以及硬盘坏道在目标LUN中的第二起始位置,然后以第二起始位置以及坏道长度为依据解析目标LUN以获取硬盘坏道中存储数据的数据类型,最后以数据类型为依据修复硬盘坏道。实施本发明实施例能够根据硬盘坏道中存储数据的数据类型对硬盘坏道进行修复,从根本上解决了硬盘坏道所带来的业务影响。

权利要求书

1.  一种硬盘坏道的修复方法,其特征在于,包括:
检测磁盘阵列中是否存在硬盘坏道;
若检测结果为是,则获取所述硬盘坏道的坏道信息,所述坏道信息包括所述硬盘坏道所处的目标硬盘、所述硬盘坏道在所述目标硬盘中的第一起始位置以及所述硬盘坏道的坏道长度;
以所述坏道信息以及硬盘与LUN的映射关系为依据,获取所述硬盘坏道所处的目标LUN以及所述硬盘坏道在所述目标LUN中的第二起始位置;
以所述第二起始位置以及所述坏道长度为依据解析所述目标LUN以获取所述硬盘坏道中存储数据的数据类型,所述数据类型包括用户数据类型、非用户数据类型以及空数据类型中的至少一个;
以所述数据类型为依据修复所述硬盘坏道。

2.
  根据权利要求1所述的方法,其特征在于,当所述目标LUN中存在分区时,所述以所述第二起始位置以及所述坏道长度为依据解析所述目标LUN以获取所述硬盘坏道中存储数据的数据类型包括:
获取所述目标LUN包括的每个分区以及所述每个分区的分区长度;
以所述第二起始位置以及所述坏道长度为依据,获取所述硬盘坏道所处的目标分区,所述目标分区包括至少一个分区;
获取所述目标分区包括的各分区中存储数据的数据类型,以作为所述硬盘坏道中存储数据的数据类型。

3.
  根据权利要求2所述的方法,其特征在于,所述获取所述目标LUN包括的每个分区以及所述每个分区的分区长度之前,所述方法还包括:
判断所述第二起始位置是否处于所述目标LUN中的目标存储位置,所述目标存储位置存储有与所述每个分区对应的分区表,所述分区表包括所述每个分区的分区长度;
若判断结果为否,则执行所述获取所述目标LUN包括的每个分区以及所述每个分区的分区长度的操作;
若判断结果为是,则向用户输出用于指示分区表受损的指示信息,以使用户以所述指示信息为依据输入用于修复所述分区表的第一操作指令;
接收所述第一操作指令;
响应所述第一操作指令以修复所述分区表,并执行所述获取所述目标LUN包括的每个分区以及所述每个分区的分区长度的操作。

4.
  根据权利要求1所述的方法,其特征在于,当所述数据类型为所述用户数据类型时,所述以所述数据类型为依据修复所述硬盘坏道包括:
获取与所述硬盘坏道中存储数据对应的数据标识,所述存储数据的数据类型为所述用户数据类型;
向用户输出所述数据标识,以使用户以所述数据标识为依据输入用于修复所述硬盘坏道的第二操作指令;
接收所述第二操作指令;
响应所述第二操作指令以修复所述硬盘坏道。

5.
  根据权利要求4所述的方法,其特征在于,当所述数据类型为所述非用户数据类型时,所述以所述数据类型为依据修复所述硬盘坏道包括:
获取与所述非用户数据类型对应的修复规则;
以所述修复规则为依据修复所述硬盘坏道。

6.
  根据权利要求4所述的方法,其特征在于,当所述数据类型为所述空数据类型时,所述以所述数据类型为依据修复所述硬盘坏道包括:
对所述硬盘坏道中存储数据的数据类型为所述空数据类型的位置进行写零操作。

7.
  根据权利要求1所述的方法,其特征在于,当所述磁盘阵列中存在所述硬盘坏道时,所述获取所述硬盘坏道的坏道信息之前,所述方法还包括:
向用户输出用于提示是否修复所述硬盘坏道的提示信息;
接收用户输入的针对所述提示信息的响应消息,以修复所述硬盘坏道。

8.
  一种硬盘坏道的修复装置,其特征在于,包括:
检测模块,用于检测磁盘阵列中是否存在硬盘坏道;
获取模块,用于当所述检测模块的检测结果为是时,获取所述硬盘坏道的坏道信息,所述坏道信息包括所述硬盘坏道所处的目标硬盘、所述硬盘坏道在所述目标硬盘中的第一起始位置以及所述硬盘坏道的坏道长度;
所述获取模块,还用于以所述坏道信息以及硬盘与LUN的映射关系为依据获取所述硬盘坏道所处的目标LUN以及所述硬盘坏道在所述目标LUN中的第二起始位置;
解析模块,用于以所述第二起始位置以及所述坏道长度为依据解析所述目标LUN以获取所述硬盘坏道中存储数据的数据类型,所述数据类型包括用户数据类型、非用户数据类型以及空数据类型中的至少一个;
修复模块,用于以所述数据类型为依据修复所述硬盘坏道。

9.
  根据权利要求8所述的装置,其特征在于,所述解析模块包括第一获取子模块以及第二获取子模块,其中:
所述第一获取子模块,用于当所述目标LUN中存在分区时,获取所述目标LUN包括的每个分区以及所述每个分区的分区长度,并以所述第二起始位置以及所述坏道长度为依据,获取所述硬盘坏道所处的目标分区,所述目标分区包括至少一个分区;
所述第二获取子模块,用于获取所述目标分区包括的各分区中存储数据的数据类型,以作为所述硬盘坏道中存储数据的数据类型。

10.
  根据权利要求9所述的装置,其特征在于,所述解析模块还包括判断子模块、第一输出子模块、第一输入子模块以及第一修复子模块,其中:
所述判断子模块,用于当所述目标LUN中存在分区且在所述第一获取子模块获取所述目标LUN包括的每个分区以及所述每个分区的分区长度之前, 判断所述第二起始位置是否处于所述目标LUN中的目标存储位置,所述目标存储位置存储有与所述每个分区对应的分区表,所述分区表包括所述每个分区的分区长度;
所述第一获取子模块,还用于在所述判断子模块的判断结果为否时,获取所述目标LUN包括的每个分区以及所述每个分区的分区长度;
所述第一输出子模块,用于在所述判断子模块的判断结果为是时,向用户输出用于指示分区表受损的指示信息,以使用户以所述指示信息为依据输入用于修复所述分区表的第一操作指令;
所述第一输入子模块,用于接收所述第一操作指令;
所述第一修复子模块,用于响应所述第一操作指令以修复所述分区表。

11.
  根据权利要求8所述的装置,其特征在于,所述修复模块包括第三获取子模块、第二输出子模块、第二输入子模块以及第二修复子模块,其中:
所述第三获取子模块,用于当所述数据类型为所述用户数据类型时,获取与所述硬盘坏道中存储数据对应的数据标识,所述存储数据的数据类型为所述用户数据类型;
所述第二输出子模块,用于向用户输出所述数据标识,以使用户以所述数据标识为依据输入用于修复所述硬盘坏道的第二操作指令;
所述第二输入子模块,用于接收所述第二操作指令;
所述第二修复子模块,用于响应所述第二操作指令以修复所述硬盘坏道。

12.
  根据权利要求11所述的装置,其特征在于,所述第三获取子模块,还用于当所述数据类型为所述非用户数据类型时,获取与所述非用户数据类型对应的修复规则;
所述第二修复子模块,还用于以所述修复规则为依据修复所述硬盘坏道。

13.
  根据权利要求11所述的装置,其特征在于,所述第二修复子模块,还用于当所述数据类型为所述空数据类型时,对所述硬盘坏道中存储数据的 数据类型为所述空数据类型的位置进行写零操作。

14.
  根据权利要求8所述的装置,其特征在于,所述装置还包括输出模块以及输入模块,其中:
所述输出模块,用于当所述检测模块的检测结果为是且在所述修复模块以所述数据类型为依据修复所述硬盘坏道之前,向用户输出用于提示是否修复所述硬盘坏道的提示信息;
所述输入模块,用于接收用户输入的针对所述提示信息的响应消息,以修复所述硬盘坏道。

说明书

一种硬盘坏道的修复方法及装置
技术领域
本发明涉及计算机技术领域,具体涉及一种硬盘坏道的修复方法及装置。
背景技术
RAID(Redundant Array of Independent Disk,磁盘阵列)技术是一种把多块独立的硬盘按照不同的方式组合起来形成硬盘组(又称RAID)以提供数据冗余功能以及比单个硬盘更高的存储性能的技术。LUN(Logical Unit Number,逻辑单元号)是主机对SCSI(Small Computer System Interface,小型计算机系统接口)总线上可挂接设备的编号,其中,可挂接的设备通常被称为LUN设备,也通常被简称为LUN,而在实际应用中,LUN还可以用来表示从RAID中划分出的一段逻辑上连续的存储空间且该逻辑上连续的存储空间可以被划分成多个子区域,在LUN中存储的数据会在多个子区域中分开存储,其中,每一个子区域就是一个分区,这些需要存储的数据最终被存放在RAID中,如用户可以将与业务系统(如文件系统、数据库以及虚拟机等)相关的数据存储在RAID中。RAID上的任何故障都可能导致业务中断以及数据丢失,且RAID上最常见的故障为硬盘坏道,对于文件系统,硬盘坏道可能导致文件系统无法挂载、目录名丢失以及文件丢失等问题,对于数据库,硬盘坏道可能导致数据表查询失败以及数据库异常宕机后无法正常启动的问题,因此,修复硬盘坏道显得尤为重要。
现有技术中,通过RAID后台扫描以及用户触发业务访问的方式识别出硬盘坏道所处的硬盘、起始位置以及坏道长度后,RAID对硬盘坏道的修复方法为以扇区为单位对坏道位置全部写零,这样的修复方法不能从根本上解决硬盘坏道所带来的业务影响,如当硬盘坏道中的存储数据为用户数据时,对坏道位置全部写零会导致用户数据的丢失。
发明内容
本发明实施例公开了一种硬盘坏道的修复方法及装置,能够根据硬盘坏道中存储数据的数据类型对硬盘坏道进行修复,从根本上解决了硬盘坏道所带来的业务影响。
本发明实施例第一方面公开了一种硬盘坏道的修复方法,包括:
检测磁盘阵列中是否存在硬盘坏道;
若检测结果为是,则获取所述硬盘坏道的坏道信息,所述坏道信息包括所述硬盘坏道所处的目标硬盘、所述硬盘坏道在所述目标硬盘中的第一起始位置以及所述硬盘坏道的坏道长度;
以所述坏道信息以及硬盘与LUN的映射关系为依据,获取所述硬盘坏道所处的目标LUN以及所述硬盘坏道在所述目标LUN中的第二起始位置;
以所述第二起始位置以及所述坏道长度为依据解析所述目标LUN以获取所述硬盘坏道中存储数据的数据类型,所述数据类型包括用户数据类型、非用户数据类型以及空数据类型中的至少一个;
以所述数据类型为依据修复所述硬盘坏道。
在本发明实施例第一方面的第一种可能的实现方式中,当所述目标LUN中存在分区时,所述以所述第二起始位置以及所述坏道长度为依据解析所述目标LUN以获取所述硬盘坏道中存储数据的数据类型包括:
获取所述目标LUN包括的每个分区以及所述每个分区的分区长度;
以所述第二起始位置以及所述坏道长度为依据,获取所述硬盘坏道所处的目标分区,所述目标分区包括至少一个分区;
获取所述目标分区包括的各分区中存储数据的数据类型,以作为所述硬盘坏道中存储数据的数据类型。
结合本发明实施例第一方面的第一种可能的实现方式,在本发明实施例第一方面的第二种可能的实现方式中,所述获取所述目标LUN包括的每个分区以及所述每个分区的分区长度之前,所述方法还包括:
判断所述第二起始位置是否处于所述目标LUN中的目标存储位置,所述目标存储位置存储有与所述每个分区对应的分区表,所述分区表包括所述每 个分区的分区长度;
若判断结果为否,则执行所述获取所述目标LUN包括的每个分区以及所述每个分区的分区长度的操作;
若判断结果为是,则向用户输出用于指示分区表受损的指示信息,以使用户以所述指示信息为依据输入用于修复所述分区表的第一操作指令;
接收所述第一操作指令;
响应所述第一操作指令以修复所述分区表,并执行所述获取所述目标LUN包括的每个分区以及所述每个分区的分区长度的操作。
结合本发明实施例第一方面,在本发明实施例第一方面的第三种可能的实现方式中,当所述数据类型为所述用户数据类型时,所述以所述数据类型为依据修复所述硬盘坏道包括:
获取与所述硬盘坏道中存储数据对应的数据标识,所述存储数据的数据类型为所述用户数据类型;
向用户输出所述数据标识,以使用户以所述数据标识为依据输入用于修复所述硬盘坏道的第二操作指令;
接收所述第二操作指令;
响应所述第二操作指令以修复所述硬盘坏道。
结合本发明实施例第一方面的第三种可能的实现方式,在本发明实施例第一方面的第四种可能的实现方式中,当所述数据类型为所述非用户数据类型时,所述以所述数据类型为依据修复所述硬盘坏道包括:
获取与所述非用户数据类型对应的修复规则;
以所述修复规则为依据修复所述硬盘坏道。
结合本发明实施例第一方面的第三种可能的实现方式,在本发明实施例第一方面的第五种可能的实现方式中,当所述数据类型为所述空数据类型时,所述以所述数据类型为依据修复所述硬盘坏道包括:
对所述硬盘坏道中存储数据的数据类型为所述空数据类型的位置进行写零操作。
结合本发明实施例第一方面,在本发明实施例第一方面的第六种可能的 实现方式中,当所述磁盘阵列中存在所述硬盘坏道时,所述获取所述硬盘坏道的坏道信息之前,所述方法还包括:
向用户输出用于提示是否修复所述硬盘坏道的提示信息;
接收用户输入的针对所述提示信息的响应消息,以修复所述硬盘坏道。
本发明实施例第二方面公开了一种硬盘坏道的修复装置,包括:
检测模块,用于检测磁盘阵列中是否存在硬盘坏道;
获取模块,用于当所述检测模块的检测结果为是时,获取所述硬盘坏道的坏道信息,所述坏道信息包括所述硬盘坏道所处的目标硬盘、所述硬盘坏道在所述目标硬盘中的第一起始位置以及所述硬盘坏道的坏道长度;
所述获取模块,还用于以所述坏道信息以及硬盘与LUN的映射关系为依据获取所述硬盘坏道所处的目标LUN以及所述硬盘坏道在所述目标LUN中的第二起始位置;
解析模块,用于以所述第二起始位置以及所述坏道长度为依据解析所述目标LUN以获取所述硬盘坏道中存储数据的数据类型,所述数据类型包括用户数据类型、非用户数据类型以及空数据类型中的至少一个;
修复模块,用于以所述数据类型为依据修复所述硬盘坏道。
在本发明实施例第二方面的第一种可能的实现方式中,所述解析模块包括第一获取子模块以及第二获取子模块,其中:
所述第一获取子模块,用于当所述目标LUN中存在分区时,获取所述目标LUN包括的每个分区以及所述每个分区的分区长度,并以所述第二起始位置以及所述坏道长度为依据,获取所述硬盘坏道所处的目标分区,所述目标分区包括至少一个分区;
所述第二获取子模块,用于获取所述目标分区包括的各分区中存储数据的数据类型,以作为所述硬盘坏道中存储数据的数据类型。
结合本发明实施例第二方面的第一种可能的实现方式,在本发明实施例第二方面的第二种可能的实现方式中,所述解析模块还包括判断子模块、第一输出子模块、第一输入子模块以及第一修复子模块,其中:
所述判断子模块,用于当所述目标LUN中存在分区且在所述第一获取子 模块获取所述目标LUN包括的每个分区以及所述每个分区的分区长度之前,判断所述第二起始位置是否处于所述目标LUN中的目标存储位置,所述目标存储位置存储有与所述每个分区对应的分区表,所述分区表包括所述每个分区的分区长度;
所述第一获取子模块,还用于在所述判断子模块的判断结果为否时,获取所述目标LUN包括的每个分区以及所述每个分区的分区长度;
所述第一输出子模块,用于在所述判断子模块的判断结果为是时,向用户输出用于指示分区表受损的指示信息,以使用户以所述指示信息为依据输入用于修复所述分区表的第一操作指令;
所述第一输入子模块,用于接收所述第一操作指令;
所述第一修复子模块,用于响应所述第一操作指令以修复所述分区表。
结合本发明实施例第二方面,在本发明实施例第二方面的第三种可能的实现方式中,所述修复模块包括第三获取子模块、第二输出子模块、第二输入子模块以及第二修复子模块,其中:
所述第三获取子模块,用于当所述数据类型为所述用户数据类型时,获取与所述硬盘坏道中存储数据对应的数据标识,所述存储数据的数据类型为所述用户数据类型;
所述第二输出子模块,用于向用户输出所述数据标识,以使用户以所述数据标识为依据输入用于修复所述硬盘坏道的第二操作指令;
所述第二输入子模块,用于接收所述第二操作指令;
所述第二修复子模块,用于响应所述第二操作指令以修复所述硬盘坏道。
结合本发明实施例第二方面的第三种可能的实现方式,在本发明实施例第二方面的第四种可能的实现方式中,所述第三获取子模块,还用于当所述数据类型为所述非用户数据类型时,获取与所述非用户数据类型对应的修复规则;
所述第二修复子模块,还用于以所述修复规则为依据修复所述硬盘坏道。
结合本发明实施例第二方面的第三种可能的实现方式,在本发明实施例第二方面的第五种可能的实现方式中,所述第二修复子模块,还用于当所述 数据类型为所述空数据类型时,对所述硬盘坏道中存储数据的数据类型为所述空数据类型的位置进行写零操作。
结合本发明实施例第二方面,在本发明实施例第二方面的第六种可能的实现方式中,所述装置还包括输出模块以及输入模块,其中:
所述输出模块,用于当所述检测模块的检测结果为是且在所述修复模块以所述数据类型为依据修复所述硬盘坏道之前,向用户输出用于提示是否修复所述硬盘坏道的提示信息;
所述输入模块,用于接收用户输入的针对所述提示信息的响应消息,以修复所述硬盘坏道。
本发明实施例中,在检测出磁盘阵列中存在硬盘坏道后获取硬盘坏道的坏道信息,其中,坏道信息包括硬盘坏道所处的目标硬盘、硬盘坏道在目标硬盘中的第一起始位置以及硬盘坏道的坏道长度,并以坏道信息以及硬盘与LUN的映射关系为依据获取硬盘坏道所处的目标LUN以及硬盘坏道在目标LUN中的第二起始位置,然后以第二起始位置以及坏道长度为依据解析目标LUN以获取硬盘坏道中存储数据的数据类型,最后以数据类型为依据修复硬盘坏道。实施本发明实施例能够根据硬盘坏道中存储数据的数据类型对硬盘坏道进行修复,从根本上解决了硬盘坏道所带来的业务影响。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的一种硬盘坏道的修复方法的流程示意图;
图2是本发明实施例公开的另一种硬盘坏道的修复方法的流程示意图;
图3是本发明实施例公开的一种获取硬盘坏道中存储数据的数据类型的方法的流程示意图;
图4是本发明实施例公开的一种硬盘坏道的修复装置的结构示意图;
图5是本发明实施例公开的另一种硬盘坏道的修复装置的结构示意图;
图6是本发明实施例公开的又一种硬盘坏道的修复装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种硬盘坏道的修复方法及装置,能够根据硬盘坏道中存储数据的数据类型对硬盘坏道进行修复,从根本上解决了硬盘坏道所带来的业务影响。
请参阅图1,图1是本发明实施例公开的一种硬盘坏道的修复方法的流程示意图。其中,图1所示的方法可以应用于磁盘阵列中或使用磁盘阵列作为存储系统的装置中,本发明实施例不做限定。如图1所示,该方法可以包括以下步骤:
S101、检测磁盘阵列中是否存在硬盘坏道。
本发明实施例中,磁盘阵列或使用磁盘阵列作为存储系统的装置可以通过磁盘阵列后台扫描以及用户触发业务访问的方式识别出硬盘坏道。
本发明实施例中,若步骤S101的检测结果为是,则执行步骤S102,若步骤S101的检测结果为否,则结束本次检测操作。
S102、获取硬盘坏道的坏道信息。
本发明实施例中,坏道信息可以包括硬盘坏道所处的目标硬盘、硬盘坏道在目标硬盘中的第一起始位置(如第M个扇区,M为大于零的整数)以及硬盘坏道的坏道长度,其中,硬盘坏道的坏道长度以扇区为单位。
S103、以坏道信息以及硬盘与LUN的映射关系为依据,获取硬盘坏道所处的目标LUN以及硬盘坏道在目标LUN中的第二起始位置。
本发明实施例中,硬盘坏道所处的目标LUN的个数为大于等于1的整数,当目标LUN的个数大于1时,则表示硬盘坏道为跨LUN的硬盘坏道,这里涉及 到硬盘坏道的拆分,即将硬盘坏道拆分成多个硬盘坏道,拆分后的每个硬盘坏道所处的目标LUN的个数为1,且磁盘阵列或使用磁盘阵列作为存储系统的装置对每个目标LUN的解析原理以及修复原理相同。
S104、以第二起始位置以及坏道长度为依据解析目标LUN以获取硬盘坏道中存储数据的数据类型。
本发明实施例中,数据类型可以包括用户数据类型、非用户数据类型以及空数据类型中的至少一个,本发明实施例不做限定。
作为一种可选的实施方式,当目标LUN中存在分区时,以第二起始位置以及坏道长度为依据解析目标LUN以获取硬盘坏道中存储数据的数据类型可以包括:
获取目标LUN包括的每个分区以及每个分区的分区长度;
以第二起始位置以及坏道长度为依据,获取硬盘坏道所处的目标分区,其中,目标分区包括至少一个分区;
获取目标分区包括的各分区中存储数据的数据类型,以作为硬盘坏道中存储数据的数据类型。
作为另一种可选的实施方式,当目标LUN中存在分区时,以第二起始位置以及坏道长度为依据解析目标LUN以获取硬盘坏道中存储数据的数据类型可以包括:
判断第二起始位置是否处于目标LUN中的目标存储位置,其中,目标存储位置存储有与每个分区对应的分区表,分区表包括每个分区的分区长度;
当判断结果为否时,获取目标LUN包括的每个分区以及每个分区的分区长度,并以第二起始位置以及坏道长度为依据获取硬盘坏道所处的目标分区,获取目标分区包括的各分区中存储数据的数据类型,以作为硬盘坏道中存储数据的数据类型。
当判断结果为是时,向用户输出用于指示分区表受损的指示信息,以使用户以指示信息为依据输入用于修复分区表的第一操作指令,接收并响应第一操作指令以修复分区表,获取目标LUN包括的每个分区以及每个分区的分区长度,并以第二起始位置以及坏道长度为依据获取硬盘坏道所处的目标分 区,获取目标分区包括的各分区中存储数据的数据类型,以作为硬盘坏道中存储数据的数据类型。
S105、以数据类型为依据修复硬盘坏道。
作为一种可选的实施方式,当数据类型为用户数据类型时,以数据类型为依据修复硬盘坏道可以包括:
获取与硬盘坏道中存储数据对应的数据标识,其中,存储数据的数据类型为用户数据类型;
向用户输出数据标识,以使用户以数据标识为依据输入用于修复硬盘坏道的第二操作指令;
接收第二操作指令;
响应第二操作指令以修复硬盘坏道。
作为另一种可选的实施方式,当数据类型为非用户数据类型时,以数据类型为依据修复硬盘坏道可以包括:
获取与非用户数据类型对应的修复规则;
以修复规则为依据修复硬盘坏道。
作为又一种可选的实施方式,当数据类型为空数据类型时,以数据类型为依据修复硬盘坏道可以包括:
对硬盘坏道中存储数据的数据类型为空数据类型的位置进行写零操作。
本发明实施例中,在检测出磁盘阵列中存在硬盘坏道后获取硬盘坏道的坏道信息,其中,坏道信息包括硬盘坏道所处的目标硬盘、硬盘坏道在目标硬盘中的第一起始位置以及硬盘坏道的坏道长度,并以坏道信息以及硬盘与LUN的映射关系为依据获取硬盘坏道所处的目标LUN以及硬盘坏道在目标LUN中的第二起始位置,然后以第二起始位置以及坏道长度为依据解析目标LUN以获取硬盘坏道中存储数据的数据类型,最后以数据类型为依据修复硬盘坏道。实施本发明实施例能够根据硬盘坏道中存储数据的数据类型对硬盘坏道进行修复,从根本上解决了硬盘坏道所带来的业务影响。
请参阅图2,图2是本发明实施例公开的另一种硬盘坏道的修复方法的流 程示意图。其中,图2所示的方法可以应用于磁盘阵列中或使用磁盘阵列作为存储系统的装置中,本发明实施例不做限定。如图2所示,该方法可以包括以下步骤:
S201、检测磁盘阵列中是否存在硬盘坏道。
本发明实施例中,若步骤S201的检测结果为是,则执行步骤S202,若步骤S201的检测结果为否,则结束本次检测操作。
S202、向用户输出用于提示是否修复硬盘坏道的提示信息。
本发明实施例中,在检测到磁盘阵列中存在硬盘坏道后,向用户输出用于提示是否修复硬盘坏道的提示信息,以提示用户磁盘阵列中存在硬盘坏道并使用户根据自身需求选择是否修复硬盘坏道,提高了用户体验。
S203、接收用户输入的针对提示信息的响应消息。
本发明实施例中,响应消息用于指示磁盘阵列或使用磁盘阵列作为存储系统的装置修复硬盘坏道。
S204、获取硬盘坏道的坏道信息。
S205、以坏道信息以及硬盘与LUN的映射关系为依据,获取硬盘坏道所处的目标LUN以及硬盘坏道在目标LUN中的第二起始位置。
S206、检测目标LUN中是否存在分区;
本发明实施例中,分区的格式可以包括GPT(GUID Partition Table,全局唯一标识分区表)格式或MBR(Master Boot Record,主引导记录)格式,本发明实施例不做限定。
本发明实施例中,若步骤S206的检测结果为是,则执行步骤S207,若步骤S206的检测结果为否,则执行步骤S208。
S207、判断第二起始位置是否处于目标LUN中的目标存储位置。
本发明实施例中,目标存储位置存储有与目标LUN包括的分区对应的分区表,分区表中包括目标LUN中每个分区的分区长度,可选的,目标存储位置可以为目标LUN中的前2K的存储位置,本发明实施例不做限定。
本发明实施例中,若步骤S207的判断结果为是,则执行步骤S209、若步骤S207的判断结果为否,则执行步骤S214。
S208、以第二起始位置以及坏道长度为依据解析目标LUN以获取硬盘坏道中存储数据的数据类型。
本发明实施例中,数据类型可以包括用户数据类型、非用户数据类型以及空数据类型中的至少一个,本发明实施例不做限定。
S209、向用户输出用于指示分区表受损的指示信息,以使用户以指示信息为依据输入用于修复分区表的第一操作指令。
S210、接收第一操作指令。
S211、响应第一操作指令以修复分区表。
S212、获取目标LUN包括的每个分区以及每个分区的分区长度。
S213、以第二起始位置以及坏道长度为依据,获取硬盘坏道所处的目标分区。
本发明实施例中,目标分区包括至少一个分区,当目标分区的个数大于1时,则表示硬盘坏道为跨分区的硬盘坏道,这里涉及到对硬盘坏道的拆分,即将硬盘坏道拆分成多个硬盘坏道,拆分后的每个硬盘坏道所处的目标分区的个数为1,且磁盘阵列或使用磁盘阵列作为存储系统的装置对每个目标分区的解析原理以及修复原理相同。
S214、获取目标分区包括的各分区中存储数据的数据类型。
本发明实施例中,数据类型可以包括用户数据类型以及非用户数据类型中的至少一个,本发明实施例不做限定。
S215、判断数据类型是否为用户数据类型。
本发明实施例中,若步骤S216的判断结果为是,则执行步骤S217,若步骤S216的判断结果为否,则执行步骤S221。
S216、获取与硬盘坏道中存储数据对应的数据标识。
本发明实施例中,存储数据的数据类型为用户数据类型。
S217、向用户输出数据标识,以使用户以数据标识为依据输入用于修复硬盘坏道的第二操作指令。
S218、接收第二操作指令。
S219、响应第二操作指令以修复硬盘坏道。
S220、获取与非用户数据类型对应的修复规则。
S221、以修复规则为依据修复硬盘坏道。
实施本发明实施例能够在硬盘坏道影响用户的业务访问之前发出告警信息,且能够根据硬盘坏道中存储数据的数据类型及时对硬盘坏道进行自动修复或根据硬盘坏道中存储数据的数据类型及时向用户输出硬盘坏道信息以使用户手动对硬盘坏道进行修复,从根本上解决了硬盘坏道所带来的业务影响。
请参阅图3,图3是本发明实施例公开的一种获取硬盘坏道中存储数据的数据类型的方法的流程示意图。其中,如图3所示的方法可以应用于图1以及图2所示的硬盘坏道的修复方法中。如图3所示,假设识别出硬盘坏道所处的目标LUN中存储数据为与EXT3文件系统对应的数据,其中,与EXT3对应的数据即可以直接存储在目标LUN中,也可以存储在目标LUN中的分区中,且假设当与EXT3文件系统对应的数据存储在目标LUN中的分区中时,硬盘坏道在目标LUN中的起始位置未处于前2k中,该获取硬盘坏道中存储数据的数据类型的方法可以包括以下步骤:
S301、判断目标LUN或目标LUN中与硬盘坏道对应的目标分区中各分区1K~2K的存储位置中是否存在硬盘坏道。
本发明实施例中,若步骤S301的判断结果为是,则执行步骤S302,若步骤S301的判断结果为否,则执行步骤S304。
S302、确认目标LUN或目标分区中各分区的主超级块受损。
S303、获取与主超级块对应的备份超级块以修复主超级块。
S304、确认目标LUN或目标分区中各分区的1K~2K的存储位置存储有EXT3的超级块。
本发明实施例中,确认目标LUN或目标分区中各分区的1K~2K的存储位置存储有EXT3的超级块的具体方式可以为:
判断目标LUN或目标分区中各分区存储的超级块中0x38~0x39处的值是否为“53EF”,若判断结果为是,则确定目标LUN或目标分区中各分区的1K~2K存储位置存储有EXT3的超级块。
S305、根据EXT3中的主超级块结构获取超级块信息并计算出EXT3文件系统中的块组数。
本发明实施例中,块组数是由EXT3文件系统的总块数除以每个块组中的块数并向上取整而得到的。
S306、判断主超级块的块组描述符表的位置是否存在硬盘坏道。
本发明实施例中,若步骤S306的判断结果为是,则执行步骤S307,若步骤S306的判断结果为否,则执行步骤S309。
S307、确认目标LUN或目标分区中主超级块的块组描述符表受损。
S308、获取与主超级块的块组描述符表对应的备份块组描述符表以修复主超级块的块组描述符表。
S309、以主超级块的块组描述符表记录的各个块组的结构信息获取目标LUN或目标分区中各分区存储数据的数据类型。
本发明实施例中,存储数据的数据类型可以包括用户数据类型以及非用户数据类型中的至少一个,其中,用户数据类型的存储数据可以包括索引节点以及数据块,非用户数据类型的存储数据可以包括备份超级块、备份块组描述符表、全局描述符表保留块、块位图以及索引节点位图,其中:
备份超级块以及备份块组描述符表仅在块组号为3、5以及7的幂次方的块组中出现,如块组号为1、3、5、7、9、25、27、49、81……。
全局描述符表保留块存在于包括块组描述符表的块组中,且全局描述符表保留块是块组描述符表中未被块组描述符表使用完的区域。
块组描述符表以32字节为单位且用于描述各块组的结构,其包括块位图起始位置(如块位图块号)、索引节点起始位置(如索引节点位图块号)以及索引节点表起始地址(如索引节点表起始块号)等信息,块组描述符表的结构可以如表1所示。
表1块组描述符表

偏移量(十六进制)字节数含义00-034块位图块号04-074索引节点位图块号

08-0B4索引节点表起始块号

每个索引节点都存在一个索引节点编号,解析与硬盘坏道对应的索引节点的索引节点编号的方法可以为根据与硬盘坏道对应的索引节点所处的位置、块组描述符表中记录的各块组的索引节点表的起始位置(如索引节点表起始块号)、索引节点大小以及索引节点的编号规律解析出与硬盘坏道对应的索引节点的索引节点编号。
当存储数据为数据块时,解析与硬盘坏道对应的数据块的索引节点编号的方法可以为借助块位图筛选出未被任何索引节点使用的数据块并将该未被使用的数据块的索引节点编号置为0,对于其它数据块,通过遍历所有已经被索引节点使用过的数据块以确定出与硬盘坏道对应的数据块被哪些索引节点使用,并将数据块的索引节点编号置为使用该数据块的索引节点的索引节点编号。
本发明实施例中,当解析出存储数据为数据块或索引节点时,磁盘阵列或使用磁盘阵列作为存储系统的装置需解析出与数据块或索引节点对应的包括完整路径的文件名,且解析包括完整路径的文件名的方法可以为:根据索引节点位图判断索引节点是否被使用,若索引节点未被使用,则将与该索引节点对应的文件名置为“not used”,对于其它索引节点以及数据块,则通过遍历所有正在被使用的索引节点或数据块的目录并解析目录中记录的目录项以获取与数据块或索引节点对应的包括完整路径的文件名。
S310、以获取到的存储数据的数据类型修复目标LUN或目标分区中的硬盘坏道。
对存储数据为备份超级块以及备份块组描述符表的硬盘坏道的修复规则为利用主超级块以及主超级块的块组描述符表来修复。
对存储数据为全局描述符表保留块的硬盘坏道的修复规则为对该硬盘坏道位置进行写零操作。
对存储数据为索引节点位图以及块位图的硬盘坏道的修复规则为对该硬盘坏道位置进行写“1”操作,并在存储管理软件的告警日志中记录“紧急”级别的告警,且在挂载EXT3文件系统之后使用EXT3文件系统自带的FSCK (File System Check,文件系统检查)命令正确修复索引节点位图以及块位图。
对存储数据为索引节点且文件名为“not used”的硬盘坏道的修复规则为对该硬盘坏道位置进行写零操作。
对存储数据为索引节点且文件名不为“not used”的硬盘坏道的修复规则为编辑结构正确的索引节点(文件大小为0)写至该硬盘坏道位置,即编辑一个空的索引节点以便在修复硬盘坏道时能够直接使用该结构正确的索引节点。
对存储数据为数据块的硬盘坏道的修复规则为对该硬盘坏道位置进行写零操作。
本发明实施例中,上述对存储数据为索引节点的修复规则只是修复了索引节点的结构,上述对存储数据为数据块的修复规则只是使与该数据块对应的文件能够被访问,而无法将与索引节点以及数据块分别对应的数据修复,之后,磁盘阵列或使用磁盘阵列作为存储系统的装置会向用户输出与索引节点以及数据块分别对应的数据标识(如文件名),以使用户通过上层应用的备份或容灾系统进行对索引节点以及数据块进行修复。
本发明实施例中,当目标LUN中存在分区且硬盘坏道在目标LUN中的起始位置处于前2k中时,这表明目标LUN中的分区表受损,磁盘阵列或使用磁盘阵列作为存储系统的装置向用户输出用于指示与目标LUN中的目标分区的分区类型对应的分区表受损的指示信息,以使用户以该指示信息为依据输入用于修复分区表的第一操作指令,磁盘阵列或使用磁盘阵列作为存储系统的装置接收并响应该第一操作指令以修复分区表。
请参阅图4,图4是本发明实施例公开的一种硬盘坏道的修复装置的结构示意图。其中,如图4所示的装置可以执行图1以及图2所示的硬盘坏道的修复方法。如图4所示,该硬盘坏道的修复装置400可以包括检测模块401、获取模块402、解析模块403以及修复模块404,其中:
检测模块401用于检测磁盘阵列中是否存在硬盘坏道。
获取模块402用于当检测模块的检测结果为是时,获取硬盘坏道的坏道信 息。
本发明实施例中,硬盘坏道的坏道信息可以包括硬盘坏道所处的目标硬盘、硬盘坏道在目标硬盘中的第一起始位置以及硬盘坏道的坏道长度。
获取模块402还用于以坏道信息以及硬盘与LUN的映射关系为依据获取硬盘坏道所处的目标LUN以及硬盘坏道在目标LUN中的第二起始位置。
解析模块403用于以第二起始位置以及坏道长度为依据解析目标LUN以获取硬盘坏道中存储数据的数据类型。
本发明实施例中,数据类型包括用户数据类型、非用户数据类型以及空数据类型中的至少一个,本发明实施例不做限定。
修复模块404用于以数据类型为依据修复硬盘坏道。
实施本发明实施例能够根据硬盘坏道中存储数据的数据类型对硬盘坏道进行修复,从根本上解决了硬盘坏道所带来的业务影响。
请参阅图5,图5是本发明实施例公开的另一种硬盘坏道的修复装置的结构示意图。其中,如图5所示的装置可以执行图1以及图2所示的硬盘坏道的修复方法。如图5所示,该硬盘坏道的修复装置500可以包括检测模块501、输出模块502、输入模块503、获取模块504、解析模块505以及修复模块506,其中:
检测模块501检测磁盘阵列中是否存在硬盘坏道。
输出模块502用于当检测模块501的检测结果为是时,向用户输出用于提示是否修复硬盘坏道的提示信息。
输入模块503用于接收用户输入的针对提示信息的响应消息。
本发明实施例中,响应消息用于指示硬盘坏道的修复装置500修复硬盘坏道。
获取模块504用于获取硬盘坏道的坏道信息。
获取模块504还用于以坏道信息以及硬盘与LUN的映射关系为依据获取硬盘坏道所处的目标LUN以及硬盘坏道在目标LUN中的第二起始位置。
解析模块505用于以第二起始位置以及坏道长度为依据解析目标LUN以获取硬盘坏道中存储数据的数据类型。
作为一种可选的实施方式,解析模块505可以包括第一获取子模块5051以及第二获取子模块5052,其中:
第一获取子模块5051用于当目标LUN中存在分区时,获取目标LUN包括的每个分区以及每个分区的分区长度,并以第二起始位置以及坏道长度为依据,获取硬盘坏道所处的目标分区。
第二获取子模块5052用于获取目标分区包括的各分区中存储数据的数据类型,以作为硬盘坏道中存储数据的数据类型。
作为另一种可选的实施方式,解析模块505还可以包括判断子模块5053、第一输出子模块5054、第一输入子模块5055以及第一修复子模块5056,其中:
判断子模块5053用于当目标LUN中存在分区时,判断第二起始位置是否处于目标LUN中的目标存储位置。
第一获取子模块5051还可以用于当判断子模块5053的判断结果为否时,获取目标LUN包括的每个分区以及每个分区的分区长度。
第一输出子模块5054用于当判断子模块5053的判断结果为是时,向用户输出用于指示分区表受损的指示信息,以使用户以指示信息为依据输入用于修复分区表的第一操作指令。
第一输入子模块5055用于接收第一操作指令。
第一修复子模块5056用于响应第一操作指令以修复分区表。
本发明实施例中,第一修复子模块5056修复好分区表以使第一获取子模块5051从修复好的分区表中获取目标LUN包括的每个分区以及每个分区的分区长度。
修复模块506用于以数据类型为依据修复硬盘坏道。
作为一种可选的实施方式,修复模块506可以包括第三获取子模块5061、第二输出子模块5062、第二输入子模块5063以及第二修复子模块5064,其中:
第三获取子模块5061用于当数据类型为用户数据类型时,获取与硬盘坏道中存储数据对应的数据标识。
第二输出子模块5062用于向用户输出数据标识,以使用户以数据标识为依据输入用于修复硬盘坏道的第二操作指令。
第二输入子模块5063用于接收第二操作指令。
第二修复子模块5064用于响应第二操作指令以修复硬盘坏道。
作为另一种可选的实施方式,第三获取子模块5061还可以用于当数据类型为非用户数据类型时,获取与非用户数据类型对应的修复规则。
第二修复子模块5064还可以用于以修复规则为依据修复硬盘坏道。
作为又一种可选的实施方式,第二修复子模块5064还可以用于当数据类型为空数据类型时,对硬盘坏道中存储数据的数据类型为空数据类型的位置进行写零操作。
实施本发明实施例能够在硬盘坏道影响用户的业务访问之前发出告警信息,且能够根据硬盘坏道中存储数据的数据类型及时对硬盘坏道进行自动修复或根据硬盘坏道中存储数据的数据类型及时向用户输出硬盘坏道信息以使用户手动对硬盘坏道进行修复,从根本上解决了硬盘坏道所带来的业务影响。
请参阅图6,图6是本发明实施例公开的又一种硬盘坏道的修复装置的结构示意图。其中,如图6所示的装置可以执行图1以及图2所示的硬盘坏道的修复方法。如图6所示,该硬盘坏道的修复装置600可以包括:至少一个处理器601,如CPU,输入装置602,输出装置603,存储器604以及至少一个通信总线605,存储器604可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),如至少一个磁盘存储器,可选的,存储器604还可以是至少一个位于远离前述处理器601的存储装置。其中:
通信总线605用于实现这些组件之间的连接通信;
处理器601用于调用存储器604中存储的程序代码,用于执行以下操作:
检测磁盘阵列中是否存在硬盘坏道;
若检测结果为是,则获取硬盘坏道的坏道信息,其中,坏道信息包括硬盘坏道所处的目标硬盘、硬盘坏道在目标硬盘中的第一起始位置以及硬盘坏道的坏道长度;
以坏道信息以及硬盘与LUN的映射关系为依据,获取硬盘坏道所处的目标LUN以及硬盘坏道在目标LUN中的第二起始位置;
以第二起始位置以及坏道长度为依据解析目标LUN以获取硬盘坏道中存储数据的数据类型,其中,数据类型可以包括用户数据类型、非用户数据类型以及空数据类型中的至少一个;
以数据类型为依据修复硬盘坏道。
作为一种可选的实施方式,当目标LUN中存在分区时,处理器601以第二起始位置以及坏道长度为依据解析目标LUN以获取硬盘坏道中存储数据的数据类型的具体方式可以为:
获取目标LUN包括的每个分区以及每个分区的分区长度;
以第二起始位置以及坏道长度为依据,获取硬盘坏道所处的目标分区,其中,目标分区包括至少一个分区;
获取目标分区包括的各分区中存储数据的数据类型,以作为硬盘坏道中存储数据的数据类型。
作为一种可选的实施例,当目标LUN中存在分区时,处理器601以第二起始位置以及坏道长度为依据解析目标LUN以获取硬盘坏道中存储数据的数据类型的具体方式可以为:
判断第二起始位置是否处于目标LUN中的目标存储位置,其中,目标存储位置存储有与每个分区对应的分区表,分区表包括每个分区的分区长度。
本发明实施例中,当处理器601判断出第二起始位置没有处于目标LUN中的目标存储位置时,处理器601获取目标LUN包括的每个分区以及每个分区的分区长度,并以第二起始位置以及坏道长度为依据,获取硬盘坏道所处的目标分区,其中,目标分区包括至少一个分区,然后获取目标分区包括的各分区中存储数据的数据类型,以作为硬盘坏道中存储数据的数据类型;当处理器601判断出第二起始位置处于目标LUN中的目标存储位置时,处理器601向用户输出用于指示分区表受损的指示信息以使用户以指示信息为依据输入用于修复分区表的第一操作指令,接收第一操作指令并响应第一操作指令以修复分区表,然后获取目标LUN包括的每个分区以及每个分区的分区长度,并以第二起始位置以及坏道长度为依据,获取硬盘坏道所处的目标分区,其中,目标分区包括至少一个分区,最后,获取目标分区包括的各分区中存储数据 的数据类型,以作为硬盘坏道中存储数据的数据类型。
作为一种可选的实施方式,当数据类型为用户数据类型时,处理器601以数据类型为依据修复硬盘坏道的具体方式可以为:
获取与硬盘坏道中存储数据对应的数据标识,其中,存储数据的数据类型为用户数据类型;
向用户输出数据标识,以使用户以数据标识为依据输入用于修复硬盘坏道的第二操作指令;
接收第二操作指令;
响应第二操作指令以修复硬盘坏道。
作为一种可选的实施方式,当数据类型为非用户数据类型时,处理器601以数据类型为依据修复硬盘坏道的具体方式可以为:
获取与非用户数据类型对应的修复规则;
以修复规则为依据修复硬盘坏道。
作为又一种可选的实施方式,当数据类型为空数据类型时,处理器601以数据类型为依据修复硬盘坏道的具体方式可以为:
对硬盘坏道中存储数据的数据类型为空数据类型的位置进行写零操作。
作为一种可选的实施方式,处理器601检测出磁盘阵列中存在硬盘坏道时,且在处理器601获取硬盘坏道的坏道信息之前,输出装置603用于向用户输出用于提示是否修复硬盘坏道的提示信息,输入装置602用于接收用户输入的针对提示信息的响应消息,以修复硬盘坏道。
实施本发明实施例能够在硬盘坏道影响用户的业务访问之前发出告警信息,且能够根据硬盘坏道中存储数据的数据类型及时对硬盘坏道进行自动修复或根据硬盘坏道中存储数据的数据类型及时向用户输出硬盘坏道信息以使用户手动对硬盘坏道进行修复,从根本上解决了硬盘坏道所带来的业务影响。
需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作、模块以及子模块并不一定是本发明所必须的。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例装置中的模块以及子模块可以根据实际需要进行合并、划分和删减。
本发明实施例中所述模块以及子模块可以通过通用集成电路,例如CPU(Central Processing Unit,中央处理器),或通过ASIC(Application Specific Integrated Circuit,专用集成电路)来实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上对本发明实施例所提供的一种硬盘坏道的修复方法及装置进行了详细介绍,本文中应用了具体实例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

一种硬盘坏道的修复方法及装置.pdf_第1页
第1页 / 共23页
一种硬盘坏道的修复方法及装置.pdf_第2页
第2页 / 共23页
一种硬盘坏道的修复方法及装置.pdf_第3页
第3页 / 共23页
点击查看更多>>
资源描述

《一种硬盘坏道的修复方法及装置.pdf》由会员分享,可在线阅读,更多相关《一种硬盘坏道的修复方法及装置.pdf(23页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN104318960A43申请公布日20150128CN104318960A21申请号201410468320X22申请日20140915G11C29/4420060171申请人华为数字技术(成都)有限公司地址611731四川省成都市高新区西部园区清水河片区72发明人周钊张海艳74专利代理机构广州三环专利代理有限公司44202代理人郝传鑫熊永强54发明名称一种硬盘坏道的修复方法及装置57摘要本发明实施例公开了一种硬盘坏道的修复方法及装置,该方法包括在检测出磁盘阵列中存在硬盘坏道后获取硬盘坏道的坏道信息,其中,坏道信息包括硬盘坏道所处的目标硬盘、硬盘坏道在目标硬盘中的第一起始位置。

2、以及硬盘坏道的坏道长度,并以坏道信息以及硬盘与LUN的映射关系为依据获取硬盘坏道所处的目标LUN以及硬盘坏道在目标LUN中的第二起始位置,然后以第二起始位置以及坏道长度为依据解析目标LUN以获取硬盘坏道中存储数据的数据类型,最后以数据类型为依据修复硬盘坏道。实施本发明实施例能够根据硬盘坏道中存储数据的数据类型对硬盘坏道进行修复,从根本上解决了硬盘坏道所带来的业务影响。51INTCL权利要求书3页说明书14页附图5页19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书14页附图5页10申请公布号CN104318960ACN104318960A1/3页21一种硬盘坏道的修复方法,其。

3、特征在于,包括检测磁盘阵列中是否存在硬盘坏道;若检测结果为是,则获取所述硬盘坏道的坏道信息,所述坏道信息包括所述硬盘坏道所处的目标硬盘、所述硬盘坏道在所述目标硬盘中的第一起始位置以及所述硬盘坏道的坏道长度;以所述坏道信息以及硬盘与LUN的映射关系为依据,获取所述硬盘坏道所处的目标LUN以及所述硬盘坏道在所述目标LUN中的第二起始位置;以所述第二起始位置以及所述坏道长度为依据解析所述目标LUN以获取所述硬盘坏道中存储数据的数据类型,所述数据类型包括用户数据类型、非用户数据类型以及空数据类型中的至少一个;以所述数据类型为依据修复所述硬盘坏道。2根据权利要求1所述的方法,其特征在于,当所述目标LUN。

4、中存在分区时,所述以所述第二起始位置以及所述坏道长度为依据解析所述目标LUN以获取所述硬盘坏道中存储数据的数据类型包括获取所述目标LUN包括的每个分区以及所述每个分区的分区长度;以所述第二起始位置以及所述坏道长度为依据,获取所述硬盘坏道所处的目标分区,所述目标分区包括至少一个分区;获取所述目标分区包括的各分区中存储数据的数据类型,以作为所述硬盘坏道中存储数据的数据类型。3根据权利要求2所述的方法,其特征在于,所述获取所述目标LUN包括的每个分区以及所述每个分区的分区长度之前,所述方法还包括判断所述第二起始位置是否处于所述目标LUN中的目标存储位置,所述目标存储位置存储有与所述每个分区对应的分区。

5、表,所述分区表包括所述每个分区的分区长度;若判断结果为否,则执行所述获取所述目标LUN包括的每个分区以及所述每个分区的分区长度的操作;若判断结果为是,则向用户输出用于指示分区表受损的指示信息,以使用户以所述指示信息为依据输入用于修复所述分区表的第一操作指令;接收所述第一操作指令;响应所述第一操作指令以修复所述分区表,并执行所述获取所述目标LUN包括的每个分区以及所述每个分区的分区长度的操作。4根据权利要求1所述的方法,其特征在于,当所述数据类型为所述用户数据类型时,所述以所述数据类型为依据修复所述硬盘坏道包括获取与所述硬盘坏道中存储数据对应的数据标识,所述存储数据的数据类型为所述用户数据类型;。

6、向用户输出所述数据标识,以使用户以所述数据标识为依据输入用于修复所述硬盘坏道的第二操作指令;接收所述第二操作指令;响应所述第二操作指令以修复所述硬盘坏道。5根据权利要求4所述的方法,其特征在于,当所述数据类型为所述非用户数据类型权利要求书CN104318960A2/3页3时,所述以所述数据类型为依据修复所述硬盘坏道包括获取与所述非用户数据类型对应的修复规则;以所述修复规则为依据修复所述硬盘坏道。6根据权利要求4所述的方法,其特征在于,当所述数据类型为所述空数据类型时,所述以所述数据类型为依据修复所述硬盘坏道包括对所述硬盘坏道中存储数据的数据类型为所述空数据类型的位置进行写零操作。7根据权利要求。

7、1所述的方法,其特征在于,当所述磁盘阵列中存在所述硬盘坏道时,所述获取所述硬盘坏道的坏道信息之前,所述方法还包括向用户输出用于提示是否修复所述硬盘坏道的提示信息;接收用户输入的针对所述提示信息的响应消息,以修复所述硬盘坏道。8一种硬盘坏道的修复装置,其特征在于,包括检测模块,用于检测磁盘阵列中是否存在硬盘坏道;获取模块,用于当所述检测模块的检测结果为是时,获取所述硬盘坏道的坏道信息,所述坏道信息包括所述硬盘坏道所处的目标硬盘、所述硬盘坏道在所述目标硬盘中的第一起始位置以及所述硬盘坏道的坏道长度;所述获取模块,还用于以所述坏道信息以及硬盘与LUN的映射关系为依据获取所述硬盘坏道所处的目标LUN以。

8、及所述硬盘坏道在所述目标LUN中的第二起始位置;解析模块,用于以所述第二起始位置以及所述坏道长度为依据解析所述目标LUN以获取所述硬盘坏道中存储数据的数据类型,所述数据类型包括用户数据类型、非用户数据类型以及空数据类型中的至少一个;修复模块,用于以所述数据类型为依据修复所述硬盘坏道。9根据权利要求8所述的装置,其特征在于,所述解析模块包括第一获取子模块以及第二获取子模块,其中所述第一获取子模块,用于当所述目标LUN中存在分区时,获取所述目标LUN包括的每个分区以及所述每个分区的分区长度,并以所述第二起始位置以及所述坏道长度为依据,获取所述硬盘坏道所处的目标分区,所述目标分区包括至少一个分区;所。

9、述第二获取子模块,用于获取所述目标分区包括的各分区中存储数据的数据类型,以作为所述硬盘坏道中存储数据的数据类型。10根据权利要求9所述的装置,其特征在于,所述解析模块还包括判断子模块、第一输出子模块、第一输入子模块以及第一修复子模块,其中所述判断子模块,用于当所述目标LUN中存在分区且在所述第一获取子模块获取所述目标LUN包括的每个分区以及所述每个分区的分区长度之前,判断所述第二起始位置是否处于所述目标LUN中的目标存储位置,所述目标存储位置存储有与所述每个分区对应的分区表,所述分区表包括所述每个分区的分区长度;所述第一获取子模块,还用于在所述判断子模块的判断结果为否时,获取所述目标LUN包括。

10、的每个分区以及所述每个分区的分区长度;所述第一输出子模块,用于在所述判断子模块的判断结果为是时,向用户输出用于指示分区表受损的指示信息,以使用户以所述指示信息为依据输入用于修复所述分区表的第一操作指令;权利要求书CN104318960A3/3页4所述第一输入子模块,用于接收所述第一操作指令;所述第一修复子模块,用于响应所述第一操作指令以修复所述分区表。11根据权利要求8所述的装置,其特征在于,所述修复模块包括第三获取子模块、第二输出子模块、第二输入子模块以及第二修复子模块,其中所述第三获取子模块,用于当所述数据类型为所述用户数据类型时,获取与所述硬盘坏道中存储数据对应的数据标识,所述存储数据的。

11、数据类型为所述用户数据类型;所述第二输出子模块,用于向用户输出所述数据标识,以使用户以所述数据标识为依据输入用于修复所述硬盘坏道的第二操作指令;所述第二输入子模块,用于接收所述第二操作指令;所述第二修复子模块,用于响应所述第二操作指令以修复所述硬盘坏道。12根据权利要求11所述的装置,其特征在于,所述第三获取子模块,还用于当所述数据类型为所述非用户数据类型时,获取与所述非用户数据类型对应的修复规则;所述第二修复子模块,还用于以所述修复规则为依据修复所述硬盘坏道。13根据权利要求11所述的装置,其特征在于,所述第二修复子模块,还用于当所述数据类型为所述空数据类型时,对所述硬盘坏道中存储数据的数据。

12、类型为所述空数据类型的位置进行写零操作。14根据权利要求8所述的装置,其特征在于,所述装置还包括输出模块以及输入模块,其中所述输出模块,用于当所述检测模块的检测结果为是且在所述修复模块以所述数据类型为依据修复所述硬盘坏道之前,向用户输出用于提示是否修复所述硬盘坏道的提示信息;所述输入模块,用于接收用户输入的针对所述提示信息的响应消息,以修复所述硬盘坏道。权利要求书CN104318960A1/14页5一种硬盘坏道的修复方法及装置技术领域0001本发明涉及计算机技术领域,具体涉及一种硬盘坏道的修复方法及装置。背景技术0002RAIDREDUNDANTARRAYOFINDEPENDENTDISK,磁。

13、盘阵列技术是一种把多块独立的硬盘按照不同的方式组合起来形成硬盘组又称RAID以提供数据冗余功能以及比单个硬盘更高的存储性能的技术。LUNLOGICALUNITNUMBER,逻辑单元号是主机对SCSISMALLCOMPUTERSYSTEMINTERFACE,小型计算机系统接口总线上可挂接设备的编号,其中,可挂接的设备通常被称为LUN设备,也通常被简称为LUN,而在实际应用中,LUN还可以用来表示从RAID中划分出的一段逻辑上连续的存储空间且该逻辑上连续的存储空间可以被划分成多个子区域,在LUN中存储的数据会在多个子区域中分开存储,其中,每一个子区域就是一个分区,这些需要存储的数据最终被存放在RA。

14、ID中,如用户可以将与业务系统如文件系统、数据库以及虚拟机等相关的数据存储在RAID中。RAID上的任何故障都可能导致业务中断以及数据丢失,且RAID上最常见的故障为硬盘坏道,对于文件系统,硬盘坏道可能导致文件系统无法挂载、目录名丢失以及文件丢失等问题,对于数据库,硬盘坏道可能导致数据表查询失败以及数据库异常宕机后无法正常启动的问题,因此,修复硬盘坏道显得尤为重要。0003现有技术中,通过RAID后台扫描以及用户触发业务访问的方式识别出硬盘坏道所处的硬盘、起始位置以及坏道长度后,RAID对硬盘坏道的修复方法为以扇区为单位对坏道位置全部写零,这样的修复方法不能从根本上解决硬盘坏道所带来的业务影响。

15、,如当硬盘坏道中的存储数据为用户数据时,对坏道位置全部写零会导致用户数据的丢失。发明内容0004本发明实施例公开了一种硬盘坏道的修复方法及装置,能够根据硬盘坏道中存储数据的数据类型对硬盘坏道进行修复,从根本上解决了硬盘坏道所带来的业务影响。0005本发明实施例第一方面公开了一种硬盘坏道的修复方法,包括0006检测磁盘阵列中是否存在硬盘坏道;0007若检测结果为是,则获取所述硬盘坏道的坏道信息,所述坏道信息包括所述硬盘坏道所处的目标硬盘、所述硬盘坏道在所述目标硬盘中的第一起始位置以及所述硬盘坏道的坏道长度;0008以所述坏道信息以及硬盘与LUN的映射关系为依据,获取所述硬盘坏道所处的目标LUN以。

16、及所述硬盘坏道在所述目标LUN中的第二起始位置;0009以所述第二起始位置以及所述坏道长度为依据解析所述目标LUN以获取所述硬盘坏道中存储数据的数据类型,所述数据类型包括用户数据类型、非用户数据类型以及空数据类型中的至少一个;0010以所述数据类型为依据修复所述硬盘坏道。说明书CN104318960A2/14页60011在本发明实施例第一方面的第一种可能的实现方式中,当所述目标LUN中存在分区时,所述以所述第二起始位置以及所述坏道长度为依据解析所述目标LUN以获取所述硬盘坏道中存储数据的数据类型包括0012获取所述目标LUN包括的每个分区以及所述每个分区的分区长度;0013以所述第二起始位置以。

17、及所述坏道长度为依据,获取所述硬盘坏道所处的目标分区,所述目标分区包括至少一个分区;0014获取所述目标分区包括的各分区中存储数据的数据类型,以作为所述硬盘坏道中存储数据的数据类型。0015结合本发明实施例第一方面的第一种可能的实现方式,在本发明实施例第一方面的第二种可能的实现方式中,所述获取所述目标LUN包括的每个分区以及所述每个分区的分区长度之前,所述方法还包括0016判断所述第二起始位置是否处于所述目标LUN中的目标存储位置,所述目标存储位置存储有与所述每个分区对应的分区表,所述分区表包括所述每个分区的分区长度;0017若判断结果为否,则执行所述获取所述目标LUN包括的每个分区以及所述每。

18、个分区的分区长度的操作;0018若判断结果为是,则向用户输出用于指示分区表受损的指示信息,以使用户以所述指示信息为依据输入用于修复所述分区表的第一操作指令;0019接收所述第一操作指令;0020响应所述第一操作指令以修复所述分区表,并执行所述获取所述目标LUN包括的每个分区以及所述每个分区的分区长度的操作。0021结合本发明实施例第一方面,在本发明实施例第一方面的第三种可能的实现方式中,当所述数据类型为所述用户数据类型时,所述以所述数据类型为依据修复所述硬盘坏道包括0022获取与所述硬盘坏道中存储数据对应的数据标识,所述存储数据的数据类型为所述用户数据类型;0023向用户输出所述数据标识,以使。

19、用户以所述数据标识为依据输入用于修复所述硬盘坏道的第二操作指令;0024接收所述第二操作指令;0025响应所述第二操作指令以修复所述硬盘坏道。0026结合本发明实施例第一方面的第三种可能的实现方式,在本发明实施例第一方面的第四种可能的实现方式中,当所述数据类型为所述非用户数据类型时,所述以所述数据类型为依据修复所述硬盘坏道包括0027获取与所述非用户数据类型对应的修复规则;0028以所述修复规则为依据修复所述硬盘坏道。0029结合本发明实施例第一方面的第三种可能的实现方式,在本发明实施例第一方面的第五种可能的实现方式中,当所述数据类型为所述空数据类型时,所述以所述数据类型为依据修复所述硬盘坏道。

20、包括0030对所述硬盘坏道中存储数据的数据类型为所述空数据类型的位置进行写零操作。0031结合本发明实施例第一方面,在本发明实施例第一方面的第六种可能的实现方式说明书CN104318960A3/14页7中,当所述磁盘阵列中存在所述硬盘坏道时,所述获取所述硬盘坏道的坏道信息之前,所述方法还包括0032向用户输出用于提示是否修复所述硬盘坏道的提示信息;0033接收用户输入的针对所述提示信息的响应消息,以修复所述硬盘坏道。0034本发明实施例第二方面公开了一种硬盘坏道的修复装置,包括0035检测模块,用于检测磁盘阵列中是否存在硬盘坏道;0036获取模块,用于当所述检测模块的检测结果为是时,获取所述硬。

21、盘坏道的坏道信息,所述坏道信息包括所述硬盘坏道所处的目标硬盘、所述硬盘坏道在所述目标硬盘中的第一起始位置以及所述硬盘坏道的坏道长度;0037所述获取模块,还用于以所述坏道信息以及硬盘与LUN的映射关系为依据获取所述硬盘坏道所处的目标LUN以及所述硬盘坏道在所述目标LUN中的第二起始位置;0038解析模块,用于以所述第二起始位置以及所述坏道长度为依据解析所述目标LUN以获取所述硬盘坏道中存储数据的数据类型,所述数据类型包括用户数据类型、非用户数据类型以及空数据类型中的至少一个;0039修复模块,用于以所述数据类型为依据修复所述硬盘坏道。0040在本发明实施例第二方面的第一种可能的实现方式中,所述。

22、解析模块包括第一获取子模块以及第二获取子模块,其中0041所述第一获取子模块,用于当所述目标LUN中存在分区时,获取所述目标LUN包括的每个分区以及所述每个分区的分区长度,并以所述第二起始位置以及所述坏道长度为依据,获取所述硬盘坏道所处的目标分区,所述目标分区包括至少一个分区;0042所述第二获取子模块,用于获取所述目标分区包括的各分区中存储数据的数据类型,以作为所述硬盘坏道中存储数据的数据类型。0043结合本发明实施例第二方面的第一种可能的实现方式,在本发明实施例第二方面的第二种可能的实现方式中,所述解析模块还包括判断子模块、第一输出子模块、第一输入子模块以及第一修复子模块,其中0044所述。

23、判断子模块,用于当所述目标LUN中存在分区且在所述第一获取子模块获取所述目标LUN包括的每个分区以及所述每个分区的分区长度之前,判断所述第二起始位置是否处于所述目标LUN中的目标存储位置,所述目标存储位置存储有与所述每个分区对应的分区表,所述分区表包括所述每个分区的分区长度;0045所述第一获取子模块,还用于在所述判断子模块的判断结果为否时,获取所述目标LUN包括的每个分区以及所述每个分区的分区长度;0046所述第一输出子模块,用于在所述判断子模块的判断结果为是时,向用户输出用于指示分区表受损的指示信息,以使用户以所述指示信息为依据输入用于修复所述分区表的第一操作指令;0047所述第一输入子模。

24、块,用于接收所述第一操作指令;0048所述第一修复子模块,用于响应所述第一操作指令以修复所述分区表。0049结合本发明实施例第二方面,在本发明实施例第二方面的第三种可能的实现方式中,所述修复模块包括第三获取子模块、第二输出子模块、第二输入子模块以及第二修复子模块,其中说明书CN104318960A4/14页80050所述第三获取子模块,用于当所述数据类型为所述用户数据类型时,获取与所述硬盘坏道中存储数据对应的数据标识,所述存储数据的数据类型为所述用户数据类型;0051所述第二输出子模块,用于向用户输出所述数据标识,以使用户以所述数据标识为依据输入用于修复所述硬盘坏道的第二操作指令;0052所述。

25、第二输入子模块,用于接收所述第二操作指令;0053所述第二修复子模块,用于响应所述第二操作指令以修复所述硬盘坏道。0054结合本发明实施例第二方面的第三种可能的实现方式,在本发明实施例第二方面的第四种可能的实现方式中,所述第三获取子模块,还用于当所述数据类型为所述非用户数据类型时,获取与所述非用户数据类型对应的修复规则;0055所述第二修复子模块,还用于以所述修复规则为依据修复所述硬盘坏道。0056结合本发明实施例第二方面的第三种可能的实现方式,在本发明实施例第二方面的第五种可能的实现方式中,所述第二修复子模块,还用于当所述数据类型为所述空数据类型时,对所述硬盘坏道中存储数据的数据类型为所述空。

26、数据类型的位置进行写零操作。0057结合本发明实施例第二方面,在本发明实施例第二方面的第六种可能的实现方式中,所述装置还包括输出模块以及输入模块,其中0058所述输出模块,用于当所述检测模块的检测结果为是且在所述修复模块以所述数据类型为依据修复所述硬盘坏道之前,向用户输出用于提示是否修复所述硬盘坏道的提示信息;0059所述输入模块,用于接收用户输入的针对所述提示信息的响应消息,以修复所述硬盘坏道。0060本发明实施例中,在检测出磁盘阵列中存在硬盘坏道后获取硬盘坏道的坏道信息,其中,坏道信息包括硬盘坏道所处的目标硬盘、硬盘坏道在目标硬盘中的第一起始位置以及硬盘坏道的坏道长度,并以坏道信息以及硬盘。

27、与LUN的映射关系为依据获取硬盘坏道所处的目标LUN以及硬盘坏道在目标LUN中的第二起始位置,然后以第二起始位置以及坏道长度为依据解析目标LUN以获取硬盘坏道中存储数据的数据类型,最后以数据类型为依据修复硬盘坏道。实施本发明实施例能够根据硬盘坏道中存储数据的数据类型对硬盘坏道进行修复,从根本上解决了硬盘坏道所带来的业务影响。附图说明0061为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。0062图1是本发明实施例。

28、公开的一种硬盘坏道的修复方法的流程示意图;0063图2是本发明实施例公开的另一种硬盘坏道的修复方法的流程示意图;0064图3是本发明实施例公开的一种获取硬盘坏道中存储数据的数据类型的方法的流程示意图;0065图4是本发明实施例公开的一种硬盘坏道的修复装置的结构示意图;0066图5是本发明实施例公开的另一种硬盘坏道的修复装置的结构示意图;说明书CN104318960A5/14页90067图6是本发明实施例公开的又一种硬盘坏道的修复装置的结构示意图。具体实施方式0068下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不。

29、是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。0069本发明实施例公开了一种硬盘坏道的修复方法及装置,能够根据硬盘坏道中存储数据的数据类型对硬盘坏道进行修复,从根本上解决了硬盘坏道所带来的业务影响。0070请参阅图1,图1是本发明实施例公开的一种硬盘坏道的修复方法的流程示意图。其中,图1所示的方法可以应用于磁盘阵列中或使用磁盘阵列作为存储系统的装置中,本发明实施例不做限定。如图1所示,该方法可以包括以下步骤0071S101、检测磁盘阵列中是否存在硬盘坏道。0072本发明实施例中,磁盘阵列或使用磁盘阵列作为存储系。

30、统的装置可以通过磁盘阵列后台扫描以及用户触发业务访问的方式识别出硬盘坏道。0073本发明实施例中,若步骤S101的检测结果为是,则执行步骤S102,若步骤S101的检测结果为否,则结束本次检测操作。0074S102、获取硬盘坏道的坏道信息。0075本发明实施例中,坏道信息可以包括硬盘坏道所处的目标硬盘、硬盘坏道在目标硬盘中的第一起始位置如第M个扇区,M为大于零的整数以及硬盘坏道的坏道长度,其中,硬盘坏道的坏道长度以扇区为单位。0076S103、以坏道信息以及硬盘与LUN的映射关系为依据,获取硬盘坏道所处的目标LUN以及硬盘坏道在目标LUN中的第二起始位置。0077本发明实施例中,硬盘坏道所处的。

31、目标LUN的个数为大于等于1的整数,当目标LUN的个数大于1时,则表示硬盘坏道为跨LUN的硬盘坏道,这里涉及到硬盘坏道的拆分,即将硬盘坏道拆分成多个硬盘坏道,拆分后的每个硬盘坏道所处的目标LUN的个数为1,且磁盘阵列或使用磁盘阵列作为存储系统的装置对每个目标LUN的解析原理以及修复原理相同。0078S104、以第二起始位置以及坏道长度为依据解析目标LUN以获取硬盘坏道中存储数据的数据类型。0079本发明实施例中,数据类型可以包括用户数据类型、非用户数据类型以及空数据类型中的至少一个,本发明实施例不做限定。0080作为一种可选的实施方式,当目标LUN中存在分区时,以第二起始位置以及坏道长度为依据。

32、解析目标LUN以获取硬盘坏道中存储数据的数据类型可以包括0081获取目标LUN包括的每个分区以及每个分区的分区长度;0082以第二起始位置以及坏道长度为依据,获取硬盘坏道所处的目标分区,其中,目标分区包括至少一个分区;0083获取目标分区包括的各分区中存储数据的数据类型,以作为硬盘坏道中存储数据的数据类型。说明书CN104318960A6/14页100084作为另一种可选的实施方式,当目标LUN中存在分区时,以第二起始位置以及坏道长度为依据解析目标LUN以获取硬盘坏道中存储数据的数据类型可以包括0085判断第二起始位置是否处于目标LUN中的目标存储位置,其中,目标存储位置存储有与每个分区对应的。

33、分区表,分区表包括每个分区的分区长度;0086当判断结果为否时,获取目标LUN包括的每个分区以及每个分区的分区长度,并以第二起始位置以及坏道长度为依据获取硬盘坏道所处的目标分区,获取目标分区包括的各分区中存储数据的数据类型,以作为硬盘坏道中存储数据的数据类型。0087当判断结果为是时,向用户输出用于指示分区表受损的指示信息,以使用户以指示信息为依据输入用于修复分区表的第一操作指令,接收并响应第一操作指令以修复分区表,获取目标LUN包括的每个分区以及每个分区的分区长度,并以第二起始位置以及坏道长度为依据获取硬盘坏道所处的目标分区,获取目标分区包括的各分区中存储数据的数据类型,以作为硬盘坏道中存储。

34、数据的数据类型。0088S105、以数据类型为依据修复硬盘坏道。0089作为一种可选的实施方式,当数据类型为用户数据类型时,以数据类型为依据修复硬盘坏道可以包括0090获取与硬盘坏道中存储数据对应的数据标识,其中,存储数据的数据类型为用户数据类型;0091向用户输出数据标识,以使用户以数据标识为依据输入用于修复硬盘坏道的第二操作指令;0092接收第二操作指令;0093响应第二操作指令以修复硬盘坏道。0094作为另一种可选的实施方式,当数据类型为非用户数据类型时,以数据类型为依据修复硬盘坏道可以包括0095获取与非用户数据类型对应的修复规则;0096以修复规则为依据修复硬盘坏道。0097作为又一。

35、种可选的实施方式,当数据类型为空数据类型时,以数据类型为依据修复硬盘坏道可以包括0098对硬盘坏道中存储数据的数据类型为空数据类型的位置进行写零操作。0099本发明实施例中,在检测出磁盘阵列中存在硬盘坏道后获取硬盘坏道的坏道信息,其中,坏道信息包括硬盘坏道所处的目标硬盘、硬盘坏道在目标硬盘中的第一起始位置以及硬盘坏道的坏道长度,并以坏道信息以及硬盘与LUN的映射关系为依据获取硬盘坏道所处的目标LUN以及硬盘坏道在目标LUN中的第二起始位置,然后以第二起始位置以及坏道长度为依据解析目标LUN以获取硬盘坏道中存储数据的数据类型,最后以数据类型为依据修复硬盘坏道。实施本发明实施例能够根据硬盘坏道中存。

36、储数据的数据类型对硬盘坏道进行修复,从根本上解决了硬盘坏道所带来的业务影响。0100请参阅图2,图2是本发明实施例公开的另一种硬盘坏道的修复方法的流程示意图。其中,图2所示的方法可以应用于磁盘阵列中或使用磁盘阵列作为存储系统的装置中,本发明实施例不做限定。如图2所示,该方法可以包括以下步骤0101S201、检测磁盘阵列中是否存在硬盘坏道。说明书CN104318960A107/14页110102本发明实施例中,若步骤S201的检测结果为是,则执行步骤S202,若步骤S201的检测结果为否,则结束本次检测操作。0103S202、向用户输出用于提示是否修复硬盘坏道的提示信息。0104本发明实施例中,。

37、在检测到磁盘阵列中存在硬盘坏道后,向用户输出用于提示是否修复硬盘坏道的提示信息,以提示用户磁盘阵列中存在硬盘坏道并使用户根据自身需求选择是否修复硬盘坏道,提高了用户体验。0105S203、接收用户输入的针对提示信息的响应消息。0106本发明实施例中,响应消息用于指示磁盘阵列或使用磁盘阵列作为存储系统的装置修复硬盘坏道。0107S204、获取硬盘坏道的坏道信息。0108S205、以坏道信息以及硬盘与LUN的映射关系为依据,获取硬盘坏道所处的目标LUN以及硬盘坏道在目标LUN中的第二起始位置。0109S206、检测目标LUN中是否存在分区;0110本发明实施例中,分区的格式可以包括GPTGUIDP。

38、ARTITIONTABLE,全局唯一标识分区表格式或MBRMASTERBOOTRECORD,主引导记录格式,本发明实施例不做限定。0111本发明实施例中,若步骤S206的检测结果为是,则执行步骤S207,若步骤S206的检测结果为否,则执行步骤S208。0112S207、判断第二起始位置是否处于目标LUN中的目标存储位置。0113本发明实施例中,目标存储位置存储有与目标LUN包括的分区对应的分区表,分区表中包括目标LUN中每个分区的分区长度,可选的,目标存储位置可以为目标LUN中的前2K的存储位置,本发明实施例不做限定。0114本发明实施例中,若步骤S207的判断结果为是,则执行步骤S209、。

39、若步骤S207的判断结果为否,则执行步骤S214。0115S208、以第二起始位置以及坏道长度为依据解析目标LUN以获取硬盘坏道中存储数据的数据类型。0116本发明实施例中,数据类型可以包括用户数据类型、非用户数据类型以及空数据类型中的至少一个,本发明实施例不做限定。0117S209、向用户输出用于指示分区表受损的指示信息,以使用户以指示信息为依据输入用于修复分区表的第一操作指令。0118S210、接收第一操作指令。0119S211、响应第一操作指令以修复分区表。0120S212、获取目标LUN包括的每个分区以及每个分区的分区长度。0121S213、以第二起始位置以及坏道长度为依据,获取硬盘坏。

40、道所处的目标分区。0122本发明实施例中,目标分区包括至少一个分区,当目标分区的个数大于1时,则表示硬盘坏道为跨分区的硬盘坏道,这里涉及到对硬盘坏道的拆分,即将硬盘坏道拆分成多个硬盘坏道,拆分后的每个硬盘坏道所处的目标分区的个数为1,且磁盘阵列或使用磁盘阵列作为存储系统的装置对每个目标分区的解析原理以及修复原理相同。0123S214、获取目标分区包括的各分区中存储数据的数据类型。0124本发明实施例中,数据类型可以包括用户数据类型以及非用户数据类型中的至少说明书CN104318960A118/14页12一个,本发明实施例不做限定。0125S215、判断数据类型是否为用户数据类型。0126本发明。

41、实施例中,若步骤S216的判断结果为是,则执行步骤S217,若步骤S216的判断结果为否,则执行步骤S221。0127S216、获取与硬盘坏道中存储数据对应的数据标识。0128本发明实施例中,存储数据的数据类型为用户数据类型。0129S217、向用户输出数据标识,以使用户以数据标识为依据输入用于修复硬盘坏道的第二操作指令。0130S218、接收第二操作指令。0131S219、响应第二操作指令以修复硬盘坏道。0132S220、获取与非用户数据类型对应的修复规则。0133S221、以修复规则为依据修复硬盘坏道。0134实施本发明实施例能够在硬盘坏道影响用户的业务访问之前发出告警信息,且能够根据硬盘。

42、坏道中存储数据的数据类型及时对硬盘坏道进行自动修复或根据硬盘坏道中存储数据的数据类型及时向用户输出硬盘坏道信息以使用户手动对硬盘坏道进行修复,从根本上解决了硬盘坏道所带来的业务影响。0135请参阅图3,图3是本发明实施例公开的一种获取硬盘坏道中存储数据的数据类型的方法的流程示意图。其中,如图3所示的方法可以应用于图1以及图2所示的硬盘坏道的修复方法中。如图3所示,假设识别出硬盘坏道所处的目标LUN中存储数据为与EXT3文件系统对应的数据,其中,与EXT3对应的数据即可以直接存储在目标LUN中,也可以存储在目标LUN中的分区中,且假设当与EXT3文件系统对应的数据存储在目标LUN中的分区中时,硬。

43、盘坏道在目标LUN中的起始位置未处于前2K中,该获取硬盘坏道中存储数据的数据类型的方法可以包括以下步骤0136S301、判断目标LUN或目标LUN中与硬盘坏道对应的目标分区中各分区1K2K的存储位置中是否存在硬盘坏道。0137本发明实施例中,若步骤S301的判断结果为是,则执行步骤S302,若步骤S301的判断结果为否,则执行步骤S304。0138S302、确认目标LUN或目标分区中各分区的主超级块受损。0139S303、获取与主超级块对应的备份超级块以修复主超级块。0140S304、确认目标LUN或目标分区中各分区的1K2K的存储位置存储有EXT3的超级块。0141本发明实施例中,确认目标L。

44、UN或目标分区中各分区的1K2K的存储位置存储有EXT3的超级块的具体方式可以为0142判断目标LUN或目标分区中各分区存储的超级块中0X380X39处的值是否为“53EF”,若判断结果为是,则确定目标LUN或目标分区中各分区的1K2K存储位置存储有EXT3的超级块。0143S305、根据EXT3中的主超级块结构获取超级块信息并计算出EXT3文件系统中的块组数。0144本发明实施例中,块组数是由EXT3文件系统的总块数除以每个块组中的块数并说明书CN104318960A129/14页13向上取整而得到的。0145S306、判断主超级块的块组描述符表的位置是否存在硬盘坏道。0146本发明实施例中。

45、,若步骤S306的判断结果为是,则执行步骤S307,若步骤S306的判断结果为否,则执行步骤S309。0147S307、确认目标LUN或目标分区中主超级块的块组描述符表受损。0148S308、获取与主超级块的块组描述符表对应的备份块组描述符表以修复主超级块的块组描述符表。0149S309、以主超级块的块组描述符表记录的各个块组的结构信息获取目标LUN或目标分区中各分区存储数据的数据类型。0150本发明实施例中,存储数据的数据类型可以包括用户数据类型以及非用户数据类型中的至少一个,其中,用户数据类型的存储数据可以包括索引节点以及数据块,非用户数据类型的存储数据可以包括备份超级块、备份块组描述符表。

46、、全局描述符表保留块、块位图以及索引节点位图,其中0151备份超级块以及备份块组描述符表仅在块组号为3、5以及7的幂次方的块组中出现,如块组号为1、3、5、7、9、25、27、49、81。0152全局描述符表保留块存在于包括块组描述符表的块组中,且全局描述符表保留块是块组描述符表中未被块组描述符表使用完的区域。0153块组描述符表以32字节为单位且用于描述各块组的结构,其包括块位图起始位置如块位图块号、索引节点起始位置如索引节点位图块号以及索引节点表起始地址如索引节点表起始块号等信息,块组描述符表的结构可以如表1所示。0154表1块组描述符表0155偏移量十六进制字节数含义00034块位图块号。

47、04074索引节点位图块号080B4索引节点表起始块号01560157每个索引节点都存在一个索引节点编号,解析与硬盘坏道对应的索引节点的索引节点编号的方法可以为根据与硬盘坏道对应的索引节点所处的位置、块组描述符表中记录的各块组的索引节点表的起始位置如索引节点表起始块号、索引节点大小以及索引节点的编号规律解析出与硬盘坏道对应的索引节点的索引节点编号。0158当存储数据为数据块时,解析与硬盘坏道对应的数据块的索引节点编号的方法可以为借助块位图筛选出未被任何索引节点使用的数据块并将该未被使用的数据块的索引节点编号置为0,对于其它数据块,通过遍历所有已经被索引节点使用过的数据块以确定出与硬盘坏道对应的。

48、数据块被哪些索引节点使用,并将数据块的索引节点编号置为使用该数据块的索引节点的索引节点编号。0159本发明实施例中,当解析出存储数据为数据块或索引节点时,磁盘阵列或使用磁说明书CN104318960A1310/14页14盘阵列作为存储系统的装置需解析出与数据块或索引节点对应的包括完整路径的文件名,且解析包括完整路径的文件名的方法可以为根据索引节点位图判断索引节点是否被使用,若索引节点未被使用,则将与该索引节点对应的文件名置为“NOTUSED”,对于其它索引节点以及数据块,则通过遍历所有正在被使用的索引节点或数据块的目录并解析目录中记录的目录项以获取与数据块或索引节点对应的包括完整路径的文件名。。

49、0160S310、以获取到的存储数据的数据类型修复目标LUN或目标分区中的硬盘坏道。0161对存储数据为备份超级块以及备份块组描述符表的硬盘坏道的修复规则为利用主超级块以及主超级块的块组描述符表来修复。0162对存储数据为全局描述符表保留块的硬盘坏道的修复规则为对该硬盘坏道位置进行写零操作。0163对存储数据为索引节点位图以及块位图的硬盘坏道的修复规则为对该硬盘坏道位置进行写“1”操作,并在存储管理软件的告警日志中记录“紧急”级别的告警,且在挂载EXT3文件系统之后使用EXT3文件系统自带的FSCKFILESYSTEMCHECK,文件系统检查命令正确修复索引节点位图以及块位图。0164对存储数据为索引节点且文件名为“NOTUSED”的硬盘坏道的修复规则为对该硬盘坏道位置进行写零操作。0165对存储数据为索引节点且文件名不为“NOTUSED”的硬盘坏道的修复规则为编辑结构正确的索引节点文件大小为0写至该硬盘坏道位置,即编辑一个空的索引节点以便在修复硬盘坏道时能够直接使用该结构正确的索引节点。0166对存储数据为数据块的硬盘坏道的修复规则为对该硬盘坏道位置进行写零操作。0167本发明实施例中,上述对存储数据为索引节点的修复规则只是修复了索引节点的结构,上述对存储数据为数据块的修复规则只是使与该数据块对应的文件能够被访问,而无法将与索引节点以及数据块分别对应的数据修复,之后,磁。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 信息存储


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1