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

관련 정보