Durch die Integration der Unterstützung für Watchdog-Hardware kann systemd jetzt die Funktion eines Watchdog-Daemon Linux ausführen. Auf Dell PowerEdge-Systemen kann diese Hardware entweder der Chipsatz-Watchdog-Timer sein, der in den Chipsatz der Plattform integriert ist (wie Intel ICH9) oder der IPMI-konforme BMC-Watchdog-Timer von Dell iDRAC.
Dell iDRAC bietet eine automatisierte Systemwiederherstellung , die neben der Wiederherstellung nach Betriebssystemabstürzen auch einen Screenshot zur späteren Analyse erfassen kann. Um dies zu aktivieren, war zusätzliche Software auf dem Betriebssystem erforderlich. Da neuere Distributionen systemd unterstützen, funktioniert diese Funktion mit nativ in einer Distribution verfügbarer Software, sodass keine Add-on-Software erforderlich ist.
Es war jedoch möglich, den Watchdogd-Daemon unter Linux zu verwenden, aber es gab eine Wahrscheinlichkeit, dass der Daemon selbst abstürzte, während der Rest des Systems betriebsbereit war. systemd fungiert als Software-Watchdog für alle Systemdienste und der BMC-Watchdog-Timer fungiert als Hardware-Watchdog für systemd selbst. Wenn das System nicht betriebsfähig ist, besteht die Möglichkeit, dass das System im Allgemeinen nicht verwendet werden kann. Wir haben jetzt eine zuverlässigere Methode für alle Systemservices, den Manager der Services (systemd), der vom Watchdog-Zeitgeber des BMC "überwacht" wird.
Der Bindemittel zwischen systemd und dem BMC-Watchdog von Dell iDRAC ist das ipmi_watchdog-Kernel-Modul, das Linux-Watchdog-API-Zugriff auf den BMC-Watchdog über /dev/watchdog bereitstellt. Systemd verwendet diese Schnittstelle, um den Watchdog regelmäßig zu starten.
Einrichten eines Systems mit ipmi_watchdog
Systemd kann so konfiguriert werden, dass iDRAC BMC-Watchdog mit diesen Schritten verwendet wird (auf Fedora 19):
- Da das System über zwei Watchdog-Zeitgeber (Chipsatz und BMC) verfügt, können wir beide verwenden. In diesem Beispiel deaktivieren wir den Chipsatz-Watchdog. Der Chipsatz-Watchdog kann deaktiviert werden, indem die Option "Operating System Watchdog Timer" im System-BIOS auf "Disabled" (Deaktiviert) gesetzt wird (Standardeinstellung).
- Sie erreichen einen Timeout-Wert für den Watchdog, z. B. 180 Sekunden.
- Aktivieren Sie das ipmi_watchdog Kernel-Moduls, das beim Systemstart mit der oben genannten Zeitüberschreitung geladen werden soll:
- Methode 1: Erstellen Sie /etc/modules-load.d/ipmi_watchdog mit dem folgenden Inhalt.
- Optionen ipmi_watchdog Timeout = 180
- Liste ablehnen iTCO_wdt # Optional. Wenn der Chipsatz-Watchdog im BIOS-Setup nicht deaktiviert ist.
- Methode 2:
- Installieren von OpenIPMI rpm
- $ sudo yum OpenIPMI installieren
- Legen Sie IPMI_WATCHDOG=yes und IPMI_WATCHDOG_OPTIONS mit dem Timeout in /etc/sysconfig/ipmi fest.
- Aktivieren Sie den ipmi-Dienst, um automatisch zu starten.
- $ sudo systemctl ipmi aktivieren
- Aktivieren Sie den Watchdog des Systemd:
- Heben Sie die Auskommentierung auf und legen Sie RuntimeWatchdogSec=180 in /etc/systemd/system.conf fest.
- System neu starten
- # systemctl daemon-reexec
Testen Sie, ob dies funktioniert:
- Überprüfen Sie, ob der Watchdog aktiv ist.
- $ sudo journalctl |grep -i 'hardware watchdog' # sollte zeigen, dass systemd so eingerichtet ist, dass IPMI-Watchdog verwendet wird.
- $ sudo ipmitool mc watchdog get # check if the "Watchdog Timer Is: Started/Running".
- Testen Sie, indem Sie einen Kernel-Fehler simulieren (tun Sie dies nicht auf einem Produktionssystem). Stellen Sie sicher, dass kdump deaktiviert ist.
- $ sudo echo c > /proc/sysrq-trigger
- Überprüfen Sie nach dem Zurücksetzen des Systems, ob ein Bild des Fehlerbildschirms im iDRAC verfügbar ist.
- Melden Sie sich bei der iDRAC-Webbenutzeroberfläche an.
- Overview -> Server -> Troubleshooting -> Bildschirm "Last Crash".