掌桥专利:专业的专利平台
掌桥专利
首页

一种硬盘扫描检测方法

文献发布时间:2023-06-19 09:24:30


一种硬盘扫描检测方法

技术领域

本发明属于数据存储技术领域,涉及一种用于提升数据存储可靠性的硬盘扫描检测的方法。

背景技术

现代社会数字信息不断增长和技术手段不断提升,数据的存储规模以及硬盘容量不断增加,使得数据中心中成千上万的硬盘中的某个硬盘随时有可能会出现故障,因此对存储阵列的可靠性提出了挑战。

发生错误前的错误预防,是指存储系统为了防止系统发生错误,而对存储系统的软、硬件进行可靠性检查的一种行为。这种方式对于发现以及修复存储系统中的潜在扇区失效或者无征兆数据损坏非常有效。因为这两种错误在被发现之前对于存储系统危害并不大,但是一旦在运行时被发现,则非常容易导致数据丢失。采用错误预防则会很好的阻止由于类似这样的错误而导致数据丢失。错误预防己成为数据中心常用的一种可靠性措施,而且随着网络免费软件的普及,这种方法也经常被个人PC和小型企业数据服务器所采用。

作为错误预防的重要手段之一,硬盘扫描检测技术是指在正常读写访问之外通过特定命令(如SCSI协议中的VERIFY)下发读取硬盘数据,通过IO读取数据,可以找到无法读出数据的坏道,进行Remap重映射,将数据重新写到硬盘空闲区域,进而保护数据。硬盘扫描检测技术的主要方法包括全盘扫描方法和随机扫描方法。

如图1所示,全盘扫描方法就是借助VERIFY命令,对硬盘全盘下发IO读命令,起始地址是从第0个block开始,对每一个block逐一扫描,直到最后一个block结束。在扫描过程中,如果发现坏道,首先是使用内部的ECC机制,将坏的扇区状态标记为不可读写,然后会去做Remap动作,将坏道数据块进行重映射,最后把数据写到空闲硬盘扇区上。全盘扫描方法需占用硬盘IO并发,将硬盘数据读出,以检测坏道,这样就导致影响正常的业务数据和用户体验。另外全盘扫描方法对于磁介质硬盘具有一定风险,在一个扫描周期内,由于要对整个硬盘进行读操作,在多次扫描之后,可能给硬盘特别是磁介质硬盘带来新的坏道,当一次读操作进行时,磁道还是好的,当读操作结束时,硬盘被读过的磁道扇区变成了硬盘坏道。再有就是扫描动作不灵活,全盘扫描方法的扫描起始地址是从第一个0扇区开始的,只有当一个周期结束之后,才会开始下一次的扫描,这就导致了扫描会有一定的滞后性,尤其是在扫描周期较长的情况下,当最后一个block扫描完时,可能在前面的block上面已经产生了新的坏道。

如图2所示,随机扫描方法是继全盘扫描方法之后提出的一类优化方法,随机方法针对全盘扫描方法的缺点提出了很多的改进措施,它的核心思想是对硬盘进行随机的读取,由于是随机读取硬盘,因此硬盘的扫描速度很快,扫描周期也相应的变短,这使得随机扫描方法更加灵活。在扫描的过程中如果发现坏道,它的处理机制和全盘扫描方法是一样的,首先是使用内部的ECC机制,将坏的扇区状态标记为不可读写,选择好的硬盘介质,将坏道进行重新Remap。随机扫描方法的问题是扫描的范围不够全面,很容易就会漏扫坏道,如在不支持双盘失效的存储阵列RAID5上,当出现一块硬盘失效时,在重构数据的过程中,若在另一块数据盘上出现坏道,RAID5阵列就会失效。另外一个缺点是由于是随机扫描,扫描的时候是没有什么规律的,这就会导致硬盘的某些扇区可能在一个扫描周期内多次被读取,而有些扇区在多个扫描周期内都没有被扫描,这就造成了扫描资源的浪费,并给整个存储阵列的可靠性带来严重的挑战。

