Fehlertoleranz
KonzeptFehlertoleranz bezeichnet die Fähigkeit eines Systems, trotz des Auftretens bestimmter Fehler seine geforderte Funktion weiterhin zu erbringen.
Dafür müssen mögliche Fehler erkannt oder in ihrer Wirkung begrenzt und geeignete Reaktionen vorgesehen werden. Abhängig vom System kann der Betrieb vollständig fortgesetzt, auf eine Ersatzkomponente gewechselt oder mit eingeschränkter Funktion weitergeführt werden.
Wie Fehlertoleranz funktioniert
Nicht alle möglichen Fehler eines Systems lassen sich zuverlässig verhindern.
Deshalb kann ein System so entworfen werden, dass bestimmte Fehler nicht unmittelbar zum Verlust seiner geforderten Funktion führen.
Dafür muss zunächst betrachtet werden:
- welche Fehler auftreten können
- welche Teile des Systems davon betroffen sind
- wie ein Fehler erkannt werden kann
- welche Auswirkungen akzeptabel sind
- welche Funktion erhalten bleiben muss
- wie das System auf den Fehler reagieren soll
Erst daraus ergeben sich geeignete technische Maßnahmen.
Fehler erkennen, begrenzen und behandeln
Fehlertoleranz kann auf unterschiedliche Weise erreicht werden.
Eine häufige Möglichkeit ist Redundanz. Fällt eine Komponente aus, kann eine andere ihre Funktion übernehmen.
Redundanz allein reicht jedoch nicht aus.
Das System muss beispielsweise erkennen können, dass die bisher verwendete Komponente tatsächlich ausgefallen ist. Es muss entscheiden, wann auf eine andere Komponente gewechselt wird, und gegebenenfalls sicherstellen, dass diese einen geeigneten Zustand besitzt.
Andere Verfahren können darin bestehen:
- eine fehlgeschlagene Operation zu wiederholen
- einen alternativen Kommunikationsweg zu verwenden
- fehlerhafte Komponenten zu isolieren
- auf gespeicherte oder zuvor bekannte Daten zurückzugreifen
- nicht notwendige Funktionen vorübergehend abzuschalten
- einen eingeschränkten Betriebszustand zu verwenden
Welche Reaktion sinnvoll ist, hängt vom jeweiligen System und vom betrachteten Fehler ab.
Geforderte Funktion bedeutet nicht immer Normalbetrieb
Ein fehlertolerantes System muss nach einem Fehler nicht zwangsläufig genauso funktionieren wie vorher.
Entscheidend ist, welche Funktion unter den jeweiligen Bedingungen erhalten bleiben soll.
Ein System kann beispielsweise im Normalbetrieb zehn unterschiedliche Funktionen anbieten. Bei einem Teilausfall bleiben nur die drei Funktionen verfügbar, die für den weiteren Betrieb unbedingt benötigt werden.
Wenn dieses Verhalten vorgesehen ist und die geforderte Funktion weiterhin erfüllt wird, kann auch ein eingeschränkter Betrieb eine Form von Fehlertoleranz sein.
Damit muss für eine sinnvolle Bewertung von Fehlertoleranz bekannt sein, welche Funktion unter welchen Bedingungen erwartet wird.
Nicht jeder Fehler muss verhindert werden
Bei der Entwicklung technischer Systeme liegt es nahe, Fehler möglichst vollständig verhindern zu wollen.
Das ist jedoch nicht immer möglich und nicht immer wirtschaftlich sinnvoll.
Stattdessen kann untersucht werden:
Was passiert, wenn dieser Fehler trotzdem auftritt?
Ein Netzwerk kann unterbrochen werden.
Eine Festplatte kann ausfallen.
Ein externer Dienst kann nicht erreichbar sein.
Eine Nachricht kann zweimal eintreffen.
Ein Prozess kann unerwartet beendet werden.
Ein einzelner fehlerhafter Zustand muss dabei nicht zwangsläufig zum Ausfall des gesamten Systems führen.
Fehlertoleranz beschäftigt sich deshalb mit der Fähigkeit des Systems, mit solchen Situationen kontrolliert umzugehen.
Tolerieren bedeutet nicht ignorieren
Ein tolerierter Fehler bleibt ein Fehler.
Wenn ein System nach dem Ausfall einer Komponente automatisch auf eine Ersatzkomponente wechselt, kann der Dienst zunächst weiterlaufen.
Trotzdem kann es notwendig sein:
- den Fehler zu protokollieren
- Verantwortliche zu informieren
- die ausgefallene Komponente zu ersetzen
- Datenbestände zu überprüfen
- die Ursache des Fehlers zu untersuchen
- verlorene Redundanz wiederherzustellen
Andernfalls kann aus einem zunächst tolerierbaren Fehler später ein kritischer Zustand entstehen.
Ein System mit zwei redundanten Komponenten ist nach dem Ausfall einer Komponente möglicherweise weiterhin funktionsfähig, besitzt aber seine ursprüngliche Fehlertoleranz nicht mehr.
Fehler, Fehlzustand und Ausfall
Begriffe wie Fehler, Fehlzustand und Ausfall werden in verschiedenen technischen Fachgebieten nicht immer einheitlich verwendet.
Häufig wird zwischen der Ursache eines Fehlzustands, einem fehlerhaften Zustand innerhalb des Systems und dem nach außen sichtbaren Verlust einer geforderten Funktion unterschieden. In englischsprachiger Fachliteratur werden dafür unter anderem die Begriffe Fault, Error und Failure verwendet.
Nicht jede beobachtete Abweichung bedeutet deshalb automatisch, dass die geforderte Funktion eines Systems ausgefallen ist.
Eine Abweichung kann zunächst eine Beobachtung sein. Erst im Zusammenhang mit Anforderungen, Systemzustand und Auswirkungen lässt sich beurteilen, ob eine Reaktion notwendig ist und ob die geforderte Funktion des Systems gefährdet oder bereits beeinträchtigt ist.
Eine automatische Reaktion auf jede Abweichung kann selbst unerwünschte Folgen haben.
Warum Fehlertoleranz praktische Auswirkungen hat
- Einzelfehler müssen nicht zum Gesamtausfall führen: Auswirkungen können auf einen Teil des Systems begrenzt werden.
- Betrieb kann eingeschränkt fortgesetzt werden: Nicht notwendige Funktionen können zugunsten wichtiger Funktionen zurückgestellt werden.
- Fehler werden Teil des Systementwurfs: Nicht nur der Normalbetrieb, sondern auch bekannte Fehlerfälle werden berücksichtigt.
- Redundanz kann gezielt eingesetzt werden: Zusätzliche Komponenten erhalten einen definierten Zweck.
- Fehlerzustände werden beobachtbar: Ein tolerierter Fehler kann weiterhin erkannt und behandelt werden.
- Anforderungen werden genauer: Es muss beschrieben werden, welche Funktion auch unter Fehlerbedingungen erhalten bleiben soll.
Typisches Beispiel
Ein System verarbeitet Nachrichten aus einer Warteschlange.
Nach erfolgreicher Verarbeitung wird eine Nachricht als erledigt markiert.
Während der Verarbeitung bricht die Netzwerkverbindung ab. Das System kann deshalb nicht sicher feststellen, ob die nachgelagerte Operation bereits erfolgreich durchgeführt wurde.
Ein einfacher Wiederholungsversuch könnte dazu führen, dass dieselbe Operation zweimal ausgeführt wird.
Fehlertoleranz besteht in diesem Fall deshalb nicht einfach darin, den Vorgang automatisch erneut zu starten.
Das Gesamtsystem muss so gestaltet sein, dass der Fehler erkannt und kontrolliert behandelt werden kann. Abhängig von der Aufgabe kann das beispielsweise bedeuten, Operationen wiederholbar zu gestalten, eindeutige Vorgangskennungen zu verwenden oder den tatsächlichen Zustand vor einer Wiederholung zu prüfen.
Die geeignete Reaktion hängt vom konkreten System ab.
Abgrenzung
- Fehlertoleranz beschreibt die Fähigkeit eines Systems, trotz bestimmter Fehler seine geforderte Funktion weiterhin zu erfüllen.
- Sie ist nicht dasselbe wie Fehlervermeidung. Fehlervermeidung versucht, das Auftreten von Fehlern zu verhindern. Fehlertoleranz beschäftigt sich mit dem Verhalten des Systems, wenn bestimmte Fehler trotzdem auftreten.
- Auch Verfügbarkeit ist nicht mit Fehlertoleranz gleichzusetzen. Hohe Fehlertoleranz kann zur Verfügbarkeit eines Systems beitragen, Verfügbarkeit wird jedoch zusätzlich durch weitere Faktoren wie Reparaturzeiten und Wartbarkeit beeinflusst.
- Resilienz betrachtet einen größeren Zusammenhang. Sie beschäftigt sich nicht nur mit vorher betrachteten Fehlern, sondern mit der Fähigkeit eines Systems, mit Störungen und Veränderungen umzugehen, sich anzupassen und seine wesentlichen Funktionen zu erhalten oder wiederherzustellen.
Weiterführend
Verwandte Begriffe
→ Resilienz
→ Systemarchitektur
→ Systemintegration
→ Verifikation und Validierung
→ Legacy-System
Quellen
Hauptquellen
Vertiefung
Quellen archiviert am: 2026-08-29