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

文档序号:8283511阅读:来源:国知局

[0051]其中,预设值的大小根据一个区域的容量确定,对于每个区域,每次可以仅扫描其中一个数据块,或者每次可以扫描一个区域中的多个数据块,但不需要每次扫描一个区域中的全部数据块。
[0052]跳跃扫描的操作如图2所示,图2中以处理设备每次扫描一个区域中的一个数据块为例,即预设值为一个区域的容量与一个数据块的容量的差值。
[0053]值得说明的是,区域的大小可以根据硬盘的容量以及磁头移动等因素来确定,区域大小可以与硬盘容量大小成正比,与磁头移动的区间大小值成正比,区域的大小可以为1M?2014M。数据块的大小可以根据区域的大小以及扫描速率来确定,可以为IM?10M。
[0054]可以理解的是,为了不占用后端带宽,本发明中处理设备可以利用verify (校验)命令对硬盘进行扫描,利用verify命令对硬盘进行扫描过程中不需要读写硬盘中的数据,对硬盘正常的读写操作影响很小。
[0055]103、发现第一坏道,暂停跳跃扫描操作。
[0056]104、对第一坏道进行修复,同时对第一坏道所属数据块的剩余部分进行顺序扫描操作,顺序扫描操作为按照预定顺序扫描该数据块的剩余部分的操作,直至完成对该数据块的扫描以及完成对该数据块中所有坏道的修复。
[0057]其中,预定顺序为数据块中的记录排列的顺序。
[0058]图2中阴影部分对应的数据块为第一坏道所属数据块,扫描到第一坏道后,需暂停跳跃扫描操作,直至完成对该数据块的剩余部分的扫描以及完成对该数据块中所有坏道的修复,才能继续执行下述步骤105,继续跳跃扫描操作。
[0059]105、从与第一坏道所属数据块间隔预设值的区间的数据块开始继续进行跳跃扫描操作,直至完成硬盘的最后一个区域中的数据块的扫描及修复。
[0060]本发明实施例提供的硬盘的处理方法,通过确定起始数据块,从起始数据块开始对硬盘进行跳跃扫描操作;发现第一坏道,暂停跳跃扫描操作,然后对第一坏道进行修复,同时对第一坏道所属数据块的剩余部分进行顺序扫描操作,直至完成对该数据块的扫描以及完成对该数据块中所有坏道的修复,然后从第一坏道所属数据块开始继续进行跳跃扫描操作,直至完成硬盘的最后一个区域中数据块的扫描及修复。采用跳跃扫描的方法不需要对全盘进行扫描,与顺序扫描相比缩短了发现坏道的时间。且坏道的产生具有一定的规律,当硬盘中出现一个坏道后,在该坏道附近产生坏道的可能性会增高,所以发现第一坏道后,第一坏道所属数据块中出现坏道的可能性增高,顺序扫描第一坏道所属数据块的剩余部分,可以使发现坏道的速度更快,提高了发现硬盘坏道的效率。
[0061]结合图1,本发明还提供一种硬盘的处理方法,如图3所示,在该方法中对第一坏道所属数据块的具体操作方法为:
[0062]1041、对第一坏道进行修复,同时对第一坏道所属数据块的剩余部分进行顺序扫描操作。
[0063]图2中的第一坏道所属数据块如图4所示,图4中阴影部分为坏道。
[0064]1042、对第一坏道所属数据块的剩余部分进行顺序扫描操作的过程中,发现第N坏道,N为大于I的整数,则对第N坏道进行修复,同时对该数据块的剩余部分进行顺序扫描操作,直至完成对该数据块的扫描以及完成对该数据块中所有坏道的修复。
[0065]值得说明的是,一个数据块中可能只存在一个坏道(如第一坏道),也可能存在多个坏道(如第一坏道、第二坏道、……、第N坏道),在对第一坏道所属数据块的剩余部分进行顺序扫描操作的过程中,如果发现还存在坏道,则对该坏道进行修复,同时对该数据块的剩余部分进行顺序扫描操作,顺序扫描操作过程中可能还会发现坏道,则继续按照上述方法修复坏道,同时对该数据块的剩余部分进行顺序扫描操作,直至完成对该数据块的扫描以及完成对该数据块中所有坏道的修复。
[0066]如图4所示,图4中以该数据块中存在3个坏道为例,发现第一坏道,修复第一坏道,同时对对该数据块中^部分进行顺序扫描操作,对I i部分顺序扫描操作过程中发现第二坏道,修复第二坏道,同时对12部分进行顺序扫描操作,对12部分顺序扫描操作的过程中发现第三坏道,修复第三坏道,同时对13部分进行顺序扫描操作,扫描完13部分,没有发现其他坏道,且第一坏道、第二坏道、第三坏道均已修复完成,则继续进行后续步骤。
[0067]可选的,本发明还提供一种硬盘的处理方法,如图5所示,该方法包括:
[0068]501、确定硬盘中已分配数据的区域。
[0069]其中,硬盘中的区域包括已分配数据的区域和未分配数据的区域。如图6所示,斜线部分(区域3)为未分配数据的区域,区域η为该硬盘的最后一个区域,区域η中的1、η2、……η64仅为对数据块的编号,不代表区域的数量。
[0070]值得说明的是,Raidl.0阵列与Raid2.0阵列分配数据的规则不同,对于Raidl.0阵列,数据被连续的分配在硬盘中,例如一个硬盘的容量为600G,已分配的数据占用了 400G,这400G数据占用的是硬盘中从第OG开始连续的400G容量,需要说明的是,在Raidl.0阵列中,硬盘本身没有被分为多个区域,而使用本发明的硬盘处理的方法时才需要对硬盘进行分区域以及分数据块扫描;在Raid2.0阵列中,硬盘被分为多个大小相同的chunk(块),Raid2.0阵列的chunk即为本发明中的区域,一般为64M,每个区域作为一个独立的空间被分配数据,数据不一定被分配在连续的区域。
[0071]结合图6,对于Raidl.0阵列,硬盘中已分配的区域为从区域I开始连续的区域,例如区域I至区域50为已分配数据的区域,区域51至区域η为未分配数据的区域;而对于Raid2.0阵列,硬盘中已分配的区域可能为硬盘中不连续的区域,例如区域1、区域3、区域η为未分配数据的区域,其余区域均为已分配数据的区域。
[0072]502、确定扫描硬盘的起始数据块。
[0073]值得说明的是,起始数据块为硬盘中第一个已分配数据的区域中的数据块,处理设备对硬盘进行多轮扫描,每轮扫描可以选取不同的起始数据块。
[0074]503、从起始数据块开始对硬盘中已分配数据的区域进行跳跃扫描操作,跳跃扫描操作为每间隔预设值的区间扫描一个数据块的操作,预设值为一个区域的容量与两个数据块的容量的差值。
[0075]例如,一个区域的容量为64Μ,一个数据块的容量为1Μ,则预设值为62Μ。
[0076]值得说明的是,在处理设备进行跳跃扫描的过程中,本发明可以只对已分配数据的区域进行扫描,因为未分配数据的区域即使出现坏道也不会对数据产生影响,且在系统下次分配数据前,未分配数据的区域会被格式化,如果有坏道也会被格式化操作修复。
[0077]504、发现第一坏道,暂停跳跃扫描操作。
[0078]505、对第一坏道进行修复,同时对第一坏道所属数据块的剩余部分进行顺序扫描操作。
[0079]506、对第一坏道所属数据块的剩余部分进行顺序扫描操作的过程中,发现第N坏道,N为大于I的整数,则对第N坏道进行修复,同时对该数据块的剩余部分进行顺序扫描操作,直至完成对该数据块的扫描以及完成对该数据块中所有坏道的修复。
[0080]507、对第一坏道所属数据块前后预设范围内的数据块进行顺序扫描操作。
[0081]按照坏道出现的规律,对于Raidl.0阵列,由于硬盘并没有真正的分区域存储数据,所以一般对该数据块前后40M范围内的数据块进行顺序扫描操作;
[0082]对于Raid2.0阵列,由于硬盘被分为多个区域,结合图6,假设区域4的D1中存在坏道,而区域3未被分配数据,所以存在第一坏道所属数据块前40M未被分配数据的情况,所以对于Raid2.0阵列,对第一坏道所属数据块所在的区域进行顺序扫描操作。
[0083]值得说明的是,本步骤中的预设范围是根据历史坏道出现的规律而定的,一般为40M,可根据实际情况调整,如30M、35M、45M、50M等均可。而对于Raid2.0阵列,预设范围就是第一坏道所属数据块所在的区域。
[0084]508、从与第一坏道所属数据块间隔预设值的区间的数据块开始继续进行跳跃扫描操作,直至完成硬盘的最后一个已分配数据区域中的数据块的扫描及修复。
[0085]图6中以只有区域3为未分配数据的区域为例,图6中显示的区域1、区域2、区域4至区域η均为已分配数据的区域,在实际情况中,图6中省略号部分可能还存在未分配数据的区域。以下结合图6说明对硬盘的处理方法,首先处理设备确定本轮扫描操作的起始数据块为区域I中的数据块A1,从区域I中的数据块仏开始扫描,然后间隔62Μ扫描区域I中的数据块A64,然后处理设备扫描区域2中的数据块B63,在数据块B63中发现一个坏道,对该坏道进行修复,同时扫描数据块B63的剩余部分,直到完成对数据块B 63的扫描以及修复。
[0086]处理设备完成对数据块B63的扫描以及修复之后,对数据块B 63的前后40Μ范围内的数据块进行顺序扫描操作,并修复这些数据块中的坏道。
[0087]之后处理设备从数据块B63开始间隔62Μ继续进行跳跃扫描,由于区域3是未分配数据的区域,所以忽略区域3,扫描区域4的数据块D62,扫描区域4的数据块D62没有发现坏道,则继续
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1