Fehlertoleranz in eingebetteten Systemen

Ähnliche Dokumente
Fehlertoleranz in eingebetteten Systemen

Vorlesung "Verteilte Systeme" Sommersemester Verteilte Systeme. 13. Fehlertoleranz. Verteilte Systeme, Sommersemester 1999 Folie 13.

Zuverlässige Systeme Fehlertoleranz

Formale Grundlagen der Fehlertoleranz in verteilten Systemen

12 Fehlertoleranz. Begriffe

Verteilte Systeme F. Fehlertoleranz

Grundlagen: Überblick

FEHLERTOLERANZ EINE SEHR GROBE ÜBERSICHT BETRIEBSSYSTEME UND SICHERHEIT, WS 2016/17 HERMANN HÄRTIG

Redundanz und Replikation

Seminar. PG AutoLab. Verteilte Echtzeitsysteme. Sabrina Hecke. PG 522 Fachbereich Informatik Technische Universität Dortmund Lehrstuhl XII

Zeitgesteuerte Kommunikationssysteme für Hard-Real-Time Anwendungen. Jörn Sellentin

TAV Übung 3. Übung 3: Verteilte Datenhaltung

Randomisierte Algorithmen: Ben-Or

Motivation für Fehlertoleranz in VS Fehlermodelle Erreichen von Fehlertoleranz. Verteilte Systeme. 7. Fehlertoleranz

Bedeutung der Metadateien. Alle Metadaten werden in Dateien gehalten. NTFS ist ein Journal-File-System

Einleitung Definitionen FlexRay TTA Vergleich Fazit Literatur. Verteilte Echtzeit

Verteilte Systeme - 5. Übung

Fehlerquellen. Überblick. Einordnung. Fehlerquellen

Modellbasierte Software- Entwicklung eingebetteter Systeme

Verlässliche Systeme

SFTP Datenübertragungsclient PK-SFTP. automatische Verbindung zu einem SFTP-Server in einstellbaren Zeitintervallen

Fehler und Fehlertoleranz

Fehlertoleranzmechanismen in hochverfügbaren Clustersystemen

Entwurfsmuster und Softwarearchitekturen für sicherheitskritische Systeme

SMAVIA Recording Server Version SP A

Redundanztechniken. Seminararbeit für den Masterstudiengang. Informatik. von. Kamo Azad. Vogeliusweg , Paderborn

secuentry/anleitung Android ConfigApp

Algorithmen und Datenstrukturen 1. EINLEITUNG. Algorithmen und Datenstrukturen - Ma5hias Thimm 1

Anleitung VR-NetWorld Software 5.0

Installationsanleitung STATISTICA. Einzelplatz Domainbasierte Registrierung

Verteilte Echtzeitsysteme

6.1.2 Sequentielle Konsistenz (Lamport 1979)

Zeit- und ereignisgesteuerte Echtzeitsysteme

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik

Hochverfügbarkeit mit Windows Server vnext. Carsten Rachfahl Microsoft Hyper-V MVP

Anleitung VR-NetWorld Software Version 5

secuentry/anleitung IOS ConfigApp

Eclipse User Interface Guidelines

RAID Redundant Array of Independent [Inexpensive] Disks

Überblick. 2 Bestandsaufnahme 2.1 Beispiele von verteilten Systemen 2.2 Anwendungsszenarien 2.3 Vorteile 2.4 Problembereiche

Fehlertolerante und Selbstheilende Systeme.

Die Einführung kann auch Nachteile mit sich ziehen:

CAN - BUS. Inhaltsverzeichnis

HW/SW CODESIGN. Echtzeitverhalten. Mehmet Ozgan November 2015

Verteilte Systeme. Replikation & Konsistenz I. Prof. Dr. Oliver Haase

Vertrieb datentechnischer Geräte

Stefan Schröder Hard- und Softwareentwicklungen. Anleitung TSImport. Zum Neetzekanal Brietlingen

Leistungsbeschreibung Click2Fax 1.0

Leitfaden ATLAS-Nachrichten erneut versenden

Resilient Software Design Patterns

Universität Paderborn Die Universität der Informationsgesellschaft. Validierung und Verifikation (inkl. Testen, Model-Checking, Theorem Proving)