发明内容

(一)发明目的

为了解决上述问题,根据前面的分析,由于硬盘的潜在扇区失效发生有一定的集群效应,比如硬盘某些扇区发生硬盘潜在坏道失效,那么它周围出现潜在硬盘坏道错误的概率将会比没有出现潜在坏道失效的扇区的概率大很多,针对这些情况提出了一种硬盘区块扫描检测方法。

(二)技术方案

为了解决上述技术问题,本发明提供一种硬盘扫描检测方法,通过对硬盘下发读取数据的命令,找到已不能读取数据的硬盘坏道,利用ECC机制对这个坏道扇区进行状态标记,然后将该扇区上的数据进行Remap处理,并将数据恢复到好的扇区上。

(三)有益效果

上述技术方案所提供的硬盘扫描检测方法,具有以下有益效果:

1、该方法避免了随机扫描方法的扫描范围不全的缺陷,硬盘的每一个扇区都会扫描到;

2、该方法克服了全盘扫描方法不够灵活的不足,可以更加快速地发现硬盘坏道;

3、该方法能够降低CPU负担,并且减少用户的使用成本。

附图说明

图1为全盘扫描方法示意图。

图2为随机扫描方法示意图。

图3为区块扫描方法示意图。

具体实施方式

为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。

区块扫描检测方法基本思路和其它的硬盘擦写技术是一样的,通过对硬盘下发读取数据的命令,找到已不能读取数据的硬盘坏道,利用ECC机制对这个坏道扇区进行状态标记,然后将该扇区上的数据进行Remap处理,并将数据恢复到好的扇区上。

如图3所示,区块扫描方法的策略是:首先将硬盘分为大小相同的N个区域(Section),区域间地址是连续的,区域的大小取决于硬盘的容量、硬盘转速和硬盘品牌等因素,然后再将每个区域里面的数据分为M个大小统一的数据块(Block),数据块间地址也是连续的。将数据分块后,区块扫描方法就会以跳跃的方式对硬盘进行扫描。区块扫描方法和全盘扫描方法以及随机扫描方法一样,依然是读取数据,以找到硬盘数据坏道,但是区块扫描方法是每次扫描都会跳跃一个区域,并且在每个区域里面每次也只扫描一个数据块BlockNM,直到扫描到最后一个区域,一个扫描的小周期就结束了,接着从最开始的区域里面的下一个数据块再开始扫描,直到最后一个区域的最后一个数据块扫描完成,一个总的扫描周期结束。

本实施例扫描检测流程如下:

1、根据硬盘扫描代价、硬盘中所存数据的价值以及硬盘的失效率等信息,确定硬盘的扫描周期T;

2、假设当前时间点为Tc,上次扫描的时间点为Ts,如果Tc-Ts

3、重置硬盘扫描参数:等待时间time,数据块大小block_size,开始地址address,区域大小section_size,区域数量section_num;

4、重置区域位置section_pos=0和开始地址的偏移量offset=0;

5、如果硬盘上有用户请求,等待一个预设时间常量Tw;

6、发出硬盘读请求,请求区域地址为address+(section_pos*section_size)+(block_size*offset),大小为block_size;

7、读请求完成后,检查信息中所报告的潜在错误地址(fault_address);

8、如果fault_address扇区有错误,启动修复命令REASSIGN BLOCK修复此扇区;

9、section_pos=section_pos+1;

10、如果section_pos

11、offset=offset+1,重置区域位置section_pos=0;

12、如果offset

13、一次扫描过程结束,转步骤2等待下次扫描启动。

按照上述流程,即完成了硬盘区块扫描检测的全部流程。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

相关技术
  • 一种硬盘扫描检测方法
  • 一种固态硬盘全盘扫描方法及固态硬盘
技术分类

06120112154704