Erhöhte Betriebssicherheit durch Watchdog-Kette. Wie funktioniert das?

In den optiMEAS Devices wird ein starker Fokus auf Ausfallsicherheit, hohe Verfügbarkeit und Zuverlässigkeit im Betrieb gelegt. Ein wesentliches Element hierbei ist eine durchgängige Watchdogkette von der Hardware bis zu den Software-Komponenten.

Grundprinzip

Die Watchdog-Kette in den optiMEAS Geräten setzt sich aus einer Kombination von Hardware- und Software-Komponenten zusammen, die gemeinsam eine Überwachungslinie bilden. In dieser Linie wird die Funktionsfähigkeit jeder einzelnen Komponente kontinuierlich überwacht. Fällt eine Komponente aus, werden automatisch Maßnahmen eingeleitet, um den reibungslosen Betrieb sicherzustellen.Die Maßnahmen umfassen verschiedene Ansätze, darunter den gezielten Neustart einzelner Prozesse, den vollständigen Software-Neustart des Linux-Systems sowie das selektive Abschalten und anschließende Neustarten einzelner Hardware-Komponenten oder sogar des gesamten Systems.

Die Watchdog-Kette ist in folgendem Bild schematisch dargestellt.

Watchdog-Kette

Die einzelnen Überwachungsebenen

Die unterste Ebene bildet der Hardware-Watchdog (Power-Controller). Dies ist ein Microcontroller, der in der Lage ist, alle anderen Hardware-Komponenten (Hauptprozessor mit Linux-System, Modem, etc) gezielt stromlos zu schalten und neu zu starten. Er selbst verfügt über einen internen Watchdog, der ihn im Fehlerfall neu startet.

Dieser Hardware-Watchdog erwartet von der darüberliegenden Ebene, dem Device-Manager, ein zyklisches Lebenszeichen. Der Device-Manager ist eine zentrale Software-Komponenten, die über den I2C-Bus ein Lebenszeichen an den Hardware-Watchdog sendet. Er überwacht alle applikationsspezifischen Software-Prozesse (Apps) und wird selbst wird von dem Linux-Prozess "systemd" gestartet und überwacht. Im Fehlerfall versucht systemd den Device-Manager bis zu fünfmal neu zu starten, bevor ein kompletter Software-Neustart durchgeführt wird.

Alle applikationsspezifischen Software-Prozesse (Apps) bilden die Ebene über dem Device-Manager. Der DeviceManager überwacht die Apps (z.B. den smartCORE) über einen Software Watchdog. Die Liste der zu überwachenden Apps ist bereits in der Konfiguration des Systems festgelegt, sodass der DeviceManager bereits den Start der Prozesse überwachen kann. Somit werden auch Fälle abgedeckt, in denen der Prozess während des Hochlaufens abstürzt. Bei ausbleibendem Watchdog-Signal wird der Prozess gezielt beendet und neu gestartet. Die Prozess Neustarts werden gezählt, und bei Überschreiten gewisser Limits kommt es zum Reboot. Ein stabiler Betrieb über eine längere Periode setzt den Zähler zurück. 

Was passiert im Fehlerfall

Schauen wir uns an, was beim Ausfall einzelner Komponenten passiert: Sollte eine App "abstürzen" bleibt ihr Lebenszeichen an den Device-Manager aus. Der Device-Manager startet daraufhin die App neu und zählt die Neustarts der App über der Zeit. Kann das Problem nicht über einen Neustart der App gelöst werden, d.h. kommt es wiederholt zum Ausfall der Komponenten, wird das gesamte System neu gestartet.

Sollte der Device-Manager selbst abstürzen greift zunächst der systemd-Prozess von Linux und startet den Device-Manager bis zu fünfmal neu. Sollte sich dennoch kein stabiler Betrieb einstellen, wird das komplette Linux-System neu gestartet. 

Sollte der Device-Manager und systemd ausfallen, bleibt das Watchdog-Signal an den Hardware-Watchdog aus. Dieser würde dann das gesamte System über einen Power-Cycle neu starten.

Einfacher Test des Systems

Es wird nicht empfohlen manuell in das System einzugreifen. Möchte der versierte Anwender dennoch einen Test des Systems durchführen, bietet sich folgendes Vorgehen an. Nach Authentifizierung und Einwahl in das System wird ein überwachter Prozess über die Linux-Console beendet, zB mit

killall smartcore  

Der Device-Manager wird nach einer kurzen Zeit das Ausbleiben des Lebenszeichens und damit den Ausfall des Prozesses erkennen. Daraufhin wird der Prozess vom Device-Manager neu gestartet.

Das Ausbleiben des Lebenszeichens und der Neustart des Prozesses werden im Logfiles des Device-Managers festgehalten. Ein Blick auf das Logfile lässt den Vorgang erkennen.

smartCORE Neustart durch Watchdog