Software Engineering. Ariane Flug 501! Fallstudie

Cablelink. Bedienungsanleitung. to fax

Tableaukalkül für Aussagenlogik

Notebook optimal einrichten & nutzen

Fehlertoleranz auf Basis des Hypervisors

Datensicherheit und Hochverfügbarkeit

J. Reinier van Kampenhout Robert Hilbrich Hans-Joachim Goltz. Workshop Echtzeit Fraunhofer FIRST

Linux Cluster in Theorie und Praxis

Seminar: Fehlertolerante und Selbstheilende Systeme

Anleitung VR-Networld Software 5

Lookup Performanz von Verteilten Hashtabellen

Hochverfügbare Virtualisierung mit Open Source

Datenverwaltung in der Cloud. Überblick. Google File System. Anforderungen der Anwendungen an das Dateisystem

Überblick. 1 Vorbemerkungen. 2 Algorithmen. 3 Eigenschaften von Algorithmen. 4 Historischer Überblick. Einführung

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 17. Kapitel 2 Architekturen 51. Kapitel 3 Prozesse 91

secuentry/anleitung Android ConfigApp

Grundlagen verteilter Systeme

Entfernen Sie zuerst die Midex-Treiber-CD aus dem CD-ROM Laufwerk.

Definition. Gnutella. Gnutella. Kriterien für P2P-Netzwerke. Gnutella = +

Betriebssysteme G: Parallele Prozesse (Teil A: Grundlagen)

Prof. Dr.-Ing. Dagmar Meyer Architekturen verteilter SW-Systeme 5 SYNCHRONISATION

Software Engineering

Die Sicht eines Sysadmins auf DB systeme

Informatik I. Informatik I Was haben wir gelernt? 28.2 Algorithmusbegriff Was geht nicht? 28.1 Was haben wir gelernt?

Kapitel 14 Verteilte DBMS

S-TEC electronics AG CBOX P100. CBOX-Programm P100 V0115. Hardware und Software engineering Industrielle Steuer- und Regeltechnik

Verteilte Systeme. Einführung. Prof. Dr. Oliver Haase

Realisierung von UMCM über den IBH Link UA mit Simatic S5 und S7 Steuerungen

Bitcoin. Alexander Gronemann-Habenicht. 2. Juni 2014 Liquid Democracy: Bitcoin 1

Datenbankstammtisch. Replikation in heterogenen Datenbankumgebungen am Beispiel des Sybase Replication Servers. 1. Februar 2006

PAPIERLOSE STEUERERKLÄRUNG MIT SIGNATUR

Vortrag zum Hauptseminar Hardware/Software Co-Design

Verteiltes Backup. Einleitung Grundlegende Backup Techniken Backup in Netzwerken. Client/Server Peer-to-Peer

ABB i-bus KNX. Software-Information. Melde- und Bedientableau. Typ: MT 701.2

ABA/S 1.2.1: Funktionsblock erstellen Vorgehensweise

Convision IP-Videoserver und die Sicherheitseinstellungen von Windows XP (SP2)

Man liest sich: POP3/IMAP

Einführung in Hadoop

Reaktive Systeme und synchrones Paradigma

Sven Osterwald Concurrent Objects. Proseminar Parallele Programmierung in Java

Modellbasierte Software- Entwicklung eingebetteter Systeme

Protokoll-Spezifikationen

Teil 4: Rekursion und Listen

Qualitätssicherung von Software

Übungen zur Softwaretechnik

Anleitung VR-NetWorld Software 5

Einreichtung Ihrer neuen HBCI-Chipkarte in der VR-NetWorld Software Wählen Sie unter dem Punkt Stammdaten Bankverbindungen aus.

Anwendungsleitfaden für GKB Secure Mail. Gemeinsam wachsen. gkb.ch

Einführung in die Informatik Turing Machines

Transkript:

Fehlertoleranz in eingebetteten Systemen Ausgewählte Kapitel eingebetteter Systeme (AKES) 19.07.2006 1 / 36

Was ist ein Fehler? Fehlerklassen Überblick Einführung Was ist ein Fehler? Fehlerklassen 2 / 36

