一种检测磁盘的方法和装置的制造方法

文档序号:8258260阅读:336来源:国知局
一种检测磁盘的方法和装置的制造方法
【技术领域】
[0001]本发明涉及计算机数据存储技术,尤指一种检测磁盘的方法和装置。
【背景技术】
[0002]廉价冗余磁盘阵列(RAID,RedundantArrays of Inexpensive Disks)是 DavidA.Patterson等人在前人研宄工作的基础之上提出的概念。RAID包含有多个机械磁盘和用于实现数据访问的管理模块。由于RAID技术实现磁盘的并发访问,RAID能给存储系统提供更高的性能,并提供一定的数据保护作用,但是随着机械磁盘存储容量的不断变大,数据承载量的增加,RAID的可靠性变得越来越低,数据丢失的风险越来越大。
[0003]因此,需要对RAID内的磁盘进行检测。现有的检测方法大致包括:
[0004]对于RAID内的每一个磁盘,预留一部分磁盘空间作为备用扇区区域,并用磁盘空间最末端的一块区域存放磁盘数据格式(DDF,Disk Data Format)的RAID信息,备用扇区区域中预留了若干地址连续的扇区作为备用扇区,用来在磁盘上产生坏扇区时进行重映射,备用扇区按照逻辑块寻址模式(LBA,Logical Block Addressing)从小到大进行排序,被分配使用时按照排序结果依次进行。管理模块周期性检测各磁盘是否存在坏扇区,若存在坏扇区则将坏扇区中的数据保存到备用扇区区域中,并保存坏扇区的地址和备用扇区区域中保存该坏扇区中的数据的扇区的地址之间的对应关系。
[0005]现有的检测方法中,由于管理模块在进行磁盘检测时按块的顺序对每一个扇区进行检测,对磁盘的访问频率较高,影响业务的概率较大。

【发明内容】

