被动式远程判断系统状态的方法

文档序号:6376032阅读:264来源:国知局
专利名称:被动式远程判断系统状态的方法
技术领域
本发明涉及一种远程判断系统状态的方法,特别是涉及一种被动式远程判断系统状态的方法,属于计算机网络技术领域。
背景技术
随着计算机技术的不断进步与发展,计算机在企业内的应用逐渐普及,构成规模不等的企业计算机网络,这时计算机的集中式网络管理就变得尤为重要。特别是对一些企事业单位,出于对工作状态和效率的监控和管理,提出了具体的监控需求,即希望能够实时监控网络内所有计算机的状态和当前正在运行的计算机程序。所以在大部分的集中式的计算机网络管理系统中,实时监控所有计算机的状态是一项必备的功能,但是它们大都是基于软件的解决方案,只能监控到有限的几种计算机状态,如操作系统运行正常、死机和关机等。目前还没有一家厂商的软件可以实现本文所述的完全的计算机状态管理。
基于标准的ASF(Alert Standard Format报警标准格式)规范DMTF是在2001年提出的,它适用于针对操作系统在线和操作系统不在线情况下的计算机远程诊断,它适用于笔记本、台式机、工作站或服务器。ASF技术的‘发送’(报警)和‘接收’(远程控制)功能都是基于硬件的,依靠网络的系统解决方案,这使它真正具有CPU和操作系统的独立性,提供到控制台的更稳定连接。虽然ASF可以对计算机的状态进行判断,但它不能实现操作系统上层具体状态的判断,如操作系统是部分服务挂起还是操作系统全部挂起(俗称“当机”、“死机”),同时也不能区分计算机断电还是网络未通。

发明内容
本发明基于ASF的具体实现技术,结合上层软件的配合,提出一种被动式远程判断系统状态的方法,它可以实现的状态判断有远程计算机正常运行,远程计算机部分服务不能正常运行、远程计算机操作系统挂起、远程计算机操作系统未在线、远程计算机休眠、远程计算机关机但上电、远程计算机断电、远程计算机网络未通等,同时在远程计算机正常运行的情况下,还可以返回当前计算机正常运行的进程。这里的计算机包括PC机、服务器和笔记本式电脑。
本发明所述被动式远程判断系统状态的方法,包括由监控端和被监控端构成的监控系统,两者之间通过以太网相连,所述方法是这样实现的步骤一在被监控端的操作系统之上运行监控代理程序;步骤二、监控代理程序响应监控端的监控命令,完成相应的配置;步骤三、基于ASF规范中定义的告警格式,在心跳信息包中增加对EventData字段的定义,以EventData 1/2表示系统的状态;步骤四、被监控端网卡上的控制芯片定时地判断系统状态,并将当前系统的状态信息写进扩展心跳信息包的EventData字段上;步骤五、被监控端网卡上的控制芯片定时将扩展心跳信息包发送到监控端;步骤六、监控端实时接收被监控端发来的扩展心跳信息包,并对扩展心跳信息的状态位进行解释并向用户显示。
如上所述的方法中,所述步骤二中,所述监控代理程序完成相应的配置,包括(1)响应监控端的监控命令,如获取运行在操作系统上的软件系统信息,并将这些信息根据监控端的要求返回,同时以Pong命令响应监控端发来的Ping命令;(2)向监控端发送一些软硬件告警信息;(3)将监控端的IP地址写入被监控端网卡的EEPROM里,被监控端的网卡根据这个IP地址,定时向监控端发送心跳信息;(4)定时向被监控端网卡上的控制芯片发送心跳信息。
如上所述的方法中,所述步骤三中,EventData1的数值范围是00h-FFh,EventData2的数值范围是00h-FFh。
如上所述的方法中,所述被监控端网卡上的控制芯片定时地判断系统状态,具体包括被监控端的BIOS通过ACPI表记录计算机当前的系统状态,这些状态包括S0/G0-OS working,S1,S2,S3,S5/G2,Sleeping。
如上所述的方法中,被监控端网卡上的控制芯片通过SMBus总线与被监控端的BIOS通信,定时获取相关状态信息。
如上所述的方法中,在被监控端的网卡上加一个辅助电源,当计算机断电时,网卡上的控制芯片由该辅助电源继续工作,当它通过SMBus总线不能从BIOS上获取状态信息时,就判断计算机断电。
如上所述的方法中,所述步骤五中,如果在一段时间内收不到被监控端发来的心跳信息,则认为出了网络故障。
如上所述的方法中,当监控端根据扩展心跳信息判断出操作系统的状态为挂起时,则对被监控端进行TCP/IP的Ping操作,如果收到被监控端的Pong响应,则认为操作系统部分挂起,否则认为操作系统全部挂起。
如上所述的方法中,当监控端判断出被监控端的系统状态是“操作系统正常运行”时,如果需要,则向被监控端发送获取系统当前运行进程的名称命令,并将返回结果向用户显示。
本发明是基于ASF规范的一种扩展,在ASF规范中,只规定了网卡上的控制芯片(ASD)定时向监控端发送心跳信息,当监控端在一段时间内收不到心跳则认为被监控端断电或则是网络不通,而对系统的状态判断需要发送单独的获取系统状态命令到被监控端。本发明在这个心跳信息中又增加了被监控端的状态信息,这样监控端就不用通过主动的获取方式(即Ping)来获取和判断系统状态信息,而是通过被动的接收被监控端发来的心跳信息来判断被监控端的系统状态,仅在报告操作系统挂起时,再进行一次TCP/IP的Ping操作来作进一步的判断,这样,由于状态判断大部分是网络单向通信,相比由监控端向被监控端发送命令获取系统状态并作判断的双向网络通信,可减少网络的流量和监控端系统的开销,所以很有应用前景。


