4.5. 配置 Watchdog
4.5.1. 为虚拟机添加一个 Watchdog 卡
为虚拟机添加 watchdog 卡可以监控操作系统是否在正常工作。
过程 4.9. 为虚拟机添加 Watchdog 卡
- 点虚拟机页并选择一个虚拟机。
- 点。
- 选择高可用性标签页。
- 从 Watchdog 型号下拉列表中选择 watchdog 的型号。
- 在 Watchdog 操作下拉列表中选择一个操作。这个操作会在 watchdog 事件发生时在虚拟机上执行。
- 点。
4.5.2. 安装 Watchdog
要激活虚拟机上的 watchdog 卡,需要在虚拟机上安装 watchdog 软件包,并启动
watchdog
服务。
过程 4.10. 安装 Watchdog
- 登录到 watchdog 卡所连的虚拟机上。
- 安装 watchdog 软件包和依赖的软件包:
# yum install watchdog
- 编辑
/etc/watchdog.conf
文件,取消以下行的注释:watchdog-device = /dev/watchdog
- 保存所做的改变。
- 启动
watchdog
服务,并使它可以在系统启动时被自动启动:- Red Hat Enterprise Linux 6:
# service watchdog start # chkconfig watchdog on
- Red Hat Enterprise Linux 7:
# systemctl start watchdog.service # systemctl enable watchdog.service
4.5.3. 配置 Watchdog 的功能
确认 watchdog 卡被连到虚拟机上,
watchdog
服务已启动。
警告
以下操作只被用来测试 watchdog 的功能,请不要在实际的生产环境中运行。
过程 4.11. 配置 Watchdog 的功能
- 登录到 watchdog 卡所连的虚拟机上。
- 确认 watchdog 卡已经被虚拟机所识别:
# lspci | grep watchdog -i
- 运行以下命令之一来确定 watchdog 处于激活状态:
- 产生一个内核 panic:
# echo c > /proc/sysrq-trigger
- 终止
watchdog
服务:# kill -9 `pgrep watchdog`
watchdog 计时器将无法被重置,它将会倒数到 0。当计时器到 0 时,在 Watchdog 操作下拉菜单中所指定的操作将会进行。
4.5.4. watchdog.conf 中的 watchdog 参数
以下列出了
/etc/watchdog.conf
文件中关于配置 watchdog
服务的参数。要配置一个参数,您需要确保它的配置行没有被注释并在修改后重新启动 watchdog
服务。
注意
如需了解更多关于配置
watchdog
服务和使用 watchdog
命令的信息,请参阅 watchdog
man 文档。
变量名 | 默认值 | 备注 |
---|---|---|
ping | N/A | 一个 IP 地址。watchdog 会尝试 ping 这个地址来确定这个地址是否可以被访问。您可以通过使用多个 ping 行来指定多个 IP 地址。 |
interface | N/A | 一个网络接口。watchdog 将监测这个接口来确定是否有网络通信。您可以通过使用多个 interface 行来指定多个网络接口。 |
file | /var/log/messages | 一个本地系统上的文件。watchdog 将监测这个文件的改变。您可以通过使用多个 file 行来指定多个文件。 |
change | 1407 | watchdog 的间隔数。在经过了这个间隔次数后,watchdog 才会再次检查文件的改变。change 行必须在每个 file 行后面被马上指定并只对这个 file 行有效。 |
max-load-1 | 24 | 虚拟机在 1 分钟的时间内可以承受的最大平均负载。如果这个平均值被超过,watchdog 将会进行相应的操作。把它设为 0 将禁用这个功能。 |
max-load-5 | 18 | 虚拟机在 5 分钟的时间内可以承受的最大平均负载。如果这个平均值被超过,watchdog 将会进行相应的操作。把它设为 0 将禁用这个功能。在默认情况下,这个变量的值被设为 max-load-1 值的四分之三。 |
max-load-15 | 12 | 虚拟机在 15 分钟的时间内可以承受的最大平均负载。如果这个平均值被超过,watchdog 将会进行相应的操作。把它设为 0 将禁用这个功能。在默认情况下,这个变量的值被设为 max-load-1 值的一半。 |
min-memory | 1 | 虚拟机上必须保留的最小可用虚拟内存的值(以内存页为单位)。把它设为 0 将禁用这个功能。 |
repair-binary | /usr/sbin/repair | 一个位于本地系统的二进制文件的路径和文件名,当 watchdog 事件被触发时需要执行这个文件。如果运行这个文件可以解决出现的问题,watchdog 将不会进行其它操作。 |
test-binary | N/A | 位于本地系统上的一个二进制文件的路径和文件名,watchdog 会在每个间隔中运行这个文件。 |
test-timeout | N/A | 用户所定义的测试可以运行的时间限制(以秒为单位)。如果它被设为 0 ,用户定义的测试的运行时间将没有限制。 |
temperature-device | N/A | 用来检查 watchdog 服务所在机器的温度的设备路径和设备名。 |
max-temperature | 120 | watchdog 服务所在机器的最高温度。如果达到了这个温度,机器将会停止。这个值必须和所使用的 watchdog 卡相匹配。 |
admin | root | Watchdog 事件相关的电子邮件通知所要发送到的电子邮件地址。 |
interval | 10 | watchdog 设备接收更新信息的间隔(以秒为单位)。watchdog 设备在每一分钟内至少应该接收到一条更新信息,如果过了一分钟还没有收到更新,watchdog 事件将会被触发。这个一分钟的限制是被 watchdog 设备所固定的,它不能被修改。 |
logtick | 1 | 如果为 watchdog 服务设置了详细日志项,watchdog 服务会定期把日志信息写到本地系统上。logtick 指定了在经过了 watchdog 的几个间隔后日志信息才会被写入本地系统。 |
realtime | yes | 指定 watchdog 是否被锁定在内存中。如果它的值为 yes ,watchdog 将被锁定在内存中,而不会被交换出内存。如果它的值为 no ,watchdog 将可以被交换出内存。如果 watchdog 被交换出内存,而且在 watchdog 计时器倒数到 0 时还没有被交换回到内存,watchdog 事件将会被触发。 |
priority | 1 | 当 realtime 被设置为 yes 时,调度的优先级。 |
pidfile | /var/run/syslogd.pid | 一个 PID 文件的路径和文件名。watchdog 会监测这个文件来确定相关的进程是否处于活跃状态。如果相关的进程没有处于活跃状态,watchdog 事件将会被触发。 |