本发明专利技术公开了一种硬盘状态监测方法,利用应用程序在对硬盘的读取操作过程中操作系统在内存中自动记录的硬盘执行状态信息,对硬盘状态进行监测,首先在内存中读取操作系统记录的硬盘执行状态信息,根据该执行状态信息判断硬盘工作状态,再根据该工作状态发出提示信息,从而节约了硬件成本和执行效率。
【技术实现步骤摘要】
本专利技术涉及一种计算机硬件监测方法,尤其涉及一种。
技术介绍
硬盘(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_bufferSense_buffer=SCpnt->sense_buffer步骤520从sense_buffer中获取sense_classsense_class=(sense_buffer>>4)&0x07步骤530从sense_buffer中获取sense_codecode=sense_buffer&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),同时本文档来自技高网...
【技术保护点】
一种硬盘状态监测方法,利用应用程序在对硬盘的读取操作过程中操作系统在内存中自动记录的硬盘执行状态信息,对硬盘状态进行监测,该方法包括如下步骤:在内存中读取操作系统记录的硬盘执行状态信息;根据该执行状态信息判断硬盘工作状态; 根据该工作状态发出提示信息。
【技术特征摘要】
1.一种硬盘状态监测方法,利用应用程序在对硬盘的读取操作过程中操作系统在内存中自动记录的硬盘执行状态信息,对硬盘状态进行监测,该方法包括如下步骤在内存中读取操作系统记录的硬盘执行状态信息;根据该执行状态信息判断硬盘工作状态;根据该工作状态发出提示信息。2.如权利要求1所述的硬盘状态监测方法,其特征在于所述硬盘执行状态信息的记录过程包括如下步骤启动应用程序,同时接收该应用程序发出的硬盘读写指令;将该读写指令发送至该硬盘;该硬盘接收并执行该读写指令,同时返回执行状态信息;及存储该执行状态信息。3.如权利要求1所述的硬盘状态监测方法,其特征在于所述发出提示信息的步骤包括点亮指示灯、驱动扬声器、弹出消息、发送电子邮件、发送网络消息,以及将出错信息记入系统日志。4.如权利要求1所述的硬盘状态监测方法,其特征在于所述读取操作系统记录的硬盘执行状态信息的步...
【专利技术属性】
技术研发人员:刘文涵,宋建福,王兴家,
申请(专利权)人:英业达股份有限公司,
类型:发明
国别省市:71[中国|台湾]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。