CN112164415A - 一种硬盘扫描检测方法 - Google Patents

一种硬盘扫描检测方法 Download PDF

Info

Publication number
CN112164415A
CN112164415A CN202011103015.2A CN202011103015A CN112164415A CN 112164415 A CN112164415 A CN 112164415A CN 202011103015 A CN202011103015 A CN 202011103015A CN 112164415 A CN112164415 A CN 112164415A
Authority
CN
China
Prior art keywords
scanning
hard disk
block
size
data
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.)
Pending
Application number
CN202011103015.2A
Other languages
English (en)
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.)
Tianjin Jinhang Computing Technology Research Institute
Original Assignee
Tianjin Jinhang Computing Technology Research Institute
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 Tianjin Jinhang Computing Technology Research Institute filed Critical Tianjin Jinhang Computing Technology Research Institute
Priority to CN202011103015.2A priority Critical patent/CN112164415A/zh
Publication of CN112164415A publication Critical patent/CN112164415A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/30Accessing single arrays
    • G11C29/32Serial access; Scan testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check

Landscapes

  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本发明公开了一种硬盘扫描检测方法,通过对硬盘下发读取数据的命令,找到已不能读取数据的硬盘坏道,利用ECC机制对这个坏道扇区进行状态标记,然后将该扇区上的数据进行Remap处理,并将数据恢复到好的扇区上。本发明避免了随机扫描方法的扫描范围不全的缺陷,硬盘的每一个扇区都会扫描到;克服了全盘扫描方法不够灵活的不足,可以更加快速地发现硬盘坏道;能够降低CPU负担,并且减少用户的使用成本。

Description

一种硬盘扫描检测方法
技术领域
本发明属于数据存储技术领域,涉及一种用于提升数据存储可靠性的硬盘扫描检测的方法。
背景技术
现代社会数字信息不断增长和技术手段不断提升,数据的存储规模以及硬盘容量不断增加,使得数据中心中成千上万的硬盘中的某个硬盘随时有可能会出现故障,因此对存储阵列的可靠性提出了挑战。
发生错误前的错误预防,是指存储系统为了防止系统发生错误,而对存储系统的软、硬件进行可靠性检查的一种行为。这种方式对于发现以及修复存储系统中的潜在扇区失效或者无征兆数据损坏非常有效。因为这两种错误在被发现之前对于存储系统危害并不大,但是一旦在运行时被发现,则非常容易导致数据丢失。采用错误预防则会很好的阻止由于类似这样的错误而导致数据丢失。错误预防己成为数据中心常用的一种可靠性措施,而且随着网络免费软件的普及,这种方法也经常被个人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<T,等待时间T+Ts-Tc,启动扫描;
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<section_num,转步骤5;
11、offset=offset+1,重置区域位置section_pos=0;
12、如果offset<section_size/block_size,转步骤5;
13、一次扫描过程结束,转步骤2等待下次扫描启动。
按照上述流程,即完成了硬盘区块扫描检测的全部流程。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (6)

1.一种硬盘扫描检测方法,其特征在于,包括以下步骤:
S1:将硬盘分为大小相同的N个区域;
S2:将每个区域里面的数据分为M个大小统一的数据块;
S3:采用区块扫描方法,以跳跃的方式对硬盘进行扫描,读取数据,找到硬盘数据坏道。
2.如权利要求1所述的硬盘扫描检测方法,其特征在于,所述步骤S1中,N个区域的地址是连续的。
3.如权利要求2所述的硬盘扫描检测方法,其特征在于,所述步骤S2中,M个数据块间地址是连续的。
4.如权利要求3所述的硬盘扫描检测方法,其特征在于,所述步骤S3中,区块扫描方法中,每次扫描跳跃一个区域,在每个区域里面每次只扫描一个数据块,直到扫描到最后一个区域,一个扫描的小周期结束,接着从最开始的区域里面的下一个数据块再开始扫描,直到最后一个区域的最后一个数据块扫描完成,一个总的扫描周期结束。
5.如权利要求4所述的硬盘扫描检测方法,其特征在于,所述步骤S3中,区块扫描方法的过程为:
5.1、确定硬盘的扫描周期T;
5.2、假设当前时间点为Tc,上次扫描的时间点为Ts,如果Tc-Ts<T,等待时间T+Ts-Tc,启动扫描;
5.3、重置硬盘扫描参数:等待时间time,数据块大小block_size,开始地址address,区域大小section_size,区域数量section_num;
5.4、重置区域位置section_pos=0和开始地址的偏移量offset=0;
5.5、如果硬盘上有用户请求,等待一个预设时间常量Tw;
5.6、发出硬盘读请求,请求区域地址为address+(section_pos*section_size)+(block_size*offset),大小为block_size;
5.7、读请求完成后,检查信息中所报告的潜在错误地址fault_address;
5.8、如果fault_address扇区有错误,启动修复命令REASSIGN BLOCK修复此扇区;
5.9、区域位置section_pos+1;
5.10、如果section_pos+1<section_num,转步骤5.5;
5.11、offset+1,重置区域位置section_pos=0;
5.12、如果offset+1<section_size/block_size,转步骤5.5;
5.13、一次扫描过程结束,转步骤5.2等待下次扫描启动。
6.一种如权利要求1-5中任一项所述的硬盘扫描检测方法在数据存储技术领域的应用。
CN202011103015.2A 2020-10-15 2020-10-15 一种硬盘扫描检测方法 Pending CN112164415A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011103015.2A CN112164415A (zh) 2020-10-15 2020-10-15 一种硬盘扫描检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011103015.2A CN112164415A (zh) 2020-10-15 2020-10-15 一种硬盘扫描检测方法

