Con l'inclusione del supporto per l'hardwarewatchdog, systemd può ora eseguire la funzione di un watchdog daemon Linux. Sui sistemi Dell PowerEdge, questo hardware potrebbe essere il timer di watchdog del chipset integrato nel chipset della piattaforma (come Intel ICH9) o il timer di watchdog BMC conforme a IPMI di Dell iDRAC.
Dell iDRAC fornisce il ripristino automatico del sistema che, oltre al ripristino dai blocchi del sistema operativo, può acquisire una schermata per l'analisi in un secondo momento. Per abilitare questa operazione era necessario un software aggiuntivo sul sistema operativo. Con distribuzioni più recenti che supportano il sistema, questa funzione funziona con il software disponibile in modo nativo in una distribuzione, eliminando la necessità di software add-on.
È stato tuttavia possibile utilizzare il daemon watchdogd su Linux, ma c'era una probabilità in cui il daemon stesso potesse bloccarsi mentre il resto del sistema era operativo. systemd funge da watchdog software per tutti i servizi di sistema e il timer di watchdog BMC funge da watchdog hardware per systemd stesso. Pertanto, se systemd non è operativo, c'è una buona probabilità che il sistema sia inutilizzabile in generale. Ora disponiamo di un metodo più affidabile per tutti i servizi di sistema, il responsabile dei servizi (systemd) che viene "osservato" dal watchdog timer di BMC.
Il colla tra systemd e il watchdog BMC di Dell iDRAC è il modulo kernel ipmi_watchdog, che fornisce l'accesso all'API watchdog linux al watchdog BMC tramite /dev/watchdog. Systemd utilizza questa interfaccia per avviare periodicamente il watchdog.
Configurazione sistemata con ipmi_watchdog
Systemd può essere configurato per utilizzare il watchdog BMC di iDRAC con questi passaggi (su Fedora 19):
- Poiché il sistema dispone di due timer watchdog (chipset e BMC), è possibile utilizzare entrambi. Per questo esempio, si disabilita il watchdog del chipset. Il watchdog del chipset può essere disabilitato impostando l'opzione "Operating system Watchdog Timer" nel BIOS di sistema su "Disabled" (disabilitata) (impostazione predefinita).
- Arrivare a un valore di timeout per il watchdog, ad esempio 180 secondi.
- Abilitare il ipmi_watchdog modulo kernel per il caricamento all'avvio del sistema con il timeout indicato sopra:
- Metodo 1. Creare il file /etc/modules-load.d/ipmi_watchdog con il seguente contenuto
- Opzioni ipmi_watchdog timeout=180
- Nega elenco iTCO_wdt n. opzionale. Se il watchdog del chipset non è disabilitato nella configurazione del BIOS.
- Metodo 2.
- Installare l'rpm OpenIPMI
- $ sudo yum installare OpenIPMI
- Impostare IPMI_WATCHDOG=yes e IPMI_WATCHDOG_OPTIONS con il timeout in /etc/sysconfig/ipmi.
- Abilitare l'avvio automatico del servizio ipmi
- $ sudo systemctl enable ipmi
- Abilitare il watchdog di systemd:
- Rimuovere il commento e impostare RuntimeWatchsec=180 in /etc/systemd/system.conf
- Riavviare il sistema
- # systemctl daemon-reexec
Verificare se funziona:
- Controllare se il watchdog è attivo
- $ sudo journalctl |grep -i 'hardware watchdog' # dovrebbe mostrare che systemd è configurato per utilizzare il watchdog IPMI.
- $ sudo ipmitool mc watchdog get # verificare se "Watchdog Timer Is: Avviato/in esecuzione.
- Eseguire un test simulando un errore grave del kernel (non eseguire questa operazione su un sistema di produzione). Assicurarsi che kdump sia disabilitato.
- $ sudo echo c > /proc/sysrq-trigger
- Dopo il ripristino del sistema, verificare che l'immagine della schermata di errore sia disponibile in iDRAC
- Accedere all'interfaccia utente web di iDRAC
- Panoramica -> Server -> Risoluzione dei problemi -> ultima schermata di arresto anomalo.