[0006]为了解决上述问题,本发明提出了一种检测磁盘的方法和装置,能够降低对磁盘的访问频率。
[0007]为了达到上述目的,本发明提出了一种检测磁盘的方法,包括:
[0008]对当前的扇区进行检测,若检测到当前的扇区正常,则计算当前的扇区的扇区标识和当前步长之间的和值;
[0009]判断出计算得到的和值大于或等于I且小于或等于廉价冗余磁盘阵列RAID的总扇区数,将扇区标识为计算得到的和值的扇区作为当前的扇区继续执行对当前的扇区进行检测的步骤;
[0010]当判断出连续检测到扇区正常的次数大于或等于预设次数,且当前步长大于O时,将当前步长调大后继续执行计算当前的扇区的扇区标识和当前步长之间的和值的步骤。
[0011]优选地,当检测到所述当前的扇区异常时,该方法还包括:
[0012]修复所述当前的扇区;判断出所述当前步长大于0,将所述当前步长调整为起始跳跃幅度继续执行所述计算当前的扇区的扇区标识和当前步长之间的和值的步骤。
[0013]优选地,当判断出所述当前步长小于O时,该方法还包括:
[0014]将所述当前步长调整为起始跳跃幅度的负数继续执行所述计算当前的扇区和扇区标识和当前步长之间的和值的步骤。
[0015]优选地,当判断出检测到的所述RAID的磁盘中的扇区异常的数量大于或等于预设阈值时,该方法还包括:
[0016]将扇区异常的数量大于或等于预设阈值的磁盘中的所有数据迀移到新的磁盘中,根据所述新的磁盘的磁盘标识更新管理模块中磁盘标识和扇区标识之间的对应关系。
[0017]优选地,当判断出连续检测到扇区正常的次数大于或等于预设次数,且所述当前步长小于O时,该方法还包括:
[0018]将所述当前步长调小后继续执行所述计算当前的扇区的扇区标识和当前步长之间的和值的步骤。
[0019]优选地,当判断出所述计算得到的和值大于所述RAID的总扇区数时,该方法还包括:
[0020]将扇区标识为所述RAID的总扇区数的扇区作为所述当前的扇区,将起始跳跃幅度的负数作为所述当前步长继续执行所述对当前的扇区进行检测的步骤。
[0021]优选地,当判断出所述计算得到的和值小于I时,该方法还包括:
[0022]将第I个扇区作为所述当前的扇区,将起始跳跃幅度作为所述当前步长继续执行所述对当前的扇区进行检测的步骤。
[0023]本发明还提出了一种检测磁盘的装置,至少包括:
[0024]检测模块,用于对当前的扇区进行检测,将检测结果发送给计算模块;在第一判断结果为计算得到的和值大于或等于I且小于或等于廉价冗余磁盘阵列RAID的总扇区数时,将扇区标识为计算得到的和值的扇区作为当前的扇区继续对当前的扇区进行检测;
[0025]计算模块,用于在检测结果为当前的扇区正常时,计算当前的扇区的扇区标识和当前步长之间的和值;在第二判断结果为检测到扇区正常的次数大于或等于预设次数,且当前步长大于O时,将当前步长调大后继续执行计算当前的扇区的扇区标识和当前步长之间的和值的步骤;
[0026]判断模块,用于判断计算得到的和值是否大于或等于I且小于或等于廉价冗余磁盘阵列RAID的总扇区数,将得到的第一判断结果发送给检测模块;判断连续检测到扇区正常的次数是否大于或等于预设次数,且当前步长是否大于0,将得到的第二判断结果发送给计算模块。
[0027]优选地,所述判断模块还用于:
[0028]在所述检测结果为所述当前的扇区异常时,修复所述当前的扇区;判断所述当前步长是否大于0,将得到的第三判断结果发送给计算模块;
[0029]所述计算模块还用于:
[0030]在所述第三判断结果为所述当前步长大于O时,将所述当前步长调整为起始跳跃幅度继续计算所述当前的扇区的扇区标识和所述当前步长之间的和值。
[0031]优选地,所述计算模块还用于:
[0032]在所述第三判断结果为所述当前步长小于O时,将所述当前步长调整为起始跳跃幅度的负数继续计算所述当前的扇区的扇区标识和所述当前步长之间的和值。
[0033]优选地,所述判断模块还用于:
[0034]判断检测到的所述RAID的磁盘中的扇区异常的数量是否大于或等于预设阈值,将得到的第四判断结果发送给迀移模块;
[0035]还包括:
[0036]迀移模块,用于在所述第四判断结果为检测到的所述RAID的磁盘中的扇区异常的数量大于或等于预设阈值时,将扇区异常的数量大于或等于预设阈值的磁盘中的所有数据迀移到新的磁盘中,根据所述新的磁盘的磁盘标识更新管理模块中磁盘标识和扇区标识之间的对应关系。
[0037]优选地,所述计算模块还用于:
[0038]在所述第二判断结果为连续检测到扇区正常的次数大于或等于所述预设次数,且所述当前步长小于O时,将所述当前步长调小后继续计算所述当前的扇区的扇区标识和所述当前步长之间的和值。
[0039]优选地,所述检测模块还用于:
[0040]在第一判断结果为计算得到的和值大于所述RAID的总扇区数时,将扇区标识为所述RAID的总扇区数的扇区作为所述当前的扇区,将起始跳跃幅度的负数作为所述当前步长继续对所述当前的扇区进行检测。
[0041]优选地,所述检测模块还用于:
[0042]在所述第一判断结果为所述计算得到的和值小于I时,将第I个扇区作为所述当前的扇区,将起始跳跃幅度作为所述当前步长继续对所述当前的扇区进行检测。
[0043]与现有技术相比,本发明包括:对当前的扇区进行检测,若检测到当前的扇区正常,则计算当前的扇区的扇区标识和当前步长之间的和值;判断出计算得到的和值大于或等于I且小于或等
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1