图1是运行本发明所述方法的监控系统的结构示意图;图2是本发明所述方法在监控端的基本流程图;图3是本发明所述方法在被监控端的基本流程图。
具体实施例方式
本发明定义了一种ASF规范的扩展方法,减少了判断远程系统状态所需的网络通信资源和操作系统资源。这种方法可以实现的状态判断有远程计算机正常运行,远程计算机部分服务不能正常运行、远程计算机操作系统挂起、远程计算机操作系统未在线、远程计算机休眠、远程计算机关机但上电、远程计算机断电、远程计算机网络未通等,同时在远程计算机正常运行的情况下,还可以返回当前计算机正常运行的进程。这样就提供了一种诊断远程计算机监控状态的完全判断方法。
在大多数对状态的判断都是监控端主动到被监控端获取并判断,而本发明下面将要介绍的方法是通过被监控端向监控端定时发送状态信息,也就是监控端定时被动的接收信息,这样就会减少了近一半的网络流量。
以下结合附图和具体的实施例对本发明做进一步的详细说明。
图1给出了运行本发明所述方法的监控系统的结构示意图。从图1可以看出,整个监控系统包括监控端和被监控端,两者之间通过以太网相连。
被监控端运行在被监控的计算机上,收集计算机上的信息,响应监控端的命令,并将收集到的信息传到监控端;当被监控端出现告警时或者断电时,将告警信息发送到监控端。它的实现又分四大部分,结合图3给出的被监控端的工作过程。
1)运行在被监控计算机操作系统之上的监控代理,它的主要功能是响应监控端的监控命令,如获取运行在操作系统上的软件信息,并将这些信息根据监控端的要求返回,根据监控端的命令监控各I/O端口的输入,同时以Pong命令响应监控端发来的Ping命令。
向监控端发送监控端定义的告警信息,如添加一块硬盘。
定时向被监控计算机上的网卡上的控制芯片发送心跳信息。
将监控端的IP地址写入网卡上的EEPROM里。
2)网卡驱动程序;3)具有ASF功能的网卡及其上的控制芯片;4)网卡的EEPROM,它的主要功能是存储上层监控代理对网卡的配置,如监控端的IP地址、心跳发送的时间间隔等。同时它还要完成基本的网卡EEPROM所要完成的功能。
监控端通过向被监控端发送命令,获取被监控计算机上的信息同时接收被监控端发来的告警信息和心跳信息,分析处理后向用户输出和显示。
本发明中,“扩展心跳信息”是本发明的重点,它是指在ASF中规定的心跳信息包格式上添加4至8位,这添加的几位专门用来表示16至256状态信息。具体的说明如下。
ASF规范中定义的告警格式为

心跳(HeartBeat)属于告警格式中的一种,原有的HeartBeat的EventData字段为空,在ASF的规范中定义如下

在本发明中,增加对EventData字段的定义EventData 1/2表示system stateEventData1的数值范围是00h-FFhEventData2的数值范围是00h-FFh下面举例说明状态数据端的一种定义方法