Publications (1)

Publication Number Publication Date
CN112164415A true CN112164415A (zh) 2021-01-01

Family

ID=73867106

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011103015.2A Pending CN112164415A (zh) 2020-10-15 2020-10-15 一种硬盘扫描检测方法

Country Status (1)

Country Link
CN (1) CN112164415A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010282722A (ja) * 2010-08-19 2010-12-16 Panasonic Corp トラックジャンピング走査制御装置およびトラック検索装置
CN103729276A (zh) * 2014-01-28 2014-04-16 深圳市迪菲特科技股份有限公司 一种扫描磁盘阵列的方法
CN104599718A (zh) * 2014-12-16 2015-05-06 华为技术有限公司 一种硬盘的处理方法及装置
US20170098463A1 (en) * 2015-10-01 2017-04-06 Kabushiki Kaisha Toshiba Storage device and a method for defect scanning of the same

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010282722A (ja) * 2010-08-19 2010-12-16 Panasonic Corp トラックジャンピング走査制御装置およびトラック検索装置
CN103729276A (zh) * 2014-01-28 2014-04-16 深圳市迪菲特科技股份有限公司 一种扫描磁盘阵列的方法
CN104599718A (zh) * 2014-12-16 2015-05-06 华为技术有限公司 一种硬盘的处理方法及装置
US20170098463A1 (en) * 2015-10-01 2017-04-06 Kabushiki Kaisha Toshiba Storage device and a method for defect scanning of the same

Similar Documents

Publication Publication Date Title
US6427215B2 (en) Recovering and relocating unreliable disk sectors when encountering disk drive read errors
US8711500B1 (en) Disk drive to enable defect margining
US7917803B2 (en) Data conflict resolution for solid-state memory devices
US6327679B1 (en) Relocating unreliable disk sectors when encountering disk drive read errors with notification to user when data is bad
JP4355012B2 (ja) 隣接トラック干渉可能性の予備検出を介してハード・ドライブ・データを保護する方法、システム、及びプログラム記憶装置(隣接トラック干渉可能性の予備検出を介したハード・ドライブ・データの保護)
US7415636B2 (en) Method and apparatus for replacement processing
US9177607B2 (en) Logging disk recovery operations in a non-volatile solid-state memory cache
US20120060054A1 (en) Method for using bad blocks of flash memory
JPH05505264A (ja) データ記憶装置における書込みオペレーション識別子の不揮発性メモリ記憶
US7664981B2 (en) Method of restoring source data of hard disk drive and method of reading system information thereof
US5467361A (en) Method and system for separate data and media maintenance within direct access storage devices
US7761770B2 (en) Disk controller architecture to allow on-the-fly error correction and write disruption detection
CN112164415A (zh) 一种硬盘扫描检测方法
CN110348245B (zh) 基于nvm的数据完整性保护方法、系统、装置及存储介质
CN113190179B (zh) 提升机械硬盘使用寿命的方法、存储设备及系统
US6426928B1 (en) Ability to distinguish true disk write errors
TW201005734A (en) Data storage method, apparatus and system for interrupted write recovery
JP2003297025A (ja) ディスク装置
JPH07182250A (ja) 磁気ディスクの自動交代処理方式
US20110205654A1 (en) Control apparatus, nonvolatile storage apparatus and data initialization method
US6229743B1 (en) Method of a reassign block processing time determination test for storage device
US20170229141A1 (en) Managing read and write errors under external vibration
JP2009223355A (ja) ハードディスクとシリコンディスクのミラーリングを行うディスク制御システム
TW513696B (en) Method for detecting transient write errors in a disk drive and for differentiating transient write errors from permanent media damage
US11081135B2 (en) Shingled magnetic recording storage system

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