Was ist ein Fehler? Fehlerklassen Fehler Definition Ein Fehler ist eine Abweichung von einem optimalen oder normierten Zustand oder Verfahren in einem bezüglich seinen Funktionen determinierten System. (Wikipedia) 3 / 36

Was ist ein Fehler? Fehlerklassen Fault Failure - Error Fehler =...? Fault : Fehlfunktion, Störung Error : Irrtum, Abweg Failure : Ausfall, Versagen Fehlertoleranz = fault-tolerance 4 / 36

Was ist ein Fehler? Fehlerklassen Fehlerklassen : Versagen oder Fehlfunktion einer Komponente : Fehlerhaft programmierte Anwendung Kommunikations-Fehler: Fehlerhafte Übertragung von Daten 5 / 36

Überblick Einführung 6 / 36

Tolerieren von n Prinzip: Prozess wird repliziert Hardware mehrfach vorhanden Replikate werden verteilt 7 / 36

(1) Prinzip: alle Replikate gleichzeitig aktiv Ergebnisse werden simultan erzeugt Voter leitet mehrheitlich erzieltes Ergebnis weiter 8 / 36

(2) Replikat 1 Replikat 2 Replikat 3 Voter Input Nachricht Ergebnisberechnung Ergebnisberechnung Ergebnisberechnung Ergebnisse Voting Output Zeit 9 / 36

(3) Fehlererkennung: Ergebnis stimmt nicht mit Mehrheit überein Ergebnis wird zu spät erzeugt Ergebnis wird gar nicht erzeugt 10 / 36

(4) Bedingungen: Eingabe-Konsistenz Replikations-Determinismus 11 / 36

(5) Replikationsgrad: 2f+1 Knoten zur Tolerierung von f Fehlern Standardfall: f = 1 (triple modular redundancy) 12 / 36

fail-silent Knoten Besonderheiten: Sendung fehlerhafter Ergebnisse wird verhindert kein Voter notwendig nur f+1 Knoten zur Tolerierung von f Fehlern nötig 13 / 36

(1) Prinzip: nur ein Knoten aktiv Zustand wird zu bestimmten Zeiten (Checkpoints) auf die Replikate übertragen im Fehlerfall Aktivieren eines anderen Knoten Voraussetzung: alle Knoten sind fail-silent 14 / 36

(2) Replikat 1 Replikat 2 Replikat 3 Input Ergebnisberechnung Nachricht Checkpoint Aktivieren Fortsetzen der Berechnung am aktuellsten Checkpoint Zeit Output 15 / 36

(3) mögliches Problem: doppeltes Versenden von Nachrichten durch Rollback Gegenmaßnahmen: systematische Checkpoints periodische Checkpoints 16 / 36

(4) Systematische Checkpoints: Checkpoint nach jedem Versenden einer Nachricht Rollback erfordert niemals erneutes Senden 17 / 36

(5) Periodische Checkpoints: weniger Checkpoints, z.b. alle n Nachrichten nach Rollback jede zu Sendende Nachricht erst mit Log vergleichen Voraussetzungen: Replikations-Determinismus Eingabe-Konsistenz 18 / 36

(1) Prinzip: alle Knoten aktiv ein Knoten Leader, alle anderen Follower kein Voting, Leader übermittelt Ergebnis Leader trifft alle Entscheidungen und gibt sie via Synchronisations-Nachricht an Follower weiter defekter Leader wird durch einen Follower ersetzt 19 / 36

(2) Leader Follower 1 Follower 2 Input Nachricht Synchronisation Zeit /dev/null Output 20 / 36

(3) Synchronisations-Nachrichten: Input-Synchronisation: in welcher Reihenfolge sind Nachrichten zu konsumieren ( Eingabe-Konsistenz gewährleistet) Preemption-Synchronisation: zu welchem Zeitpunkt darf der Prozess unterbrochen werden ( Replikations-Determinismus gewährleistet) 21 / 36

(1) : Vorteile: keine Unterbrechung im Fehlerfall, falls Knoten fail-silent keine Verzögerung und kein Voter nötig Nachteile: atomares Multicasting muss unterstützt werden, Prozesse müssen replikationsdeterministisch sein, Unterbrechungen sehr schwer zu handhaben, hoher Rechenaufwand 22 / 36

