Red Hat Training

A Red Hat training course is available for Red Hat Virtualization

4.5. 配置 Watchdog

4.5.1. 为虚拟机添加一个 Watchdog 卡

为虚拟机添加 watchdog 卡可以监控操作系统是否在正常工作。

过程 4.9. 为虚拟机添加 Watchdog 卡

  1. 虚拟机页并选择一个虚拟机。
  2. 编辑
  3. 选择高可用性标签页。
  4. Watchdog 型号下拉列表中选择 watchdog 的型号。
  5. Watchdog 操作下拉列表中选择一个操作。这个操作会在 watchdog 事件发生时在虚拟机上执行。
  6. 确定

4.5.2. 安装 Watchdog

要激活虚拟机上的 watchdog 卡,需要在虚拟机上安装 watchdog 软件包,并启动 watchdog 服务。

过程 4.10. 安装 Watchdog

  1. 登录到 watchdog 卡所连的虚拟机上。
  2. 安装 watchdog 软件包和依赖的软件包:
    # yum install watchdog
  3. 编辑 /etc/watchdog.conf 文件,取消以下行的注释:
    watchdog-device = /dev/watchdog
  4. 保存所做的改变。
  5. 启动 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 的功能

  1. 登录到 watchdog 卡所连的虚拟机上。
  2. 确认 watchdog 卡已经被虚拟机所识别:
    # lspci | grep watchdog -i
  3. 运行以下命令之一来确定 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 文档。

表 4.2. watchdog.conf 变量

变量名默认值备注
pingN/A一个 IP 地址。watchdog 会尝试 ping 这个地址来确定这个地址是否可以被访问。您可以通过使用多个 ping 行来指定多个 IP 地址。
interfaceN/A一个网络接口。watchdog 将监测这个接口来确定是否有网络通信。您可以通过使用多个 interface 行来指定多个网络接口。
file/var/log/messages一个本地系统上的文件。watchdog 将监测这个文件的改变。您可以通过使用多个 file 行来指定多个文件。
change1407watchdog 的间隔数。在经过了这个间隔次数后,watchdog 才会再次检查文件的改变。change 行必须在每个 file 行后面被马上指定并只对这个 file 行有效。
max-load-124虚拟机在 1 分钟的时间内可以承受的最大平均负载。如果这个平均值被超过,watchdog 将会进行相应的操作。把它设为 0 将禁用这个功能。
max-load-518虚拟机在 5 分钟的时间内可以承受的最大平均负载。如果这个平均值被超过,watchdog 将会进行相应的操作。把它设为 0 将禁用这个功能。在默认情况下,这个变量的值被设为 max-load-1 值的四分之三。
max-load-1512虚拟机在 15 分钟的时间内可以承受的最大平均负载。如果这个平均值被超过,watchdog 将会进行相应的操作。把它设为 0 将禁用这个功能。在默认情况下,这个变量的值被设为 max-load-1 值的一半。
min-memory1虚拟机上必须保留的最小可用虚拟内存的值(以内存页为单位)。把它设为 0 将禁用这个功能。
repair-binary/usr/sbin/repair一个位于本地系统的二进制文件的路径和文件名,当 watchdog 事件被触发时需要执行这个文件。如果运行这个文件可以解决出现的问题,watchdog 将不会进行其它操作。
test-binaryN/A位于本地系统上的一个二进制文件的路径和文件名,watchdog 会在每个间隔中运行这个文件。
test-timeoutN/A用户所定义的测试可以运行的时间限制(以秒为单位)。如果它被设为 0,用户定义的测试的运行时间将没有限制。
temperature-deviceN/A用来检查 watchdog 服务所在机器的温度的设备路径和设备名。
max-temperature120watchdog 服务所在机器的最高温度。如果达到了这个温度,机器将会停止。这个值必须和所使用的 watchdog 卡相匹配。
adminrootWatchdog 事件相关的电子邮件通知所要发送到的电子邮件地址。
interval10watchdog 设备接收更新信息的间隔(以秒为单位)。watchdog 设备在每一分钟内至少应该接收到一条更新信息,如果过了一分钟还没有收到更新,watchdog 事件将会被触发。这个一分钟的限制是被 watchdog 设备所固定的,它不能被修改。
logtick1如果为 watchdog 服务设置了详细日志项,watchdog 服务会定期把日志信息写到本地系统上。logtick 指定了在经过了 watchdog 的几个间隔后日志信息才会被写入本地系统。
realtimeyes指定 watchdog 是否被锁定在内存中。如果它的值为 yes,watchdog 将被锁定在内存中,而不会被交换出内存。如果它的值为 no,watchdog 将可以被交换出内存。如果 watchdog 被交换出内存,而且在 watchdog 计时器倒数到 0 时还没有被交换回到内存,watchdog 事件将会被触发。
priority1realtime 被设置为 yes 时,调度的优先级。
pidfile/var/run/syslogd.pid一个 PID 文件的路径和文件名。watchdog 会监测这个文件来确定相关的进程是否处于活跃状态。如果相关的进程没有处于活跃状态,watchdog 事件将会被触发。