我的 CentOS 服务器上是否已经激活硬件看门狗?

我的 CentOS 服务器上是否已经激活硬件看门狗?

我租专用服务器(采用 Intel Haswell CPU 和定制硬件)在低成本托管服务上并将其与 CentOS 6.4/64 位 Linux(带有库存内核:2.6.32-358.14.1.el6.x86_64)一起使用。

每隔几周它就会挂起,其他客户似乎也遇到了类似的问题。

dmesg输出中我看到(这里是完整的 dmesg 输出):

CPU0: Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz stepping 03
....
NMI watchdog enabled, takes one hw-pmu counter.
....
iTCO_wdt: Intel TCO WatchDog Timer Driver v1.07rh
iTCO_wdt: Found a Lynx Point TCO device (Version=2, TCOBASE=0x1860)
iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0)

在进程列表中我看到:

#  ps uawwwx|grep [w]atchdog
root         6  0.0  0.0      0     0 ?        S    Aug22   0:00 [watchdog/0]
root        10  0.0  0.0      0     0 ?        S    Aug22   0:00 [watchdog/1]
root        14  0.0  0.0      0     0 ?        S    Aug22   0:00 [watchdog/2]
root        18  0.0  0.0      0     0 ?        S    Aug22   0:00 [watchdog/3]
root        22  0.0  0.0      0     0 ?        S    Aug22   0:00 [watchdog/4]
root        26  0.0  0.0      0     0 ?        S    Aug22   0:00 [watchdog/5]
root        30  0.0  0.0      0     0 ?        S    Aug22   0:00 [watchdog/6]
root        34  0.0  0.0      0     0 ?        S    Aug22   0:00 [watchdog/7]

这是否意味着硬件看门狗已在我的服务器上处于活动状态,并且会在冻结后 30 秒内重新启动我的机器?

(在 /etc/sysctl.conf 中我已经放入了kernel.panic=10,这样它就不会再卡在 kdb 控制台中了)。

或者我必须安装并启动 CentOS 包watchdog

答案1

Linux 有一个通用的看门狗接口。你可以用以下方式使用它:启用 NMI 看门狗您的 iTCO_wdt 硬件支持或通过安装和配置软件看门狗它不依赖于硬件。

答案2

嗯,这里有几个问题需要解决……

  • 服务器挂起时会发生什么?屏幕上会显示什么?日志中会记录什么?是否需要与托管服务提供商联系才能重新启动?您可以自行执行重置吗?

  • 您的服务器不应该挂起、停顿或崩溃!!我曾在使用低端、DIY 或定制硬件的环境中工作过,因此我明白服务提供商的目的是降低成本。但是,如果存在稳定性问题,则提供商有责任解决这些问题。构建稳定的Linux服务器平台并不难。然而,这种情况发生的频率比它应该发生的要高。如果硬件/软件/操作系统/固件的组合有毒,那就是一个坏信号。提供商应该以一定的规模运营,这样他们才能在问题影响多个客户之前了解问题。

  • 您的硬件有 IPMI 设备吗?您有 IPMI 访问权限吗?通常,看门狗是您的带外管理设备。例如,HP ProLiant 服务器有其自动服务器恢复 (ASR)功能集来处理这个问题。

  • 您的系统检测到的设备是Intel 芯片组正在使用。因此,从技术上讲,存在一个看门狗设备,并且有通用的内核支持(它似乎在 CentOSPlus 内核中,而不是您拥有的内核中)。但是,看门狗除了您可能拥有的硬件挂钩之外,该软件包还可以作为软件级看门狗提供帮助。

但同样,您在这里只是治标。找到根本原因很重要。如果其他客户也遇到这些问题,您都需要与服务提供商一起解决。

答案3

CentOS

yum install watchdog

在 Ubuntu 上

apt-get install watchdog
#optional
#apt-get install das-watchdog

然后...

sudo vi /etc/watchdog.conf

当然,您应该知道,在 VIM 中,冒号 (:) 按钮可打开菜单(或者更确切地说是命令行),w 指示它写入您的更改,或者 w! 强制它写入,q 退出。(您还可以使用旧的 ZX Spectrum 光标键 - hjkl 移动,字母 d 删除,i 插入,escape 停止插入。)

取消注释:

 watchdog-device = /dev/watchdog

 man watchdog.conf

欲了解更多信息...当您完成时...

service watchdog restart

是的,这些进程与看门狗有关,但除非它们配置正确,否则它们只是坐在那里什么也不做。

这应该可以帮助您应对不可靠的电源导致的随机锁定变成随机重启。

你可以用以下方法测试

echo *todo* placeholder while I test how to test it, in case I reboot...

如果仍然不起作用,您可能需要再花点功夫,找出您的平台支持什么驱动程序。

就我个人而言,我会尝试单独加载和测试每个看门狗定时器模块,使用类似的方法,在 shell 中以 root 身份运行:

echo "Testing default... " | tee -a /var/log/watchdog-test.log; sync
service watchdog stop
echo Didn't work, we're still here... | tee -a /var/log/watchdog-test.log; sync
# If the default watchdog does work, I bet stopping the service disabled the default watchdog then... *todo* test and update this
echo Modules still loaded...
DOGS=`lsmod|grep -e wdt -e dog|cut -d\  -f1`
echo $DOGS
for dog in $DOGS; do
  echo Unloading $dog
  rmmod $dog || { echo "Oops.. didn't work, $dog won't unload"; sleep 70; };
done;
echo Did they all unload...? If not, I think the rest of this is a waste of time... reboot and skip that one next time
sleep 63
DOGS=`find /lib/modules|grep watchdog|awk -F'\watchdog/' '{print $2}'|sed [email protected]@@g|sort|uniq`
for dog in $DOGS; do 
   echo "Testing $dog... " | tee -a /var/log/watchdog-test.log; sync
   modprobe -v $dog && if [ -e /dev/watchdog ]; then
      dmesg|tail -5
      echo $dog Loaded. Ready for a reboot? | tee -a /var/log/watchdog-test.log; sync
      echo *todo* force a quicker timeout? *todo* read kernel source
      cat /dev/watchdog & test=$!
      sleep 0.5
      [ -e /proc/$test ] && { sleep 63; kill $test; };
  fi
  rmmod $dog
  echo $dog Didn't work, we're still here... | tee -a /var/log/watchdog-test.log; sync
done

如果它只是运行,没有延迟……那么所有模块似乎都没有工作。如果您的 PC 重新启动,则在启动时:

尾部-1 /var/log/watchdog-test.log

将显示一个可能的候选人...现在确保您的服务器加载它...

Ubuntu 似乎使用了您在此处注明的模块:

sudo vi /etc/default/watchdog

我还没有测试过这个。如果你测试过,请来更新这个答案。去做 以下是对 SuSe 的提示:https://www.suse.com/support/kb/doc?id=7016880对于 Ubuntu:https://github.com/miniwark/miniwark-howtos/wiki/Hardware-Watchdog-Timer-setup-on-Ubuntu-12.04 http://odroid.com/dokuwiki/doku.php?id=en:odroid_linux_watchdog

相关内容