(2) : Vorteile: Unterbrechungen problemlos, einfache Kommunikation, Prozesse müssen nicht deterministisch sein, kein Voter nötig, geringer Rechenaufwand Nachteile: Knoten zwingend fail-silent, Verzögerung im Fehlerfall, Kommunikations- Overhead durch Checkpoint-Erstellung 23 / 36

(3) : Vorteile: kein Voter nötig, weniger Overhead als passive Replikation, Unterbrechungen kein Problem, nicht-deterministische Prozesse möglich Nachteile: Verzögerung beim Ausfall des Leaders, Knoten zwingend fail-silent, hoher Rechenaufwand trotz zusätzlicher Kommunikation 24 / 36

Recovery-Blocks N-Version-Programming Überblick Einführung Recovery-Blocks N-Version-Programming 25 / 36

Recovery-Blocks N-Version-Programming Recovery-Blocks (1) Prinzip: unabhängige Entwicklung mehrerer Alternativen nach gleicher Spezifikation Akzeptanztest, der Korrektheit der Ergebnisse prüft Ausführen der Alternativen nacheinander, bis Ergebnis Akzeptanztest besteht 26 / 36

Recovery-Blocks N-Version-Programming Recovery-Blocks (2) Recoverypoint erstellen Recovery Block Alternative 1 Alternative 2 Alternative 3 Recovery Akzeptanztest Nicht akzeptiert Fehler OK 27 / 36

Recovery-Blocks N-Version-Programming Recovery-Blocks (3) Problem: Alternative, die Nachrichten an andere gesendet hat, schlägt fehl verschickte Nachrichten sind ungültig, also alle Konsumenten fehlgeschlagen Konsumenten müssen identifiziert werden 28 / 36

Recovery-Blocks N-Version-Programming Recovery-Blocks (4) Mögliche Maßnahmen: Keine Inter-Prozess-Kommunikation in Recovery- Blocks zu restriktiv Verwendung von Dialogen 29 / 36

Recovery-Blocks N-Version-Programming Recovery-Blocks (5) Dialoge: enthalten Prozesse und Datenstrukturen ermöglichen Kommunikation ohne Recovery zu beeinträchtigen falls Alternative fehlschlägt werden betroffene Prozesse auch wiederhergestellt terminiert, wenn alle enthaltenen Prozesse erfolgreich 30 / 36

Recovery-Blocks N-Version-Programming N-Version-Programming (1) Prinzip: unabhängige Entwicklung mehrerer Alternativen nach gleicher Spezifikation Ausführung aller Alternativen nebenläufig Schiedsrichter konstruiert endgültiges Ergebnis aus allen Einzelergebnissen 31 / 36

Recovery-Blocks N-Version-Programming N-Version-Programming (2) N Version Module Alternative 1 Alternative 2 Alternative 3 Schiedsrichter 32 / 36

Recovery-Blocks N-Version-Programming N-Version-Programming (3) Problem: Verhalten nach Fehlschlagen einer Version Falls Modul zustandslos: kein Problem sonst: Modul in inkonsistentem Zustand 33 / 36

Recovery-Blocks N-Version-Programming N-Version-Programming (4) Maßnahmen: Klonen der fehlgeschlagenen Version Wiederherstellung des Zustands durch Untersuchung anderer Komponenten durch Abfrage bei anderen Versionen, dann Standard-Repräsentation des Zustands nötig 34 / 36

Recovery-Blocks N-Version-Programming Gibt es noch Fragen? 35 / 36

Recovery-Blocks N-Version-Programming Literaturverzeichnis http://de.wikipedia.org/wiki/fehler Barret P. A., Speirs N. A. 1993: Towards an integrated approach to fault tolerance in Delta-4, IEE Distributed Systems Engineering, Volume 1, Issue 2, pp 59-66, IOP Publishing Ltd. Kopetz H., Bauer G. 2003: The Time-Triggered Architecture Proceedings of the IEEE, Special Issue on Modeling and Design of Embedded Software, pp 112-126 36 / 36