本发明中,所述被监控端网卡上的控制芯片定时地判断系统状态,具体做法是被监控端的BIOS通过ACPI表记录计算机当前的系统状态,这些状态包括S0/G0-OS working,S1,S2,S3,S5/G2,Sleeping。被监控端网卡上的控制芯片通过SMBus总线与被监控端的BIOS通信,从BIOS中定时获取相关状态信息。
本发明对计算机断电状态是这样判断的,当计算机断电时,网卡还能依赖这个辅助电源继续运行,例如网卡继续向监控端发送心跳信息、网卡上的控制芯片继续进行状态判断和其他一些工作,这时计算机其它部件停止工作。所以,当计算机断电时,网卡上的控制芯片通过SMBus总线不能从BIOS上获取状态信息时,就判断为计算机断电。这个状态,将写入心跳信息发送到监控端。
如果在一段时间内收不到被监控端发来的心跳信息,则认为出了网络故障。
当监控端根据扩展心跳信息判断出操作系统的状态为挂起时,则对被监控端进行TCP/IP的Ping操作,如果收到被监控端的Pong响应,则认为操作系统部分挂起,否则认为操作系统全部挂起。
当监控端判断出被监控端的系统状态是“操作系统正常运行”时,如果需要,则向被监控端发送获取系统当前运行进程的名称命令,并将返回结果向用户显示。
图2中给出了监控端的工作流程,监控端设定检查被监控端发来心跳信息的时间间隔,如果在给定时间隔内没有收到心跳信息,则认为网络故障,如果收到心跳信息,则根据心跳信息中所含的状态信息位,解析被监控端的系统信息。从状态位和一些被监控端发来的软硬件告警信息中判断当前状态是操作系统正常运行,如果正常运行,则向被监控端获取操作系统当前正在运行的进程信息,最终向终端用户显示系统状态的完整信息。
最后所应说明的是以上实施例仅用以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.一种被动式远程判断系统状态的方法,包括由监控端和被监控端构成的监控系统,两者之间通过以太网相连,其特征在于步骤一在被监控端的操作系统之上运行监控代理程序;步骤二、监控代理程序响应监控端的监控命令,完成相应的配置;步骤三、基于ASF规范中定义的告警格式,在心跳信息包中增加对EventData字段的定义,以EventData 1/2表示系统的状态;步骤四、被监控端网卡上的控制芯片定时地判断系统状态,并将当前系统的状态信息写进扩展心跳信息包的EventData字段上;步骤五、被监控端网卡上的控制芯片定时将扩展心跳信息包发送到监控端;步骤六、监控端实时接收被监控端发来的扩展心跳信息包,并对扩展心跳信息的状态位进行解释并向用户显示。
2.根据权利要求1所述的被动式远程判断系统状态的方法,其特征在于,所述步骤二中,所述监控代理程序完成相应的配置,包括(1)响应监控端的监控命令,如获取运行在操作系统上的软件系统信息,并将这些信息根据监控端的要求返回,同时以Pong命令响应监控端发来的Ping命令;(2)向监控端发送一些软硬件告警信息;(3)将监控端的IP地址写入被监控端网卡的EEPROM里,被监控端的网卡根据这个IP地址,定时向监控端发送心跳信息。
3.根据权利要求1所述的被动式远程判断系统状态的方法,其特征在于,所述步骤三中,EventDatal的数值范围是00h-FFh,EventData2的数值范围是00h-FFh。
4.根据权利要求1所述的被动式远程判断系统状态的方法,其特征在于,所述被监控端网卡上的控制芯片,通过读取ACPI表所记录的计算机当前的系统状态信息,定时地判断系统状态,所述系统状态具体包括S0/G0-OS working,S1,S2,S3,S5/G2,Sleeping。
5.根据权利要求1所述的被动式远程判断系统状态的方法,其特征在于,被监控端网卡上的控制芯片通过SMBus总线与被监控端的BIOS通信,定时获取相关状态信息。
6.根据权利要求1所述的被动式远程判断系统状态的方法,其特征在于,在被监控端的网卡上加一个辅助电源,当计算机断电时,网卡依赖所述辅助电源继续运行,当网卡上的控制芯片通过SMBus总线不能从BIOS上获取状态信息时,就判断为计算机断电,网卡上的控制芯片将该断电状态写入心跳信息包并发送到监控端。
7.根据权利要求1所述的被动式远程判断系统状态的方法,其特征在于,所述步骤五中,如果在一段时间内收不到被监控端发来的心跳信息,则认为出了网络故障。
8.根据权利要求1所述的被动式远程判断系统状态的方法,其特征在于,当监控端根据扩展心跳信息判断出操作系统的状态为挂起时,则对被监控端进行TCP/IP的Ping操作,如果收到被监控端的Pong响应,则认为操作系统部分挂起,否则认为操作系统全部挂起。
9.根据权利要求1所述的被动式远程判断系统状态的方法,其特征在于,当监控端判断出被监控端的系统状态是“操作系统正常运行”时,如果需要,则向被监控端发送获取系统当前运行进程的名称命令,并将返回结果向用户显示。
全文摘要
本发明公开了一种被动式远程判断系统状态的方法,包括在被监控端的操作系统之上运行监控代理程序;监控代理程序响应监控端的监控命令,完成相应的配置;基于ASF规范中定义的告警格式,在心跳信息包中增加对EventData字段的定义;被监控端网卡上的控制芯片定时地判断系统状态,并将当前系统的状态信息写进扩展心跳信息包的相应字段上;被监控端网卡上的控制芯片定时将扩展心跳信息包发送到监控端;监控端实时接收被监控端发来的扩展心跳信息包,并对扩展心跳信息的状态位进行解释并向用户显示。由于本发明对状态判断大部分是网络单向通信,相比由监控端向被监控端发送命令获取系统状态的双向网络通信,可减少网络的流量和监控端系统的开销,很有应用前景。
文档编号G06F11/28GK1584850SQ0315393
公开日2005年2月23日 申请日期2003年8月20日 优先权日2003年8月20日
发明者周谧, 周建, 张宗宏, 刘涛, 王晚丁 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1