商讯信箱
用户名: @
密  码:   注册|忘记密码
登录
个人用户经销商
信箱 E杂志
您的位置:首页 > 服务器频道 > 正文
四、 配置内核看门狗支持Heartbeat

    1 Linux下watchdog的工作原理

    Watchdog在实现上可以是硬件电路也可以是软件定时器,能够在系统出现故障时自动重新启动系统。在Linux 内核下, watchdog的基本工作原理是:当watchdog启动后(即/dev/watchdog 设备被打开后),如果在某一设定的时间间隔内/dev/watchdog没有被执行写操作, 硬件watchdog电路或软件定时器就会重新启动系统。

    /dev/watchdog 是一个主设备号为10, 从设备号130的字符设备节点。 Linux内核不仅为各种不同类型的watchdog硬件电路提供了驱动,还提供了一个基于定时器的纯软件watchdog驱动。 驱动源码位于内核源码树drivers\char\watchdog\目录下。

    2 硬件与软件watchdog的区别

    硬件watchdog必须有硬件电路支持, 设备节点/dev/watchdog对应着真实的物理设备, 不同类型的硬件watchdog设备由相应的硬件驱动管理。软件watchdog由一内核模块softdog.ko 通过定时器机制实现,/dev/watchdog并不对应着真实的物理设备,只是为应用提供了一个与操作硬件watchdog相同的接口。

    硬件watchdog比软件watchdog有更好的可靠性。 软件watchdog基于内核的定时器实现,当内核或中断出现异常时,软件watchdog将会失效。而硬件watchdog由自身的硬件电路控制, 独立于内核。无论当前系统状态如何,硬件watchdog在设定的时间间隔内没有被执行写操作,仍会重新启动系统。

    一些硬件watchdog卡如WDT501P 以及一些Berkshire卡还可以监测系统温度,提供了 /dev/temperature接口。 对于应用程序而言, 操作软件、硬件watchdog的方式基本相同:打开设备/dev/watchdog, 在重启时间间隔内对/dev/watchdog执行写操作。即软件、硬件watchdog对应用程序而言基本是透明的。

    在任一时刻, 只能有一个watchdog驱动模块被加载,管理/dev/watchdog 设备节点。如果系统没有硬件watchdog电路,可以加载软件watchdog驱动softdog.ko。

    3 Linux内核中关于watchdog的配置

    在/usr/src/linux目录运行命令:makemenu config
    确保在下面的菜单已经启用Software Watchdog选项
Character Devices Watchdog Cards ---> [*] Watchdog Timer Support [M] Software Watchdog (NEW)
    如图2 。


    图 2 编译内核支持Software Watchdog选项

    4 加载模块

    #insmod softdog

    说明:watchdog能让系统在出现故障1分钟后重启该机器。这个功能可以帮助服务器在确实停止心跳后能够重新恢复心跳。 如果使用该特性,则在内核中装入"softdog"内核模块,用来生成实际的设备文件,输入"insmod softdog"加载模块。 输入"grep misc /proc/devices"(应为10),输入"cat /proc/misc | grep watchdog"(应为130)。 生成设备文件:"mknod /dev/watchdog c 10 130" 。

    5 测试软件狗

    编辑文件 /etc/ha.d/ha.cf
    如掉下面一行的注释号:
    watchdog /dev/watchdog
    重新启动Heartbeat
    #service heartbeat restart
    使用命令杀掉heartbeat进程
    killall -9 heartbeat
    此时日志文件中应当出现一行:
   Softdog: WDT device closed unexpectedly. WDT will not stop!
     表示软件狗生效。另外使用命令lsmod可以看到软件狗已经加载。如图3 。


    图-3

    6 删除软件狗的方法

    使用命令可以从内核中删除软件狗:
    #modprobe -r softdog
1 2 3 4
【内容导航】
第1页: 配置Stonith 第2页: 配置内核看门狗支持Heartbeat
第3页: 测试Heartbeat配置 第4页: 配置Mon
©版权所有。未经许可,不得转载。
[责任编辑:杨晓勇]