Met de toevoeging van ondersteuning voor watchdog-hardware kan systemd nu de functie van een watchdog daemon Linux uitvoeren. Op Dell PowerEdge systemen kan deze hardware de chipset watchdog timer zijn die is ingebouwd in de chipset van het platform (zoals Intel ICH9) of de IPMI-compatibele BMC watchdog-timer van Dell iDRAC.
Dell iDRAC biedt geautomatiseerd systeemherstel dat niet alleen kan herstellen van vastgesloten besturingssystemen, maar ook een schermafbeelding kan maken voor analyse later. Het was nodig om extra software op het besturingssysteem in te schakelen. Met nieuwere distributies die het systeem ondersteunen, werkt deze functie met software die native beschikbaar is in een distributie, waardoor er geen add-on software nodig is.
Het was echter mogelijk om de watchdogd daemon te gebruiken op Linux, maar er was een kans dat de daemon zelf vastloopt terwijl de rest van het systeem operationeel was. systemd fungeert als software watchdog voor alle systeemservices en de BMC watchdog timer fungeert als de hardware watchdog voor het systeem zelf. Dus als systemd niet-operationeel is, is er een goede kans dat het systeem in het algemeen onbruikbaar is. Daarom hebben we nu een betrouwbaardere methode voor alle systeemservices, de manager van de services (systemd) om te worden 'bekeken' door de watchdog-timer van de BMC.
De lijm tussen systemd en de BMC watchdog van Dell iDRAC is de ipmi_watchdog kernelmodule, die Linux watchdog API toegang biedt tot de BMC watchdog met behulp van /dev/watchdog. Systemd gebruikt deze interface om de watchdog periodiek te starten.
Systeem instellen met ipmi_watchdog
Systemd kan worden geconfigureerd om iDRAC BMC watchdog te gebruiken met deze stappen (op Fedora 19):
- Aangezien het systeem twee watchdog-timers (chipset en BMC) heeft, kunnen we een van beide gebruiken. In dit voorbeeld schakelen we de chipset watchdog uit. De chipset watchdog kan worden uitgeschakeld door de optie "Operating System Watchdog Timer" in het systeem-BIOS in te stellen op "Disabled" (standaard).
- Kom aan bij een time-outwaarde voor de watchdog, zeg 180 seconden.
- Schakel de ipmi_watchdog kernelmodule in om te laden bij het opstarten van het systeem met de time-out van hierboven:
- Methode 1: Maak /etc/modules-load.d/ipmi_watchdog met de volgende inhoud
- Opties ipmi_watchdog time-out=180
- Lijst weigeren iTCO_wdt # optioneel. Als de chipset watchdog niet is uitgeschakeld in de BIOS-instellingen.
- Methode 2:
- OpenIPMI rpm installeren
- $ sudo yum installatie OpenIPMI
- Stel IPMI_WATCHDOG=yes in en IPMI_WATCHDOG_OPTIONS met de time-out in /etc/sysconfig/ipmi.
- De ipmi-service inschakelen om automatisch op te starten
- $ sudo systemctl enable ipmi
- Schakel de watchdog van het systeem in:
- Ontkoppel en stel RuntimeWatchdogSec=180 in /etc/systemd/system.conf in
- Systeem opnieuw opstarten
- # systemctl daemon-reexec
Test of dit werkt:
- Controleer of de watchdog actief is
- $ sudo journalctl |grep -i 'hardware watchdog' # moet laten zien dat systemd is ingesteld om IPMI watchdog te gebruiken.
- $ sudo ipmitool mc watchdog get # controleer of de "Watchdog Timer Is: Gestart/actief."
- Test door een kernel panic te simuleren (doe dit niet op een productiesysteem). Zorg ervoor dat kdump is uitgeschakeld.
- $ sudo echo c > /proc/sysrq-trigger
- Controleer na het resetten van het systeem of een afbeelding van het foutscherm beschikbaar is in de iDRAC
- Meld u aan bij de iDRAC webinterface
- Overzicht -> Server -> Probleemoplossing -> Laatste crashscherm.
OPMERKING: Deze functie wordt momenteel niet ondersteund door Dell en wordt hier gedeeld met de bedoeling om feedback te vragen van de community op
Linux-bronnen voor PowerEdge servers.