注意:这里我们讨论的是服务器挂起而不是应用程序问题,Heartbeat(在编写本书时Heartbeat 2之前的版本还不可用)不会监视它控制的资源或应用程序,看其是否健康 -- 要监视必须使用另一个软件包,如Mon,将在第四部分中详细讨论它。
正常情况下,连接到系统的watchdog设备允许内核判断系统是否挂起(当内核看不到外部的计时器设备正确地更新时,它就知道出现某些错误了)。
watchdog代码也支持用软件替换外部的硬件计时器,该软件叫做 softdog,softdog维护一个内部计时器,在另一个进程写入/dev/watchdog设备文件时更新,如果softdog没有看到进程写入 /dev/watchdog文件,它认为内核一定出故障了,它将启动一个内核恐慌,正常情况下,内核恐慌将导致系统关闭,但是你可以修改这个默认行为,将 其改为默认行为为重启系统。
当你在/etc/ha.d/ha.cf文件中启用了watchdog选项 后,Heartbeat将每隔相当于deadtime长的时间写入/dev/watchdog文件(或设备),因此,出现任何导致Heartbeat更新 watchdog设备失败的事情,一旦watchdog超时周期(默认是一分钟)过期,watchdog将启动内核恐慌。
配置信息如下:
[root@Server ~]# yum install watchdog*
Loaded plugins: rhnplugin, security
This system is not registered with RHN.
RHN support will be disabled.
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package watchdog.i386 0:5.6-1.el5 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
====================================================================================================================================
====================================================================================================================================
Installing:
Transaction Summary
====================================================================================================================================
Install
Update
Remove
Total download size: 66 k
Is this ok [y/N]: y
Downloading Packages:
watchdog-5.6-1.el5.i386.rpm
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installed:
2.开启看门狗选项
[root@Server ~]# vi /etc/ha.d/ha.cf
watchdog /dev/watchdog
[root@Server ~]# lsmod
Module
softdog
3.测试(模拟heartbeat突然崩溃)
[root@Server ~]# ps -ef|grep heartbeat
root
nobody
nobody
nobody
nobody
nobody
nobody
nobody
root
[root@Server ~]# Killall -9 heartbeat
[root@Server ~]# ps -ef|grep heartbeat
root
4.观察日志:
[root@Server ~]# tail -f /var/log/message
Aug
我们发现 系统已经重启了。。。
参考文章:
http://www.ixdba.net/article/97/2036.html (Heartbeat中Watchdog和Softdog的使用)