시스템 감시 타이머 재설정/새로 고침

시스템 감시 타이머 재설정/새로 고침

고가용성 시스템을 설정하고 싶은데 이를 위해 여러 가지 복구 방법을 시도하고 있습니다.

kernel재부팅을 의미하는 자동화된 수단을 통해 업데이트를 받았다고 가정하고 snapshot실행 중인 시스템을 생성하고 에서 부팅 가능한 항목을 생성하고 GRUB2광산을 업데이트 kernel하고 업데이트된 루트로 강제 부팅합니다.

부팅이 예상대로 진행되지 않으면 일정 시간 후에 부팅 시도를 포기하고 정상적으로 부팅하는 타이머가 필요합니다. 이 작업은 업데이트 전 스냅샷을 통해 수행됩니다.

사람에게는 이 상황이 짜증나는 것처럼 보일 수 있습니다 WatchDog timer (WDT). 내 설정에는 3초에서 30분 사이의 시간 값이 Watchdog있는 것으로 나타났습니다 . BIOS ACPI2분으로 설정하고 부팅을 시도하는 동안 부팅 프로세스를 중단하여 계속되지 않도록 했고, 당연히 2분 후에 재부팅되었습니다. 그러나 시스템이 올바르게 부팅되더라도 여전히 2분마다 재부팅됩니다.

나는 읽었다,여기,여기그리고여기daemon이 워치독을 자극/새로 고침하는 것이 필요합니다 . 내 시스템에 하나가 있다는 것을 알았지 /dev/watchdog만 이것이 내가 활성화한 워치독과 인터페이스하는 워치독인지는 알 수 없습니다 BIOS. 나는 이것이 재미있을 수 있다는 것을 더 읽었습니다 systemd. 이 RuntimeWatchdogSec=옵션을 설정하면 /etc/systemd/system.conf워치독 타이머에 새로 고침 메시지가 전송되어 다시 시작되지 않도록 해야 합니다. 그래서 20초로 설정했지만 BIOS워치독에 설정된 타이머 주파수가 경과하는 한 내 장치는 계속 부팅됩니다. (어떤 이유에서인지 나는 /dev/watchdog과 /dev/watchdog0을 모두 0바이트로 가지고 있는데 이것이 정상적인 것인지는 잘 모르겠습니다...)

다른 기능을 활성화해야 합니까? 내가 활성화한 감시 타이머 /dev/watchdog에 대한 인터페이스가 있고 BIOS이를 트리거할 수 있는 옵션이 있다는 내 이해가 정확합니까 /etc/systemd/system.conf? 처음에는 BIOS에서 켠 하드웨어 감시에 신경 쓰지 않는 소프트웨어 감시인 줄 알았는데 작동해야 할 것 같습니다.

제가 사용하는 마더보드는 아주 일반적인 마더보드이고 운영체제는 CentOs 8 입니다.

편집하다:

다음을 수행하면 lsmod | grep wdt다음이 제공됩니다.

iTCO_wdt 16384 1
iTCO_vendor_support 16384 1 iTCO_wdt
mei_wdt 16384 0
mei 110592 3 mei_wdt,mei_me

systemd동작하지 않아서 CentOs에서 제공하는 watchdog 데몬을 다운받아서 /dev/watchdog 같은 값을 설정 하고 watchdog-device뭐라도 설정해 보았는데 그것도 안 되더군요. 시스템이 계속 다시 시작됩니다.

하나를 만들었 systemctl status watchdog.service더니 데몬 서비스가 실행 중이고 활성 상태라는 상태가 표시되었습니다.

alive=/dev/watchdog heartbeat=[none] to=root no_act=no force=no
hardware watchdog identity : iTCO_wdt
cannot set scheduler (errno=1 = 'Operation not permitted') //ERROR

제가 확인한 오류는 관련이 있을 수 있지만 완전히 systemd확인하고 /etc/system.conf주석 처리했습니다.

답변1

귀하의 시스템에는 적어도 하나, 최대 두 개의 내장 하드웨어 감시 장치가 있는 것 같습니다.

iTCO_wdt대부분의 최신 Intel 칩셋에 내장된 감시 기능용 드라이버입니다. mei_wdtIntel Active Management Technology(AMT) 관리 엔진 인터페이스(MEI)에 내장된 또 다른 감시 드라이버입니다. 에 비해 테스트가 덜 이루어졌습니다 iTCO_wdt.

BIOS 설정에서 watchdog을 활성화하면 BIOS가 watchdog 중 하나를 유지할 수 있습니다. 이 경우 새로 고치려면 공급업체별 방법이 필요할 수 있습니다. ACPI/WMI를 통해 전화를 걸 수도 있나요?

/dev/watchdog*단일 감시자가 두 개의 장치를 보는 것은 정상입니다. /dev/watchdog이는 전형적인 감시 장치 노드입니다. 즉, 메이저 장치 번호가 10이고 마이너 장치 번호가 130인 문자 장치 노드입니다. 동적으로 결정된 주요 번호를 가진 최신 장치 노드입니다. 이를 통해 /dev/watchdog0여러 감시 장치를 생성할 수 있습니다. 시스템에 사용 가능한 감시 장치가 두 개 이상 있는 경우. 클래식 인터페이스에서는 시스템에 하나의 감시 장치만 허용됩니다./dev/watchdog0/dev/watchdog1

systemctl status watchdog.service성공적으로 사용되고 있으며 iTCO_wdt모듈의 사용 횟수가 목록에 1이라는 사실 lsmod은 이 워치독이 Linux에서 사용될 수 있음을 나타내는 것으로 보입니다.

반면에 BIOS가 사용 중일 수 있으며 , 이는 워치독을 새로 고치고 재부팅을 피할 수 없는 이유 와 mei_wdt이유를 설명할 수 있습니다 . 또한 아무것도 나타나지 않는다는 사실은 드라이버가 MEI의 감시 기능을 초기화하지 못했음 을 나타냅니다 . 아마도 BIOS가 이미 이를 사용하고 있고 OS가 이를 직접 사용하는 것을 허용하지 않기 때문일까요?watchdog.servicesystemd/dev/watchdog1mei_wdt

BIOS에서 워치독 설정을 비활성화하고 iTCO_wdtLinux에서 워치독을 사용할 수 있습니다. 해당 워치독용 드라이버는 BIOS가 하드웨어 구성을 속이지 않는 한 자체적으로 워치독을 완벽하게 활성화할 수 있어야 합니다. 이렇게 하면 부팅 시 오류에 대한 보호 기능을 놓칠 수 있지만 Linux가 실행되는 동안 시스템이 중단되는 경우 감시 기능이 계속 사용자를 보호합니다.

다른 어떤 것도 감시 장치를 사용하지 않는 경우 이 wdctl명령을 사용하여 감시 장치의 현재 상태에 대한 정보를 얻을 수 있습니다.

관련 정보