发明内容
基于此,有必要提供一种能同时监控多个计算机系统,从而能够节省硬件成本的网络看门狗。
一种网络看门狗,包括:
至少一个与被监控计算机对应的看门狗控制器;
处理模块,用于当所述看门狗控制器产生超时信号时,生成用来控制被监控计算机进行复位上电操作的网络复位包;
网络模块,用于向与所述看门狗控制器对应的被监控计算机发送所述网络复位包。
在其中一个实施例中,所述网络模块还用于向被监控计算机发送网络请求包和接收被监控计算机返回的网络应答包;
所述处理模块还用于当所述网络模块接收到被监控计算机返回的网络应答包,则向与所述被监控计算机对应的看门狗控制器进行喂狗操作。
在其中一个实施例中,所述处理模块还用于设置看门狗控制器和与所述看门狗控制器对应的被监控计算机的IP地址之间的映射关系;
所述网络模块则用于根据与看门狗控制器对应的IP地址向被监控计算机发送所述网络复位包。
在其中一个实施例中,所述处理模块还用于当所述网络模块向被监控计算机发送网络请求包后,若未接收到所述被监控计算机返回的网络应答包,则判定被监控计算机异常,将异常的所述被监控计算机的IP地址记录在日志文件中。
在其中一个实施例中,所述网络看门狗还包括GPIO控制器,所述GPIO控制器包含多个与所述看门狗控制器对应的GPIO管脚;所述与看门狗控制器对应的GPIO管脚和与所述看门狗控制器对应的被监控计算机的复位管脚相连;
所述处理模块还用于当所述看门狗控制器产生超时信号时,控制与所述看门狗控制器对应的GPIO管脚输出复位电平,控制对应的被监控计算机进行复位。
此外,还提供了一种网络看门狗的实现方法。
一种网络看门狗的实现方法,包括以下步骤:
设置至少一个与被监控计算机对应的看门狗控制器;
当所述看门狗控制器产生超时信号时,生成用来控制被监控计算机进行复位上电操作的网络复位包;
通过网络向与看门狗控制器对应的被监控计算机发送所述网络复位包。
在其中一个实施例中,所述方法还包括:通过网络向被监控计算机发送网络请求包和接收被监控计算机返回的网络应答包;
当接收到被监控计算机返回的网络应答包,则向所述被监控计算机对应的看门狗控制器进行喂狗操作。
在其中一个实施例中,所述设置至少一个与被监控计算机对应的看门狗控制器的步骤为:
设置看门狗控制器和与所述看门狗控制器对应的被监控计算机的IP地址之间的映射关系;
所述通过网络向与看门狗控制器对应的被监控计算机发送所述网络复位包的步骤为:
根据与看门狗控制器对应的IP地址向被监控计算机发送所述网络复位包。
在其中一个实施例中,所述方法还包括:通过网络向被监控计算机发送网络请求包后,若未接收到所述被监控计算机返回的网络应答包,则判定被监控计算机异常,将异常的所述被监控计算机的IP地址记录在日志文件中。
在其中一个实施例中,所述方法还包括:
设置包含多个与所述看门狗控制器对应的GPIO管脚的GPIO控制器,所述与看门狗控制器对应的GPIO管脚和与所述看门狗控制器对应的被监控计算机的复位管脚相连;
当所述看门狗控制器产生超时信号时,控制与所述看门狗控制器对应的GPIO管脚输出复位电平,控制对应的被监控计算机进行复位。
上述网络看门狗及其实现方法,通过设置与被监控计算机对应的看门狗控制器,当看门狗控制器产生超时信号时,则向与该看门狗控制器对应的被监控计算机发送网络复位包。这样,被监控计算机的看门狗功能由网络看门狗统一进行管理,网络看门狗可同时对多个计算机系统进行监控,无需对每个被监控计算机设置看门狗电路,因此能够减少硬件成本。此外,由于看门狗控制器与被监控计算机并不在同一个计算机系统中,因此当被监控计算机死机时,被监控计算机对应的看门狗控制器会产生超时信号,网络看门狗根据该超时信号生成网络复位包,控制与看门狗控制器对应的被监控计算机进行复位,从而能够重新启动被监控计算机。
具体实施方式
如图1所示,在一个实施例中,一种网络看门狗,包括至少一个看门狗控制器、处理模块和网络模块,其中:每个看门狗控制器与一个被监控计算机对应;处理模块用于当看门狗控制器产生超时信号时,生成用来控制被监控计算机进行复位上电操作的网络复位包;网络模块用于向与看门狗控制器对应的被监控计算机发送该网络复位包。
如图2所示,网络看门狗中的看门狗控制器(看门狗控制器1、…、看门狗控制器N)都是独立的,每个看门狗控制器与一个被监控计算机对应。如图2,看门狗控制器1可对应被监控计算机1,看门狗控制器2可对应被监控计算机2,…,以此类推。处理模块可以是单片机、MCU、ARM等微处理器,也可以是FPGA、CPLD等可编程单元。看门狗控制器可采用单独的定时器实现,也可以采用处理模块中自带的看门狗控制器实现。
在一个实施例中,如图3所示,看门狗控制器包含初始化寄存器、使能寄存器、计数寄存器和喂狗寄存器,其中:初始化寄存器用于设置看门狗的超时时间和时间单位,超时时间取值范围为1~255,时间单位可设置为秒或者分钟。使能寄存器用于标明看门狗开始工作,向使能寄存器写入“1”则表示看门狗开始工作。计数寄存器进行计数,看门狗开始倒数计时,计时状态可通过查询计数寄存器获得。对喂狗寄存器写入喂狗标志(0x55)即为对看门狗控制器进行喂狗操作,当对喂狗寄存器写入喂狗标志时,计数寄存器开始重新倒数计时,如果超过初始化寄存器所设置的看门狗的超时时间,都没有对喂狗寄存器写入喂狗标志,则看门狗会定时溢出,产生看门狗超时信号。
网络模块与被监控计算机之间进行网络通信。具体的,网络模块可用于向被监控计算机发送网络请求包和接收被监控计算机返回的网络应答包。如图2所示,各个被监控计算机中也包含网络模块,用于接收网络看门狗发送的网络请求包和向网络看门狗发送网络应答包。
在一个实施例中,预先可对网络看门狗进行配置,配置过程包含设置网络看门狗的IP地址、所需要的网络看门狗的数目和配置被监控计算机的IP地址信息等。其中,网络看门狗的数目可根据被监控计算机的数目进行配置,优选的,所设置的网络看门狗的数目与被监控计算机的数目相同,每个网络看门狗对应一个被监控计算机。
被监控计算机都有独立的IP地址,在一个实施例中,处理模块还用于设置看门狗控制器和与看门狗控制器对应的被监控计算机的IP地址之间的映射关系。根据该映射关系,每个看门狗控制器即可对应监控一个IP地址与看门狗控制器具有映射关系的被监控计算机。则网络模块可用于根据与看门狗控制器对应的IP地址向对应的被监控计算机发送网络复位包。
进一步的,还可设置看门狗控制器的看门狗超时时间,如上所述,可在各看门狗控制器中的初始化寄存器里进行设置,同时可设置使能寄存器启用相应的看门狗控制器。设置完成后,看门狗控制器中的计数寄存器开始倒数计时,即看门狗开始工作。
进一步的,网络看门狗检测被监控计算机的IP地址的有效性,确保网络看门狗与每个被监控计算机的网络连接正常。网络看门狗中的网络模块用于向IP地址有效的被监控计算机发送网络请求包,并接收被监控计算机返回的网络应答包。
在一个实施例中,处理模块还用于当网络模块接收到被监控计算机返回的网络应答包,则向与被监控计算机对应的看门狗控制器进行喂狗操作。具体的,处理模块用于如果网络模块接收到被监控计算机返回的网络应答包,则判定该被监控计算机工作正常,向该被监控计算机所对应的看门狗控制器的喂狗寄存器写入喂狗标志,让其计数寄存器重新开始倒数计时。接着,在一定时间间隔后网络模块继续向被监控计算机发送网络请求包,依此循环。
在一个实施例中,处理模块还用于当网络模块向被监控计算机发送网络请求包后,若未接收到该被监控计算机返回的网络应答包,则将被监控计算机的IP地址记录在日志文件中。本实施例中,若网络模块向被监控计算机发送网络请求包后,未收到该被监控计算机返回的网络应答包,则判定该被监控计算机工作异常。则处理模块可将该异常的被监控计算机的IP地址记录在日志文件中。
进一步的,与该被监控计算机对应的看门狗控制器由于未写入喂狗标志,将继续倒数计时直到该看门狗超时,产生超时信号。当看门狗控制器产生超时信号时,处理模块则生成网络复位包,并通过网络模块发送给对应的被监控计算机。被监控计算机的网络模块收到网络复位包后,则直接对该被监控计算机进行复位上电操作,进行重新启动。
如图4所示,在一个实施例中,网络看门狗还包括GPIO(General PurposeInput Output,通用输入/输出)控制器,该GPIO控制器包含多个与看门狗控制器对应的GPIO管脚,每个管脚可与一个看门狗控制器对应,与看门狗控制器对应的GPIO管脚和与看门狗对应的被监控计算机的复位管脚(Reset)相连。本实施例中,处理模块还用于当看门狗控制器产生超时信号时,控制与所述看门狗控制器相连的GPIO管脚输出复位电平,控制对应的被监控计算机进行复位。
具体的,GPIO管脚设置默认输出高电平。当被监控计算机工作异常时,其对应的看门狗控制器会产生超时信号,处理模块用于根据该超时信号控制与该看门狗控制器对应的GPIO管脚输出低电平。该低电平使得与看门狗控制器对应的被监控计算机的复位管脚为低电平,从而使得被监控计算机复位,进行重新启动。
如图5所示,在一个实施例中,一种网络看门狗的实现方法,包括:
步骤S502,设置至少一个与被监控计算机对应的看门狗控制器。
步骤S504,当看门狗控制器产生超时信号时,生成用来控制被监控计算机进行复位上电操作的网络复位包。
步骤S506,通过网络向与看门狗控制器对应的被监控计算机发送网络复位包。
具体的,网络看门狗中的看门狗控制器都是独立的,每个看门狗控制器与一个被监控计算机对应。网络看门狗通过网络与多个被监控计算机进行通信。由网络看门狗和多个被监控计算机所构成的系统中,网络看门狗可作为服务端,启动服务端程序,而多个被监控计算机可作为客户端,启动客户端程序。
在一个实施例中,网络看门狗还包含处理模块,用于执行服务端程序,服务端的每个看门狗控制器可采用单独的定时器实现,也可以采用处理模块中自带的看门狗控制器实现。
在一个实施例中,如图6所示,服务端(即网络看门狗)的处理流程如下:
步骤S602,配置服务端。
具体的,是对网络看门狗进行配置,配置过程包含设置网络看门狗的IP地址、所需要的网络看门狗的数目和配置被监控计算机的IP地址信息。其中,网络看门狗的数目可根据被监控计算机的数目进行配置,优选的,所设置的网络看门狗的数目与被监控计算机的数目相同,每个网络看门狗对应一个被监控计算机。
步骤S604,进行初始化设置。
具体的,被监控计算机都有独立的IP地址,服务端需设置看门狗控制器和与看门狗控制器对应的被监控计算机的IP地址之间的映射关系。根据该映射关系,每个看门狗控制器即可对应监控一个IP地址与看门狗控制器具有映射关系的被监控计算机,则可根据与看门狗控制器对应的IP地址向对应的被监控计算机发送网络复位包。
进一步的,还可设置看门狗控制器的看门狗超时时间,可在各看门狗控制器中的初始化寄存器里进行设置,同时可设置使能寄存器启用相应的看门狗控制器。设置完成后,看门狗控制器中的计数寄存器开始倒数计时,即看门狗开始工作。
步骤S606,检验客户端的IP地址是否有效,若是,则进入步骤S608,否则继续检验。
网络看门狗检测被监控计算机的IP地址的有效性,确保网络看门狗与每个被监控计算机的网络连接正常。
步骤S608,发送网络请求包。
具体的,网络看门狗中通过网络向IP地址有效的被监控计算机发送网络请求包,并接收被监控计算机返回的网络应答包。
步骤S610,判断是否接收到网络应答包,若是,则进入步骤S612,否则进入步骤S618。
步骤S612,判定客户端正常。
步骤S614,进行喂狗操作。
步骤S616,延时,返回步骤S608。
具体的,如果网络看门狗接收到被监控计算机返回的网络应答包,则判定该被监控计算机工作正常,向该被监控计算机所对应的看门狗控制器的喂狗寄存器写入喂狗标志,让其计数寄存器重新开始倒数计时。接着,在一定时间间隔后继续向被监控计算机发送网络请求包,依此循环。
步骤S618,判定客户端异常。
步骤S620,写入日志文件。
步骤S622,看门狗超时。
步骤S624,复位客户端,返回步骤S606。
具体的,网络看门狗通过网络向被监控计算机发送网络请求包后,若未接收到该被监控计算机返回的网络应答包,则判定该被监控计算机异常,从而将异常的被监控计算机的IP地址记录在日志文件中。进一步的,与该被监控计算机对应的看门狗控制器由于未写入喂狗标志,将继续倒数计时直到该看门狗超时,产生超时信号。当看门狗控制器产生超时信号,网络看门狗则生成网络复位包,并通过网络发送给对应的被监控计算机。被监控计算机收到网络复位包后,则直接对该被监控计算机进行复位上电操作,进行重新启动。
在一个实施例中,如图7所示,客户端(即被监控计算机)的处理流程如下:
步骤S702,进行初始化设置。
具体的,被监控计算机可设置自身的IP地址和配置服务端的IP地址信息,被监控计算机的IP地址是静态设置且唯一指定的。
步骤S704,检测服务端的IP地址是否有效,若是,则进入步骤S706,否则结束。
具体的,每个被监控计算机都会检测网络看门狗的IP地址的有效性,确保自身与网络看门狗的网络连接正常。
步骤S706,接收网络请求包。
步骤S708,发送网络应答包。
被监控计算机接收到网络看门狗发送的网络请求包后,若被监控计算机运行正常,则会向网络看门狗发送网络应答包,若运行异常,网络看门狗则接收不到网络应答包。
在一个实施例中,上述网络看门狗的实现方法,还包括:设置包含多个与看门狗控制器对应的GPIO管脚的GPIO控制器,与看门狗控制器对应的GPIO管脚和与看门狗控制器对应的被监控计算机的复位管脚相连;当看门狗控制器产生超时信号时,控制与看门狗控制器对应的GPIO管脚输出复位电平,控制对应的被监控计算机进行复位。
本实施例中,GPIO管脚设置默认输出高电平。当被监控计算机工作异常时,其对应的看门狗控制器会产生超时信号,网络看门狗根据该超时信号控制与该看门狗控制器对应的GPIO管脚输出低电平。该低电平使得与看门狗控制器对应的被监控计算机的复位管脚为低电平,从而使得被监控计算机复位,进行重新启动。
上述网络看门狗及其实现方法,实现了多台计算机共用一个网络看门狗模块,该网络看门狗模块可同时监控多个计算机系统,实现多个计算机系统的看门狗功能,因此无需对每个被监控计算机设置看门狗电路,节省了硬件成本,充分利用了硬件资源。由于看门狗与被监控计算机不在同一个计算机系统内,一旦计算机系统死机,与该被监控计算机对应的看门狗控制器则产生超时信号,进而网络看门狗根据该超时信号控制被监控计算机进行复位,因此能够实现自动重新启动被监控计算机。
通过网络看门狗对多个被监控计算机实现统一集中管理,不仅适用于网络机架应用中,也能拓展到小型局域网,局域网内的所有计算机看门狗功能都采用网络看门狗实现,可以实现对被监控故障计算机的自动复位。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。