[发明专利]一种硬盘读取方法及装置有效
申请号: | 201510044897.2 | 申请日: | 2015-01-28 |
公开(公告)号: | CN104572323B | 公开(公告)日: | 2017-12-12 |
发明(设计)人: | 黄凯明;刘文涛 | 申请(专利权)人: | 深圳市锐明技术股份有限公司 |
主分类号: | G06F11/00 | 分类号: | G06F11/00;G06F3/06 |
代理公司: | 深圳中一专利商标事务所44237 | 代理人: | 张全文 |
地址: | 518000 广东省深圳市南*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 硬盘 读取 方法 装置 | ||
技术领域
本发明涉及电子信息技术领域,特别涉及一种硬盘读取方法及装置。
背景技术
应用程序通过操作系统(如Linux和Windows等)提供的通用读操作系统调用,读取硬盘数据。
通用SCSI(Small Computer System Interface,小型计算机系统接口)驱动层经由更底层的设备驱动和硬盘打交道,从硬盘获取数据。
在系统调用层和通用SCSI驱动层之间以及通用SCSI驱动层和硬盘之间还有其他操作系统中间层,与系统调用层和通用SCSI驱动层一起构成操作系统完整的硬盘IO(Input/Output,输入/输出)处理逻辑。这些中间层与本发明专利无关,可简单视为在系统调用层和通用SCSI驱动层之间传递IO请求和数据,在此不作累述。
当读操作遇到硬盘坏块,通用SCSI驱动层得到读操作失败的结果后,会对硬盘执行重置操作,然后再重新执行读操作。在Linux操作系统中,对硬盘的重置操作重复尝试次数由内核常量SD_MAX_RETRIES定义,缺省值为5。
通用SCSI驱动层反复重试SD_MAX_RETRIES次后,失败的结果最终传递到系统调用层。系统调用层得到失败的结果后,会认为“可能是暂时的故障”,并重新尝试再执行一次读操作。
通用SCSI驱动层收到重试的第二次读操作命令后,再次读硬盘,得到失败的结果后,又重复尝试SD_MAX_RETRIES次。
这样“读”系统调用执行过程,遇到硬盘坏块,总共会导致12次的SCSI驱动读硬盘操作失败,以及12次的重置硬盘操作。硬盘坏块读操作需耗时1秒多才返回失败结果,重置硬盘耗时不少于1.5秒。12次的重试操作总共耗时超过40秒。
在视频监控领域,应用程序需要及时把每时每刻都在不断产生的监控视频数据保存到存储设备(如硬盘)。读操作阻塞40多秒,会导致在这段时间内产生的监控视频数据无法及时写入硬盘,积压在用户空间的缓存中,并最终被更新的监控视频数据覆盖,造成严重的监控录像丢失事故。
发明内容
本发明提供了一种硬盘读取方法及装置,旨在解决读硬盘操作遇到硬盘坏块时硬盘长时间不可访问的问题。
一方面,本发明提供了一种硬盘读取方法,所述方法包括:
判断硬盘中的待读取内容是否读取至操作系统缓冲区中的目标缓存页;
若所述硬盘中的待读取内容读取至所述操作系统缓冲区中的目标缓存页,则设置页状态参数为第一布尔值;
判断所述目标缓存页的内容是否与所述硬盘中待读取内容一致;
若所述目标缓存页的内容与所述硬盘中待读取内容不一致,则将所述目标缓存页的最新标示位设置为第二布尔值;
当页状态参数为第一布尔值且所述最新标示位设置为第二布尔值时,返回读取硬盘失败信息。
第二方面,本发明提供了一种硬盘读取装置,所述装置包括:
第一判断模块,用于判断硬盘中的待读取内容是否读取至操作系统缓冲区中的目标缓存页;
第一设置模块,用于若所述硬盘中的待读取内容读取至所述操作系统缓冲区中的目标缓存页,则设置页状态参数为第一布尔值;
第二判断模块,用于判断所述目标缓存页的内容是否与所述硬盘中待读取内容一致;
第二设置模块,用于若所述目标缓存页的内容与所述硬盘中待读取内容不一致,则将所述目标缓存页的最新标示位设置为第二布尔值;
返回模块,用于当页状态参数为第一布尔值且所述最新标示位设置为第二布尔值时,返回读取硬盘失败信息。
在本发明中,由于首先判断硬盘中的待读取内容是否读取至操作系统缓冲区中的目标缓存页,若是,则设置页状态参数为第一布尔值,再判断目标缓存页的内容是否与硬盘中待读取内容一致,若目标缓存页的内容与硬盘中待读取内容不一致,则将目标缓存页的最新标示位设置为第二布尔值,最后当页状态参数为第一布尔值且最新标示位设置为第二布尔值时,返回读取硬盘失败信息,因此,缩短了硬盘坏块故障处理流程,提高了存在坏块的硬盘的可用性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的硬盘读取方法一种流程图;
图2为本发明实施例一提供的硬盘读取方法另一种流程图;
图3为本发明实施例二提供的硬盘读取装置一种结构示意图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市锐明技术股份有限公司,未经深圳市锐明技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510044897.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种电磁防尘柱塞泵
- 下一篇:存储空间分配方法、存储空间分配装置和终端