WatchdogデーモンはSupermicro X9DR3-FマザーボードのハードウェアWatchdogタイマーをリセットできません。

WatchdogデーモンはSupermicro X9DR3-FマザーボードのハードウェアWatchdogタイマーをリセットできません。

スーパーマイクロX9DR3-FマザーボードJWDジャンパピン1と2が短絡され、UEFIの監視機能が有効になっている場合:スーパーマイクロUEFI

これは、ハードウェア監視タイマーがリセットされないと、システムが約5分後にリセットされることを意味します。インストールしましたwatchdogiTCO_wdtドライバを使用するようにデーモン化して設定します。

$ cat /etc/default/watchdog 
# Start watchdog at boot time? 0 or 1
run_watchdog=1
# Start wd_keepalive after stopping watchdog? 0 or 1
run_wd_keepalive=1
# Load module before starting watchdog
watchdog_module="iTCO_wdt"
# Specify additional watchdog options here (see manpage).
$ 

デーモンが起動すると、watchdogドライバは問題なくロードされます。

$ sudo dmesg | grep iTCO_wdt
[   17.435620] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.11
[   17.435667] iTCO_wdt: Found a Patsburg TCO device (Version=2, TCOBASE=0x0460)
[   17.435761] iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0)
$ 

また、次の/dev/watchdogファイルも存在します。

$ ls -l /dev/watchdog
crw------- 1 root root 10, 130 Dec  8 22:36 /dev/watchdog
$ 

watchdog-deviceデーモン構成のオプションは、watchdog次のファイルを指します。

$ grep -v ^# /etc/watchdog.conf 



watchdog-device    = /dev/watchdog
watchdog-timeout   = 60


interval           = 5
log-dir            = /var/log/watchdog
verbose            = yes
realtime           = yes
priority           = 1

heartbeat-file     = /var/log/watchdog/heartbeat
heartbeat-stamps   = 1000
$ 

監視デバイスへの書き込みをデバッグするためにheartbeat-fileオプションを有効にし、/dev/watchdog送信されるKeepaliveメッセージを見ました。

$ tail /var/log/watchdog/heartbeat
 1575830728
 1575830728
 1575830728
 1575830733
 1575830733
 1575830733
 1575830733
 1575830733
 1575830733
 1575830733
$ 

ただし、サーバーは約5分間隔で独自にリセットされます。

私の次の考えは、おそらくiTCO_wdtドライバーが監視装置を制御できるということでした。C606チップセットサーバーをリセットする監視装置はIPMIの一部です。そのため、iTCO_wdt起動中にドライバがロードされていないことを確認し、サーバーを再起動しました。公平に言えば、黄道帯は/dev/watchdogもう存在しません。これでモジュールがロードされましたipmi_watchdog

$ ls -l /dev/watchdog
ls: cannot access '/dev/watchdog': No such file or directory
$ sudo modprobe ipmi_watchdog
$ sudo dmesg -T | tail -1
[Tue Dec 10 21:12:48 2019] IPMI Watchdog: driver initialized
$ ls -l /dev/watchdog
crw------- 1 root root 10, 130 Dec 10 21:12 /dev/watchdog
$ 

..最後に5秒間隔で書き込むwatchdogファイルベースのデーモンが起動します。また、これは次のことで確認できます。/var/log/watchdog/heartbeat/dev/watchdogstrace

$ ps -p 2296 -f
UID        PID  PPID  C STIME TTY          TIME CMD
root      2296     1  0 01:28 ?        00:00:00 /usr/sbin/watchdog
$ sudo strace -y -p 2296
strace: Process 2296 attached
restart_syscall(<... resuming interrupted nanosleep ...>) = 0
write(1</dev/watchdog>, "\0", 1)        = 1
write(1</dev/watchdog>, "\0", 1)        = 1
open("/proc/uptime", O_RDONLY)          = 2</proc/uptime>
close(2</proc/uptime>)                  = 0
write(1</dev/watchdog>, "\0", 1)        = 1
write(1</dev/watchdog>, "\0", 1)        = 1
write(1</dev/watchdog>, "\0", 1)        = 1
write(1</dev/watchdog>, "\0", 1)        = 1
write(1</dev/watchdog>, "\0", 1)        = 1
nanosleep({5, 0}, NULL)                 = 0
write(1</dev/watchdog>, "\0", 1)        = 1
write(1</dev/watchdog>, "\0", 1)        = 1
open("/proc/uptime", O_RDONLY)          = 2</proc/uptime>
close(2</proc/uptime>)                  = 0
write(1</dev/watchdog>, "\0", 1)        = 1
write(1</dev/watchdog>, "\0", 1)        = 1
write(1</dev/watchdog>, "\0", 1)        = 1
write(1</dev/watchdog>, "\0", 1)        = 1
write(1</dev/watchdog>, "\0", 1)        = 1
nanosleep({5, 0}, NULL)                 = 0
write(1</dev/watchdog>, "\0", 1)        = 1
write(1</dev/watchdog>, "\0", 1)        = 1
open("/proc/uptime", O_RDONLY)          = 2</proc/uptime>
close(2</proc/uptime>)                  = 0
write(1</dev/watchdog>, "\0", 1)        = 1
write(1</dev/watchdog>, "\0", 1)        = 1
write(1</dev/watchdog>, "\0", 1)        = 1
write(1</dev/watchdog>, "\0", 1)        = 1
write(1</dev/watchdog>, "\0", 1)        = 1
nanosleep({5, 0}, ^Cstrace: Process 2296 detached
 <detached ...>
$

watchdog上記のPIDを持つデーモンは、2296出力からのシステムコールを減らすためにコメントアウトされたオプションで始まります。heartbeat-file/etc/watchdog.confwritestrace

ただし、サーバーはまだ約300秒間隔で再起動されます。

ウォッチドッグデーモンがSupermicro X9DR3-Fマザーボードのハードウェアウォッチドッグタイマーをリセットできないのはなぜですか?

答え1

監視デーモンがSupermicro X9DR3-Fマザーボードのハードウェア監視タイマーをリセットできないのは、UEFI制御の監視機能によるものです。第三守る犬。これはWinbond Super I / O 83527チップにあります。言い換えれば、iTCO_wdtドライバは、対応するipmi_watchdog監視チップに対する誤ったドライバである。

答え2

A2SDi-4C-HLN4Fで動作させるにはbmc_watchdog(from)を使用する必要があります。freeipmi

関連情報