CN105159807A - 一种检测潜在扇区错误的方法 - Google Patents
一种检测潜在扇区错误的方法 Download PDFInfo
- Publication number
- CN105159807A CN105159807A CN201510561598.6A CN201510561598A CN105159807A CN 105159807 A CN105159807 A CN 105159807A CN 201510561598 A CN201510561598 A CN 201510561598A CN 105159807 A CN105159807 A CN 105159807A
- Authority
- CN
- China
- Prior art keywords
- request
- mode
- thread
- eraser
- cfq
- 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
Links
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明公开了一种检测潜在扇区错误的方法,其特征在于利用随机读方式来检测潜在错误扇区,可以在一定程度上提高检测效率、减少对上层业务的影响。
Description
技术领域
本发明涉及计算机系统及存储领域,具体涉及一种检测潜在扇区错误的方法。
背景技术
潜在扇区错误(LSES)是一种常见的硬盘故障模式,在磁盘扇区不可用但是硬盘的其余部分不受影响。为了防止潜在扇区错误,需要相关方法检测潜在错误。目前,普遍检测潜在错误扇区采取的方法是利用读的方式,从头到尾读写每一个扇区,这种方式的缺点在于检测效率较低,对所有扇区进行读操作,也影响并发上层业务的效率。上述方法性能较低,需要进行优化。
发明内容
本发明要解决的技术问题是针对潜在扇区错误,提出一种检测潜在扇区错误的方法,与现有检测方法相比,具有对上层业务影响较小、检测效率高的优势。
本发明提供了一种检测潜在扇区错误的方法,其特征在于:采用随机读的方式进行检测潜在扇区错误。
进一步地,所述方法应用于内核空间。
进一步地,所述方法应用于内核空间的通用块层。
进一步地,所述方法通过自举的方式被激活。
进一步地,所述自举的方式被激活是指休眠的线程被插在CPU的睡眠队列,直到需要读写一个特定的设备被激活。
进一步地,所述随机读的方式包括通过通用块擦除器层的接口来发送擦除请求到I/O调度器,以及设置擦除器线程的I/O优先级。
进一步地,所述请求伪装成普通的读请求。
进一步地,所述请求发出后,回调休眠队列,并完成应答。
进一步地,所述擦除器线程经SCSI验证后发送到I/O调度器层。
进一步地,所述随机读的读取大小为16MB。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1示出了根据本发明一实施例的内核擦除器(kernelscrubber)的架构图。
具体实施方式
本发明作为一种检测潜在扇区错误的方法,该方法是利用随机读方式来检测潜在错误扇区,可以在一定程度上提高检测效率、减少对上层业务的影响。
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合
相对于背景技术所述的潜在磁盘扇区错误检测方法,本发明的随机读的策略的核心在于:可以更快的探测磁盘的不同区域,并且“期望”这些探测可以检测到错误区域,此种策略在高等数学的概率学中已被证明。因此,采用随机读的方法可以有效的提高检测的效率。
对于本发明的方法,需要确定如下细节:实现该方法需要在内核空间还是用户空间,如果是内核空间具体处于哪一位置;何时调度使用该方法;该方法的读取速度是多少;每一次读写的大小是多少。下面将对这些问题进行进一步阐述。
从本发明的需求以及要解决的问题来看,它需要调用LINUX内核中的调度策略(CFQ)来完成调度策略,而在用户空间无法避免调度策略的缺失,因此在内核空间来进行是最为合适。需要基于磁盘进行读操作,并且需要用到CFQ调度器,因此,本方法应该位于块I/O子系统的通用块层(GenericBlocklayer)。
关于本方法的调度策略使用内核中的CFQ算法。CFQ算法是针对一个磁盘设备的,即每个磁盘设备都会管理一个cfq对象。在磁盘设备的请求队列(requestqueue)对象中会保存这个cfq对象,这点和其他的调度算法是相同的。Cfq数据(cfq_data)就是那个cfq对象。前面提到,由于一个磁盘设备会被多个线程进行访问,因此可以存在多种I/O策略,所以,一个cfq对象需要管理多个cfq组(cfq_group),每个cfq_group管理了一种I/O策略。在cfq算法中,每个按时间片调度的基本单元是线程,由于多个线程可以共享一种策略,即共享cfq_group,因此,在cfq_group对象中为每个线程独立管理了一个request队列,这个队列对象是cfq_queue。Cfq_queue是与线程相关的调度对象,cfq算法在调度的过程中会给被调度的cfq_queue分配时间片,然后在这个时间片内处理cfq_queue中的request。调度cfq_queue中的request方法和deadline算法是基本一致的。因此,在cfq_queue中会维护一棵红黑树以及一条FIFO队列,FIFO队列中的request按照时间先后次序排列,红黑树上的request采用逻辑块地址LBA访问地址进行索引。并且在处理的过程中,也会考虑临近I/O优先处理的策略,使得磁盘临近IO批量处理,提高了I/O性能。
读取速度与读取的大小是成比例的关系,通过大量的实验可以得出在某一读取速度与读取大小的比值上,可以达到最优的效果。通过实验可以得出在一次读取大小为16MB时,可以达到最优的读取速度。
参考图1,内核擦除器结构包括通用块层、I/O调度器层(I/OSchedulerLayer)、块设备(BlockDevice),通用块层包括擦除器层(ScrubberLayer)。
本方法会通过自举(bootstrapping)的方式被激活,同时匹配需要读取的系统中的每一个块设备。休眠的线程被插在CPU的睡眠队列,直到需要读写一个特定的设备被激活。
本方法利用通用块擦除器层(ScrubberLayer)的接口来发送擦除请求(ScrubbingRequest)到I/O调度器和设置擦除器线程(ScrubberThread)I/O优先级。为了是I/O调度器可以挑选和应答优先级更高的请求,每次线程调度请求我们把它伪装成普通的读请求去承载更多的相关信息。一旦该请求发出,将回调休眠队列,并完成应答。进一步地,擦除器线程(ScrubberThread)经SCSI验证(SCSIVerify)后发送到I/O调度器层。
综上就是本方法在内核中的架构以及调度方法。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (10)
1.一种检测潜在扇区错误的方法,其特征在于:
采用随机读的方式进行检测潜在扇区错误。
2.如权利要求1所述的方法,其特征在于,所述方法应用于内核空间。
3.如权利要求2所述的方法,其特征在于,所述方法应用于内核空间的通用块层。
4.如权利要求1所述的方法,其特征在于,所述方法通过自举的方式被激活。
5.如权利要求4所述的方法,其特征在于,所述自举的方式被激活是指休眠的线程被插在CPU的睡眠队列,直到需要读写一个特定的设备被激活。
6.如权利要求5所述的方法,其特征在于,所述随机读的方式包括通过通用块擦除器层的接口来发送擦除请求到I/O调度器,以及设置擦除器线程的I/O优先级。
7.如权利要求6所述的方法,其特征在于,所述请求伪装成普通的读请求。
8.如权利要求6所述的方法,其特征在于,所述请求发出后,回调休眠队列,并完成应答。
9.如权利要求6所述的方法,其特征在于,所述擦除器线程经SCSI验证后发送到I/O调度器层。
10.如权利要求6所述的方法,其特征在于,所述随机读的读取大小为16MB。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510561598.6A CN105159807A (zh) | 2015-09-06 | 2015-09-06 | 一种检测潜在扇区错误的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510561598.6A CN105159807A (zh) | 2015-09-06 | 2015-09-06 | 一种检测潜在扇区错误的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105159807A true CN105159807A (zh) | 2015-12-16 |
Family
ID=54800669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510561598.6A Pending CN105159807A (zh) | 2015-09-06 | 2015-09-06 | 一种检测潜在扇区错误的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105159807A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108959085A (zh) * | 2018-06-25 | 2018-12-07 | 清华大学 | 一种检测内核模块在原子上下文中休眠错误的方法及系统 |
CN109298979A (zh) * | 2018-08-17 | 2019-02-01 | 新华三技术有限公司成都分公司 | 硬盘故障处理方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103729276A (zh) * | 2014-01-28 | 2014-04-16 | 深圳市迪菲特科技股份有限公司 | 一种扫描磁盘阵列的方法 |
-
2015
- 2015-09-06 CN CN201510561598.6A patent/CN105159807A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103729276A (zh) * | 2014-01-28 | 2014-04-16 | 深圳市迪菲特科技股份有限公司 | 一种扫描磁盘阵列的方法 |
Non-Patent Citations (2)
Title |
---|
THOMAS J. E. SCHWARZ, S. J. 等: "Disk Scrubbing in Large Archival Storage Systems", 《PROCEEDINGS OF THE THE IEEE COMPUTER SOCIETY’S 12TH ANNUAL INTERNATIONAL SYMPOSIUM ON MODELING, ANALYSIS, AND SIMULATION OF COMPUTER AND TELECOMMUNICATIONS SYSTEMS (MASCOTS’04)》 * |
胡明德: "磁盘阵列可靠性研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108959085A (zh) * | 2018-06-25 | 2018-12-07 | 清华大学 | 一种检测内核模块在原子上下文中休眠错误的方法及系统 |
CN108959085B (zh) * | 2018-06-25 | 2020-09-01 | 清华大学 | 一种检测内核模块在原子上下文中休眠错误的方法及系统 |
CN109298979A (zh) * | 2018-08-17 | 2019-02-01 | 新华三技术有限公司成都分公司 | 硬盘故障处理方法及装置 |
CN109298979B (zh) * | 2018-08-17 | 2022-08-12 | 新华三技术有限公司成都分公司 | 硬盘故障处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106548789B (zh) | 用于操作叠瓦式磁记录设备的方法和装置 | |
KR102487790B1 (ko) | 저장 시스템에서의 가속된 데이터 복구 | |
US9021178B2 (en) | High performance path for command processing | |
US11023147B2 (en) | Mapping storage extents into resiliency groups | |
US8909859B2 (en) | Implementing large block random write hot spare SSD for SMR RAID | |
CN101334708B (zh) | 具有写屏障敏感命令和写屏障不敏感命令的存储设备 | |
US7975095B2 (en) | Device and method for using a flash memory as a hard disk cache | |
US10102102B2 (en) | Characterizing device performance based on user-perceivable latency | |
US20070150645A1 (en) | Method, system and apparatus for power loss recovery to enable fast erase time | |
US8862819B2 (en) | Log structure array | |
US20140115016A1 (en) | Systems and methods for enabling parallel processing of write transactions | |
CN103473266A (zh) | 固态硬盘及其删除重复数据的方法 | |
CN102306503A (zh) | 一种假容量存储器的检测方法及系统 | |
CN103530237A (zh) | 一种固态盘阵列的垃圾回收方法 | |
CN104050014B (zh) | 基于虚拟化平台的高效存储管理方法 | |
US10929066B1 (en) | User stream aware file systems with user stream detection | |
US10133517B2 (en) | Storage control device | |
CN105159807A (zh) | 一种检测潜在扇区错误的方法 | |
CN104035886B (zh) | 磁盘重映射方法、装置及电子设备 | |
CN102750213B (zh) | 磁盘检测、处理方法及检测、处理系统 | |
CN105094711B (zh) | 一种实现写时复制文件系统的方法及装置 | |
CN104899158A (zh) | 访存优化方法和装置 | |
CN103399783A (zh) | 虚拟机的镜像文件的存储方法和装置 | |
US10007437B2 (en) | Management apparatus, storage system, method, and computer readable medium | |
US11281573B2 (en) | Modification-frequency-based tiered data storage and garbage collection system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151216 |