CN104657088A - 一种硬盘坏块信息的获取方法及装置 - Google Patents
一种硬盘坏块信息的获取方法及装置 Download PDFInfo
- Publication number
- CN104657088A CN104657088A CN201510065134.6A CN201510065134A CN104657088A CN 104657088 A CN104657088 A CN 104657088A CN 201510065134 A CN201510065134 A CN 201510065134A CN 104657088 A CN104657088 A CN 104657088A
- Authority
- CN
- China
- Prior art keywords
- request
- block
- hard disk
- bad block
- block device
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明适用于计算机技术领域,提供了一种硬盘坏块信息的获取方法及装置,包括:在操作系统的用户空间运行一个独立的文件系统守护线程;在所述用户空间与所述操作系统的内核空间之间建立通讯通道;当获知块设备IO请求失败后,判断所述块设备IO请求是否为写请求;若所述块设备IO请求为写请求,则由所述内核空间将所述块设备IO请求对应的块设备的坏块位置通过所述通讯通道发送至所述守护线程。在本发明中,写硬盘操作失败的结果会从操作系统的内核传递至文件系统,以使文件系统获知到写硬盘操作失败的结果,同时获知到硬盘中不可修复坏块的位置,以便于采取进一步的处理措施,避免把数据存储到已发生过写错误的坏块中。
Description
技术领域
本发明属于计算机技术领域,尤其涉及一种硬盘坏块信息的获取方法及装置。
背景技术
应用程序通过调用文件系统的接口来实现文件读写操作,而文件系统对物理硬盘的读写操作则是通过调用操作系统系统调用层的对应接口来实现。由于操作系统缓存机制的存在,文件系统只要把数据成功写入操作系统的缓存,就能得到“写操作成功”的结果,当积累的写缓存数据量达到设定阈值,或者写缓存数据在缓存中停留时间达到设定阈值,操作系统会将写缓存数据同步进硬盘。
通常,称无法通过写操作修复的硬盘坏块为不可修复坏快,在写操作过程中,若遇到不可修复坏块,ATA(Advanced Technology Attachment)驱动会得到“写操作失败”的结果,然而,由于文件系统的写操作早已结束,并已得到了“写操作成功”的结果,操作系统无法向文件系统反馈写硬盘失败的结果,因此,文件系统无法知悉硬盘的不可修复坏块信息。
发明内容
本发明实施例的目的在于提供一种硬盘坏块信息的获取方法及装置,旨在解决现有技术中文件系统无法获知硬盘的不可修复坏块信息的问题。
本发明实施例是这样实现的,一种硬盘坏块信息的获取方法,包括:
在操作系统的用户空间运行一个独立的文件系统守护线程;
在所述用户空间与所述操作系统的内核空间之间建立通讯通道;
当获知块设备IO请求失败后,判断所述块设备IO请求是否为写请求;
若所述块设备IO请求为写请求,则由所述内核空间将所述块设备IO请求对应的块设备的坏块位置通过所述通讯通道发送至所述守护线程。
本发明实施例的另一目的在于提供一种硬盘坏块信息的获取装置,包括:
运行单元,用于在操作系统的用户空间运行一个独立的文件系统守护线程;
建立单元,用于在所述用户空间与所述操作系统的内核空间之间建立通讯通道;
判断单元,用于当获知块设备IO请求失败后,判断所述块设备IO请求是否为写请求;
发送单元,用于若所述块设备IO请求为写请求,则由所述内核空间将所述块设备IO请求对应的块设备的坏块位置通过所述通讯通道发送至所述守护线程。
在本发明实施例中,写硬盘操作失败的结果会从操作系统的内核传递至文件系统,以使文件系统获知到写硬盘操作失败的结果,同时获知到硬盘中不可修复坏块的位置,以便于采取进一步的处理措施,避免把数据存储到已发生过写错误的坏块中。
附图说明
图1是本发明实施例提供的硬盘坏块信息的获取方法的实现流程图;
图2是本发明另一实施例提供的硬盘坏块信息的获取方法的实现流程图;
图3是本发明另一实施例提供的硬盘坏块信息的获取方法的实现流程图;
图4是本发明另一实施例提供的硬盘坏块信息的获取方法的实现流程图;
图5是本发明实施例提供的硬盘坏块信息的获取装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1示出了本发明实施例提供的硬盘坏块信息的获取方法的实现流程,详述如下:
在S101中,在操作系统的用户空间运行一个独立的文件系统守护线程。
在S102中,在所述用户空间与所述操作系统的内核空间之间建立通讯通道。
在Linux系统中,一部分核心软件独立于普通应用程序,运行在较高的特权级别上,它们驻留在被保护的内存空间上,拥有访问硬件设备的所有权限,在Linux系统中将此部分内存空间称为内核空间;相对地,运行应用程序的内存空间被称为用户空间,运行在用户空间的应用程序只能看到允许它们使用的部分系统资源,并且不能使用某些特定的系统功能,也不能直接访问内核空间和硬件设备。
在本实施例中,在操作系统的用户空间中运行一个独立的文件系统守护线程(Daemon),并在操作系统的用户空间与内核空间之间建立起通讯通道,以用于本实施例中用户空间与内核空间之间的通信。
在S103中,当获知块设备IO请求失败后,判断所述块设备IO请求是否为写请求。
具体地,可以通过在内核空间定义变量来获知块设备IO请求是否失败。如图2所示,在S102之前,所述方法还包括:
S201,在所述内核空间添加初始化为第一取值的变量。
S202,当所述块设备IO请求失败后,置所述变量为第二取值。
例如,在Linux系统的内核空间添加变量ATA_CMD_WRITE_FAIL,并将该变量初始化为FALSE。当ATA驱动得到写硬盘操作失败的结果,则将该变量置为TRUE。
则如图2所示,S103具体通过图2中的S203实现:
S203,当读取到所述变量为第二取值时,确定所述块设备IO请求失败,并判断所述块设备IO请求是否为写请求。
在S104中,若所述块设备IO请求为写请求,则由所述内核空间将所述块设备IO请求对应的块设备的坏块位置通过所述通讯通道发送至所述守护线程。
针对图2所示实施例,即,当变量ATA_CMD_WRITE_FAIL==TRUE时,由内核空间将块设备的坏块位置通过建立好的通讯通道发送给守护线程,以使文件系统能够得知硬盘中不可修复坏块的坏块位置。
通过上述方案,写硬盘操作失败的结果会从操作系统的内核传递至文件系统,以使文件系统获知到写硬盘操作失败的结果,同时获知到硬盘中不可修复坏块的位置,以便于采取进一步的处理措施,避免把数据存储到已发生过写错误的坏块中。
如图3所示,在S104之后,所述方法还包括:
S105,触发文件系统索引修复操作,对所述块设备的坏块位置进行修复。
通常,一个硬盘的物理块用于存放文件系统索引,其存储的索引涉及的文件可能有数百个,一个块的损坏会造成数百个文件丢失,尤其在视频监控领域,录像文件的丢失会造成严重的后果,因此,在本实施例中,一旦获知了坏块位置,就立即触发执行文件系统索引修复操作,并采取措施,避免把修复结果再次写入硬盘坏块。
作为本发明的一个实施例,在执行S103之前,如图4所示,所述方法还包括:
S106,在所述用户空间创建硬盘坏块位置记录表。
在本实施例中,硬盘坏块位置记录表用于记录硬盘中不可修复坏块的位置信息。
则在S104之后,所述方法还包括:
S107,将所述块设备的坏块位置更新至所述硬盘坏块位置记录表。
即,当守护线程获知到块设备的坏块位置之后,将该坏块位置的相关信息记录在硬盘坏块位置记录表中,以便于根据硬盘坏块位置记录表中记录的坏块位置,触发文件系统索引修复操作。
进一步地,在图4所示实施例的基础之上,由运行的守护线程来实现对硬盘坏块位置记录表的维护,具体地:
由所述守护线程将所述块设备的坏块位置更新所述硬盘坏块位置记录表。
对应于上文实施例所述的硬盘坏块信息的获取方法,图5示出了本发明实施例提供的硬盘坏块信息的获取装置的结构框图,为了便于说明,仅示出了与本实施例相关的部分。
参照图5,该装置包括:
运行单元51,在操作系统的用户空间运行一个独立的文件系统守护线程。
建立单元52,在所述用户空间与所述操作系统的内核空间之间建立通讯通道。
判断单元53,当获知块设备IO请求失败后,判断所述块设备IO请求是否为写请求。
发送单元54,若所述块设备IO请求为写请求,则由所述内核空间将所述块设备IO请求对应的块设备的坏块位置通过所述通讯通道发送至所述守护线程。
可选地,所述装置还包括:
创建单元,在所述用户空间创建硬盘坏块位置记录表。
更新单元,将所述块设备的坏块位置更新至所述硬盘坏块位置记录表。
可选地,所述更新单元具体用于:
由所述守护线程将所述块设备的坏块位置更新所述硬盘坏块位置记录表。
可选地,所述装置还包括:
初始化单元,在所述内核空间添加初始化为第一取值的变量。
变更单元,当所述块设备IO请求失败后,置所述变量为第二取值。
则所述判断单元53具体用于:
当读取到所述变量为第二取值时,确定所述块设备IO请求失败,并判断所述块设备IO请求是否为写请求。
可选地,所述装置还包括:
修复单元,触发文件系统索引修复操作,对所述块设备的坏块位置进行修复。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种硬盘坏块信息的获取方法,其特征在于,包括:
在操作系统的用户空间运行一个独立的文件系统守护线程;
在所述用户空间与所述操作系统的内核空间之间建立通讯通道;
当获知块设备IO请求失败后,判断所述块设备IO请求是否为写请求;
若所述块设备IO请求为写请求,则由所述内核空间将所述块设备IO请求对应的块设备的坏块位置通过所述通讯通道发送至所述守护线程。
2.如权利要求1所述的方法,其特征在于,所述当获知块设备IO请求失败后,判断所述块设备IO请求是否为写请求之前,所述方法还包括:
在所述用户空间创建硬盘坏块位置记录表;
则所述方法还包括:
将所述块设备的坏块位置更新至所述硬盘坏块位置记录表。
3.如权利要求2所述的方法,其特征在于,所述将所述块设备的坏块位置更新至所述硬盘坏块位置记录表包括:
由所述守护线程将所述块设备的坏块位置更新所述硬盘坏块位置记录表。
4.如权利要求1所述的方法,其特征在于,在所述在操作系统的用户空间与内核空间之间建立通讯通道之前,所述方法还包括:
在所述内核空间添加初始化为第一取值的变量;
当所述块设备IO请求失败后,置所述变量为第二取值;
则所述当获知块设备IO请求失败后,判断所述块设备IO请求是否为写请求包括:
当读取到所述变量为第二取值时,确定所述块设备IO请求失败,并判断所述块设备IO请求是否为写请求。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
触发文件系统索引修复操作,对所述块设备的坏块位置进行修复。
6.一种硬盘坏块信息的获取装置,其特征在于,包括:
运行单元,用于在操作系统的用户空间运行一个独立的文件系统守护线程;
建立单元,用于在所述用户空间与所述操作系统的内核空间之间建立通讯通道;
判断单元,用于当获知块设备IO请求失败后,判断所述块设备IO请求是否为写请求;
发送单元,用于若所述块设备IO请求为写请求,则由所述内核空间将所述块设备IO请求对应的块设备的坏块位置通过所述通讯通道发送至所述守护线程。
7.如权利要求6所述的装置,其特征在于,所述装置还包括:
创建单元,用于在所述用户空间创建硬盘坏块位置记录表;
更新单元,用于将所述块设备的坏块位置更新至所述硬盘坏块位置记录表。
8.如权利要求7所述的装置,其特征在于,所述更新单元具体用于:
由所述守护线程将所述块设备的坏块位置更新所述硬盘坏块位置记录表。
9.如权利要求6所述的装置,其特征在于,所述装置还包括:
初始化单元,用于在所述内核空间添加初始化为第一取值的变量;
变更单元,用于当所述块设备IO请求失败后,置所述变量为第二取值;
则所述判断单元具体用于:
当读取到所述变量为第二取值时,确定所述块设备IO请求失败,并判断所述块设备IO请求是否为写请求。
10.如权利要求6所述的装置,其特征在于,所述装置还包括:
修复单元,用于触发文件系统索引修复操作,对所述块设备的坏块位置进行修复。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510065134.6A CN104657088B (zh) | 2015-02-06 | 2015-02-06 | 一种硬盘坏块信息的获取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510065134.6A CN104657088B (zh) | 2015-02-06 | 2015-02-06 | 一种硬盘坏块信息的获取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104657088A true CN104657088A (zh) | 2015-05-27 |
CN104657088B CN104657088B (zh) | 2018-01-23 |
Family
ID=53248285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510065134.6A Active CN104657088B (zh) | 2015-02-06 | 2015-02-06 | 一种硬盘坏块信息的获取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104657088B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109445977A (zh) * | 2018-11-01 | 2019-03-08 | 新疆凯力智慧电子科技有限公司 | 一种硬盘坏块信息的获取方法及装置 |
CN109508268A (zh) * | 2018-11-13 | 2019-03-22 | 郑州云海信息技术有限公司 | 一种ise硬盘测试装置及ise硬盘扇区快速擦除功能测试方法 |
CN109614044A (zh) * | 2018-12-04 | 2019-04-12 | 浪潮电子信息产业股份有限公司 | 一种固态硬盘写错误的处理方法、装置及设备 |
CN112612418A (zh) * | 2020-12-25 | 2021-04-06 | 航天信息股份有限公司 | 一种用于大容量NandFlash坏块管理的方法及系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5189566A (en) * | 1990-03-15 | 1993-02-23 | International Business Machines Corporation | Method and apparatus for recovering data |
US20060155718A1 (en) * | 2005-01-07 | 2006-07-13 | International Business Machines Corporation | Multiple copy track stage recovery in a data storage system |
US20080082865A1 (en) * | 2006-09-29 | 2008-04-03 | Kabushiki Kaisha Toshiba | Information recording apparatus, information processing apparatus, and write control method |
US20080155316A1 (en) * | 2006-10-04 | 2008-06-26 | Sitaram Pawar | Automatic Media Error Correction In A File Server |
US7653847B1 (en) * | 2005-05-05 | 2010-01-26 | Seagate Technology Llc | Methods and structure for field flawscan in a dynamically mapped mass storage device |
CN102508724A (zh) * | 2011-10-25 | 2012-06-20 | 北京同有飞骥科技股份有限公司 | 一种基于软raid的磁盘坏块处理方法 |
CN102750213A (zh) * | 2012-06-18 | 2012-10-24 | 深圳市锐明视讯技术有限公司 | 磁盘检测、处理方法及检测、处理系统 |
CN103309775A (zh) * | 2013-07-03 | 2013-09-18 | 苏州科达科技股份有限公司 | 一种高可靠磁盘阵列的容错方法 |
CN103700387A (zh) * | 2013-09-18 | 2014-04-02 | 福建鼎恩协创电子科技有限公司 | 硬盘坏道监测修复装置及方法 |
CN104123194A (zh) * | 2014-07-16 | 2014-10-29 | 上海斐讯数据通信技术有限公司 | 内核态与用户态的通信结构及通信方法 |
-
2015
- 2015-02-06 CN CN201510065134.6A patent/CN104657088B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5189566A (en) * | 1990-03-15 | 1993-02-23 | International Business Machines Corporation | Method and apparatus for recovering data |
US20060155718A1 (en) * | 2005-01-07 | 2006-07-13 | International Business Machines Corporation | Multiple copy track stage recovery in a data storage system |
US7653847B1 (en) * | 2005-05-05 | 2010-01-26 | Seagate Technology Llc | Methods and structure for field flawscan in a dynamically mapped mass storage device |
US20080082865A1 (en) * | 2006-09-29 | 2008-04-03 | Kabushiki Kaisha Toshiba | Information recording apparatus, information processing apparatus, and write control method |
US20080155316A1 (en) * | 2006-10-04 | 2008-06-26 | Sitaram Pawar | Automatic Media Error Correction In A File Server |
CN102508724A (zh) * | 2011-10-25 | 2012-06-20 | 北京同有飞骥科技股份有限公司 | 一种基于软raid的磁盘坏块处理方法 |
CN102750213A (zh) * | 2012-06-18 | 2012-10-24 | 深圳市锐明视讯技术有限公司 | 磁盘检测、处理方法及检测、处理系统 |
CN103309775A (zh) * | 2013-07-03 | 2013-09-18 | 苏州科达科技股份有限公司 | 一种高可靠磁盘阵列的容错方法 |
CN103700387A (zh) * | 2013-09-18 | 2014-04-02 | 福建鼎恩协创电子科技有限公司 | 硬盘坏道监测修复装置及方法 |
CN104123194A (zh) * | 2014-07-16 | 2014-10-29 | 上海斐讯数据通信技术有限公司 | 内核态与用户态的通信结构及通信方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109445977A (zh) * | 2018-11-01 | 2019-03-08 | 新疆凯力智慧电子科技有限公司 | 一种硬盘坏块信息的获取方法及装置 |
CN109508268A (zh) * | 2018-11-13 | 2019-03-22 | 郑州云海信息技术有限公司 | 一种ise硬盘测试装置及ise硬盘扇区快速擦除功能测试方法 |
CN109508268B (zh) * | 2018-11-13 | 2022-02-18 | 郑州云海信息技术有限公司 | 一种ise硬盘测试装置及ise硬盘扇区快速擦除功能测试方法 |
CN109614044A (zh) * | 2018-12-04 | 2019-04-12 | 浪潮电子信息产业股份有限公司 | 一种固态硬盘写错误的处理方法、装置及设备 |
CN112612418A (zh) * | 2020-12-25 | 2021-04-06 | 航天信息股份有限公司 | 一种用于大容量NandFlash坏块管理的方法及系统 |
CN112612418B (zh) * | 2020-12-25 | 2024-03-08 | 航天信息股份有限公司 | 一种用于大容量NandFlash坏块管理的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104657088B (zh) | 2018-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11003536B2 (en) | Method, device and computer readable storage medium for writing to disk array | |
US20140032834A1 (en) | Managing A Solid State Drive ('SSD') In A Redundant Array Of Inexpensive Drives ('RAID') | |
CN105637591A (zh) | 用于nand闪速存储器的缺陷管理策略 | |
US8782428B2 (en) | Encryption device and encryption method | |
CN103218274A (zh) | 一种预防故障累加的方法和固态硬盘 | |
US11868625B2 (en) | Alert tracking in storage | |
CN104657088A (zh) | 一种硬盘坏块信息的获取方法及装置 | |
US20180024742A1 (en) | Storage media performance management | |
WO2024055611A1 (zh) | 基于固件仿真的故障现场回溯方法、设备及可读存储介质 | |
CN103593301B (zh) | 坏块管理方法及系统 | |
CN105573872A (zh) | 数据存储系统的硬盘维护方法和装置 | |
US20130151886A1 (en) | Computing device and method for switching physical links of a sas expander of the computing device | |
US20100325373A1 (en) | Duplexing Apparatus and Duplexing Control Method | |
US9569329B2 (en) | Cache control device, control method therefor, storage apparatus, and storage medium | |
CN112825098A (zh) | 数据保护方法、装置、计算设备及存储介质 | |
US10586607B2 (en) | Method and apparatus for implementing disaggregated memory platters | |
US20190042379A1 (en) | Failure detection and data recovery in a storage system | |
US20120215966A1 (en) | Disk array unit and control method thereof | |
CN114637708A (zh) | 用于访问ssd的至少一个存储器区域的方法和设备 | |
CN111158580B (zh) | 关于容错式磁盘阵列的映像信息管理的方法与装置 | |
CN109445977A (zh) | 一种硬盘坏块信息的获取方法及装置 | |
US20160147458A1 (en) | Computing system with heterogeneous storage and method of operation thereof | |
KR102659829B1 (ko) | Raid 동작을 제어하는 방법 및 시스템 | |
JP2012048608A (ja) | 外部記憶装置 | |
US11892920B2 (en) | Method, electronic device, and program product for failure handling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: Nanshan District Xueyuan Road in Shenzhen city of Guangdong province 518000 No. 1001 Nanshan Chi Park B1 building 22 floor Applicant after: STREAMAX TECHNOLOGY CO., LTD. Address before: Nanshan District Xueyuan Road in Shenzhen city of Guangdong province 518000 No. 1001 Nanshan Chi Park B1 building 22 floor Applicant before: Shenzhen Streaming Video Technology Co., Ltd. |
|
COR | Change of bibliographic data | ||
GR01 | Patent grant | ||
GR01 | Patent grant |