CN1707683A - 硬盘状态监测方法 - Google Patents
硬盘状态监测方法 Download PDFInfo
- Publication number
- CN1707683A CN1707683A CN 200410049352 CN200410049352A CN1707683A CN 1707683 A CN1707683 A CN 1707683A CN 200410049352 CN200410049352 CN 200410049352 CN 200410049352 A CN200410049352 A CN 200410049352A CN 1707683 A CN1707683 A CN 1707683A
- Authority
- CN
- China
- Prior art keywords
- disk
- hard
- hard disk
- state information
- execution state
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种硬盘状态监测方法,利用应用程序在对硬盘的读取操作过程中操作系统在内存中自动记录的硬盘执行状态信息,对硬盘状态进行监测,首先在内存中读取操作系统记录的硬盘执行状态信息,根据该执行状态信息判断硬盘工作状态,再根据该工作状态发出提示信息,从而节约了硬件成本和执行效率。
Description
技术领域
本发明涉及一种计算机硬件监测方法,尤其涉及一种硬盘状态监测方法。
背景技术
硬盘(Hard Disk)是计算机中一个非常重要的配件,它是存储数据最主要的场所。由于硬盘的使用寿命有限,工作时间久了就很容易出现各种问题,轻则可能出现逻辑错误,严重的将出现坏道,甚至崩溃导致数据丢失。硬盘的损坏不仅仅会带来经济上的损失,数据的丢失则可能产生更大的影响。为了避免硬盘突然崩溃而丢失数据,需要对硬盘的状态进行及时的监测,并及时分析、预报硬盘可能发生的各种问题。
已知技术对硬盘的监测的方法大致有两种,一种是通过软件定时的向硬盘发送一些检测指令,通过指令的执行状态信息判断硬盘的好坏。这种方法需要主动执行检测命令,这些检测命令会占用硬盘设备和CPU的处理时间,增加系统负担,影响系统性能。另一种方法使用专用的硬设备来检测硬盘的好坏,如SAF-TE(SCSI Accessed Fault-Tolerant Enclosure)技术,这种方法需要额外硬设备,必然增加系统的成本。
发明内容
有鉴于此,本发明为解决上述问题而提出一种硬盘状态监测方法,主要的目的在于:在不增加额外的硬设备并且不增加系统负担的同时,实现对硬盘数据的及时检测,并及时预报硬盘可能发生的各种问题,从而节约硬件成本并提高执行效率。
所以为实现上述目的,本发明提供一种硬盘状态监测方法,利用应用程序在对硬盘的读取操作过程中操作系统在内存中自动记录的硬盘执行状态信息,来对硬盘状态进行监测,首先在内存中读取操作系统记录的硬盘执行状态信息,根据该执行状态信息判断硬盘工作状态,再根据该工作状态发出提示信息。
根据本发明提供的硬盘状态监测方法,通过监测操作系统在内存中所记录的硬盘执行状态信息,判断操作系统对硬盘访问指令是否能正常执行,在操作系统访问到有错误的硬盘时,立刻能监测到硬盘的出错信息,进而通知系统管理员进行处理。本方法不需要专用的硬设备,也不需要执行额外的硬盘访问。仅仅需要定时获取操作系统对硬盘的访问结果,极大限度的节约了硬件成本和执行效率。
有关本发明的详细内容及技术,兹就配合附图说明如下:
附图说明
图1是本发明所提供的硬盘状态监测方法的总体流程图;
图2是本发明所提供的硬盘状态监测方法的监测示意图;
图3是本发明实施例的状态监测流程图;
图4是本发明实施例的状态报警流程图;以及
图5是本发明实施例状态信息分析的流程图。
其中,附图标记说明如下:
步骤110在内存中读取操作系统记录的硬盘执行状态信息
步骤120根据该执行状态信息判断硬盘工作状态
步骤130根据该工作状态发出提示信息
100 状态监测模块 200 状态报警模块
210 应用程序 220 操作系统
230 硬盘
步骤310加载监测模块
步骤320访问SCSI设备数据结构
步骤330访问该设备的SCSI命令的数据结构
步骤340访问SCSI命令的sense buffer信息
步骤350调用报警模块
步骤360点亮状态指示灯
步骤370记入系统日志
步骤380硬盘正常
步骤410获取出错的硬盘
步骤420选择报警方式,进行报警
步骤510获取scsi命令执行状态的sense_buffer:Sense_buffer=SCpnt->sense_buffer
步骤520从sense_buffer中获取sense_class:sense_class=(sense_buffer[0]>>4)&0x07
步骤530从sense_buffer中获取sense_code:
code=sense_buffer[0]&0xf
步骤540是否有硬盘出错信息(sense_class是否等于7)?
步骤550从sense_buffer中获取sense_key
步骤560硬盘出错
步骤570硬盘正常
具体实施方式
本发明为一种硬盘状态监测方法,通过查找操作系统在内存记录的硬盘执行状态信息,实现操作系统对硬盘的访问状态的实时监控,当在操作系统访问到有错误的硬盘时,实时获取硬盘出错信息,进而通知系统管理员进行处理。
首先,请参见图1,该图是本发明所提供的硬盘状态监测方法的总体流程图,首先在内存中读取操作系统记录的硬盘执行状态信息(步骤110),再根据该执行状态信息判断硬盘工作状态(步骤120),最后根掘该工作状态发出提示信息(步骤130)。
根据本发明的硬盘状态监测方法,可通过监测内存中的硬盘执行状态信息,实现对硬盘工作状态的实时监控。请参见图2,经过系统初始化后,启动应用程序,应用程序需要读些硬盘中的数据,应用程序对硬盘的读写操作通常表现为对硬盘上文件的读写操作。应用程序210在读写文件时,会向操作系统220发出读写请求,通常是通过read()、write()调用来请求操作系统进行处理。操作系统在收到读写请求后,通过文件系统和设备驱动程序把对文件的读写请求转化成对指定硬盘230读写指令,并把该指令发送给硬盘230。硬盘230接收到读写指令后会执行该指令,并把指令的返回结果发送给操作系统220。状态监测模块100提取执行状态信息进行检测,如果指令正确执行,返回结果中会包含指令正确执行的标志;如果硬盘有损坏,返回结果中会包含指令执行出错的标志。操作系统在收到硬盘返同的执行状态信息后,进行判断:如果指令正确执行,会把数据传给用户程序;如果指令执行出错,会作进一步的处理。如重试指令,或进一步获取出错原因。
状态监测模块100以一定的周期定时的访问操作系统硬盘指令的执行状态信息,通过该结果判断硬盘是否出错。用户可以设定访问周期,先创建一个定时器,系统实施的判断访问条件,用来周期性的进行状态检测。定时器启动后,监测模块进入睡眠状态,等待定时器到时,读取操作系统硬盘读写指令的执行状态信息。
然后判断硬盘访问指令的执行状态信息中是否含有出错标志,如果有出错标志,先获取出错的硬盘具体是哪一块硬盘,然后状态报警模块200选择报警方式,进行硬盘出错报警,发出提示信息,进一步进行处理。具体的提示方式可以采用弹出消息、电子邮件和网络消息来发出,点亮指示灯、驱动扬声器、以及将出错信息记入系统日志等。然后进入休眠状态,等待定时器到时再进行下一轮检测。如果硬盘访问指令的执行结果(即执行状态信息)中没有出错信息,不作处理,直接进入休眠状态。
下面以存储服务器为例对本发明进行详细说明,存储服务器配备SCSI(Small Computer System Interface小型计算机系统接口)驱动器,安装四块SCSI硬盘。服务器面板上有四个硬盘出错的状态指示灯,分别指示四块硬盘是否出错。该服务器安装的操作系统是linux,为了监测硬盘出错,本发明将状态监测模块设计成Linux内核可加载模块,请参见图3,在Linux操作系统启动后状态监测模块加载到操作系统中(步骤310),然后访问SCSI设备数据结构(步骤320)以及该设备的SCSI命令数据结构(步骤330),并且定时的访问Linux内核中各SCSI设备的SCSI命令执行状态信息(步骤340),即SCSI标准中的sense buffer,在linux内核中的数据结构为Scsi_Cmnd->sense_buffer。其中SCSI设备在linux内核中的数据结构为structScsi_Device,SCSI命令在linux内核中数据结构为struct Scsi_Cmnd。通过分析执行状态信息判断硬盘是否出错,如果出错,调用状态报警模块对该SCSI设备进行处理(步骤350)。状态报警模块的报警方式为点亮面板上硬盘出错指示灯(步骤360),同时记录系统日志(步骤370)。如果没有出错,则表示硬盘工作正常(步骤380)。
请参见图4,状态报警模块在获取硬盘出错信息(步骤410)后,选择报警方式,进行报警(步骤420),点亮面板上相应硬盘的状态指示灯,然后把出错信息记入系统日志。在这个报警设置中还可以选择通过弹出消息、电子邮件和网络消息来发出,驱动扬声器等。
请参见图5,该图是本发明实施例状态信息分析的流程图。首先获取scsi命令执行状态的sense_buffer:Sense_buffer=SCpnt->sense_buffer(步骤510),然后从sense_buffer中获取sense_class:sense_class=(sense_buffer[0]>>4)&0x07(步骤520),再从sense_buffer中获取sense_code:code=sense_buffer[0]&0xf(步骤530),判断是否有硬盘出错信息(sense_class是否等于7)(步骤540),如有硬盘出错则从sense_buffer中获取sense_key(步骤550),显示硬盘出错(步骤560),否则显示硬盘正常(步骤570)。
虽然本发明以前述的较佳实施例揭示如上,然而其并非用以限定本发明,故本领域的普通技术人员者,在不脱离本发明的精神和范围内,可作一些的更动与润饰。
Claims (10)
1、一种硬盘状态监测方法,利用应用程序在对硬盘的读取操作过程中操作系统在内存中自动记录的硬盘执行状态信息,对硬盘状态进行监测,该方法包括如下步骤:
在内存中读取操作系统记录的硬盘执行状态信息;
根据该执行状态信息判断硬盘工作状态;
根据该工作状态发出提示信息。
2、如权利要求1所述的硬盘状态监测方法,其特征在于所述硬盘执行状态信息的记录过程包括如下步骤:
启动应用程序,同时接收该应用程序发出的硬盘读写指令;
将该读写指令发送至该硬盘;
该硬盘接收并执行该读写指令,同时返回执行状态信息;及
存储该执行状态信息。
3、如权利要求1所述的硬盘状态监测方法,其特征在于所述发出提示信息的步骤包括:点亮指示灯、驱动扬声器、弹出消息、发送电子邮件、发送网络消息,以及将出错信息记入系统日志。
4、如权利要求1所述的硬盘状态监测方法,其特征在于所述读取操作系统记录的硬盘执行状态信息的步骤为定时读取。
5、如权利要求1所述的硬盘状态监测方法,其特征在于所述根据该执行状态信息判断硬盘工作状态的步骤,为提取该执行状态信息的出错标志,根据该出错标志判断硬盘的工作状态。
6、如权利要求2所述的硬盘状态监测方法,其特征在于所述应用程序发出的硬盘读写指令为硬盘文件的读写指令。
7、如权利要求2所述的硬盘状态监测方法,其特征在于所述将该读写指令发送至该硬盘的步骤,还包括该硬盘文件的读写指令转换为硬盘的读写指令的步骤。
8、如权利要求2所述的硬盘状态监测方法,其特征在于还包括根据该执行状态信息,进行相应处理的步骤,包括:
如果指令执行正确,将数据传输至该应用程序端;及
如果该执行出错,则进行出错处理。
9、如权利要求8所述的硬盘状态监测方法,其特征在于所述出错处理为重新执行指令。
10、如权利要求8所述的硬盘状态监测方法,其特征在于所述出错处理为获取出错原因。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410049352 CN1707683A (zh) | 2004-06-10 | 2004-06-10 | 硬盘状态监测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410049352 CN1707683A (zh) | 2004-06-10 | 2004-06-10 | 硬盘状态监测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1707683A true CN1707683A (zh) | 2005-12-14 |
Family
ID=35581503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200410049352 Pending CN1707683A (zh) | 2004-06-10 | 2004-06-10 | 硬盘状态监测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1707683A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104484251A (zh) * | 2014-12-11 | 2015-04-01 | 华为技术有限公司 | 一种硬盘故障的处理方法及装置 |
CN106326075A (zh) * | 2016-11-25 | 2017-01-11 | 湖南长城银河科技有限公司 | 一种电子设备、操作系统及其状态监控平台及方法 |
CN108680872A (zh) * | 2018-04-02 | 2018-10-19 | 郑州云海信息技术有限公司 | 一种适用于nvme硬盘背板状态灯的测试方法 |
CN109144833A (zh) * | 2017-06-27 | 2019-01-04 | 中兴通讯股份有限公司 | 一种硬盘分析方法及装置 |
-
2004
- 2004-06-10 CN CN 200410049352 patent/CN1707683A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104484251A (zh) * | 2014-12-11 | 2015-04-01 | 华为技术有限公司 | 一种硬盘故障的处理方法及装置 |
CN104484251B (zh) * | 2014-12-11 | 2018-10-02 | 华为技术有限公司 | 一种硬盘故障的处理方法及装置 |
CN106326075A (zh) * | 2016-11-25 | 2017-01-11 | 湖南长城银河科技有限公司 | 一种电子设备、操作系统及其状态监控平台及方法 |
CN109144833A (zh) * | 2017-06-27 | 2019-01-04 | 中兴通讯股份有限公司 | 一种硬盘分析方法及装置 |
CN108680872A (zh) * | 2018-04-02 | 2018-10-19 | 郑州云海信息技术有限公司 | 一种适用于nvme硬盘背板状态灯的测试方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1277211C (zh) | 一种计算机操作系统的修复方法 | |
US6493656B1 (en) | Drive error logging | |
US20030236766A1 (en) | Identifying occurrences of selected events in a system | |
CN1845120A (zh) | 一种恶意代码自动分析系统及方法 | |
WO2008083892A2 (en) | Code path tracking | |
CN1896963A (zh) | 硬盘装置损坏监测方法及系统 | |
CN1773470A (zh) | 库系统、虚拟库装置、缓存器恢复方法及可机读记录介质 | |
US20070005542A1 (en) | Apparatus, system, and method for regulating error reporting | |
CN1920793A (zh) | 在不同的语言环境下实现测试脚本回放的装置和方法 | |
CN103034577B (zh) | 一种定位关机慢的方法及装置 | |
US20080168226A1 (en) | Correction method for reading data of disk array system | |
US10691569B2 (en) | System and method for testing a data storage device | |
CN1551202A (zh) | 自修复方法和存储系统 | |
CN1889030A (zh) | 模拟硬盘的装置及其方法 | |
CN101034369A (zh) | 一种软件抗干扰方法及装置 | |
CN1707683A (zh) | 硬盘状态监测方法 | |
US20050289333A1 (en) | Method to provide system state information in a platform agnostic manner | |
CN1716428A (zh) | 硬盘检测装置及方法 | |
CN1317650C (zh) | 基于硬盘保护空间自动恢复bios的方法 | |
CN1920774A (zh) | 驱动程序自动安装方法以及系统 | |
CN102467438A (zh) | 利用基板管理控制器取得储存装置故障信号的方法 | |
CN1959646A (zh) | 检测硬盘安装位置正确性的系统及方法 | |
CN1896967A (zh) | 利用usb随身碟启动作业系统及进行测试的方法 | |
CN1282922C (zh) | 使用存储卡更新固件的方法与装置 | |
CN1470985A (zh) | 应用于外围装置的错误回报及修正方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |