Melden Sie sich hier an, um auf Kommentare und die Whitepaper-Datenbank zugreifen zu können.

Kein Log-In? Dann jetzt kostenlos registrieren.

Falls Sie Ihr Passwort vergessen haben, können Sie es hier per E-Mail anfordern.

Der Zugang zur Reseller Only!-Community ist registrierten Fachhändlern, Systemhäusern und Dienstleistern vorbehalten.

Registrieren Sie sich hier, um Zugang zu diesem Bereich zu beantragen. Die Freigabe Ihres Zugangs erfolgt nach Prüfung Ihrer Anmeldung durch die Redaktion.

27.04.1990 - 

Ein kommerzielles Betriebssystem darf nicht abstürzen

Die Sicherheit von Unix ist nicht nur eine Softwarefrage

On-line-Computerei ist wie Zirkus: The show must go on. Egal, ob das Seil reißt, Hauptdarsteller ausfallen, oder - computertechnisch gesehen - Daten aus den Bussen fallen: Der Bildschirm muß hell bleiben, die Masken müssen stimmen, und die Daten müssen weiter fließen, als sei nichts passiert. Auf dieses spezielle Show-Geschäft haben sich einige große Computerhersteller spezialisiert.

Inzwischen aber ist Fehlertoleranz keine Show mehr, kein seltener Sonderfall. Immer mehr wird sie zum unabdingbaren und durchaus erschwinglichen Standard in der Datenverarbeitung. Dies gilt seit Anfang 1990 auch für Unix.

Das Unix-Betriebssystem, auf zahlreichen Rechnern aller Preis- und Geschwindigkeitsklassen implementiert, verspricht ein Standard zu werden, auf dem Software für jeden Bedarf läuft. Anwendungen aller Art sowohl für Industrie, Handel und Bankwesen als auch für die Telekommunikation sind vielfach im Einsatz. Vorteile von Unix sind die leichte Übertragbarkeit der Programme von einem Unix-System auf das andere und zunehmend auch die Tatsache, daß sich immer mehr Hersteller wie Anwender mit Unix gut auskennen.

Unix ist ein offenes System. Die Quellcodes der Betriebssystem-Software sind zugänglich, und damit auch seine besonderen Charakteristika: So hat das AT&T-Betriebssystem Unix System V etwa 800 Stellen, an denen ein endgültiger Abbruch der gesamten Bearbeitung erfolgt. Dort läuft das System nicht geregelt aus, so daß sich im Bereich der Peripherie und der Dateien durchaus unkontrollierte Situationen ergeben können. Kurz: Das ursprünglich im Forschungs- und Entwicklungsbereich eingesetzte System stürzt schon mal ab. Früher war das kein Problem - ein Software-Guru behob das Problem durch kleine, kreative Zusatzprogramme, "Patches" (Aufnäher) genannt. Inzwischen aber hat sich Unix zum Standard weiterentwickelt, an dem nicht jeder so einfach drehen darf.

Zu den trivialsten Problemen zählen Stromausfälle. Selbst das beste System kann ein solches Ereignis nicht verhindern; es sollte aber auf diese Möglichkeit vorbereitet sein, damit nicht nachher umfangreiche softwaretechnische Aufräumarbeiten im System nötig werden.

Besonders tückisch verhalten sich hier Datenbanken. Inkonsistenzen zeigen sich oft erst Tage oder Wochen später. Eine komplette Überprüfung aller Daten nach einem Stillstand wäre zu zeitaufwendig und würde die ohnehin ärgerliche Ausfallzeit derart verlängern, daß sich dieses Verfahren von vornherein verbietet. Löcher in der Datenbank dürfen also erst gar nicht entstehen.

Aber auch die Hardware arbeitet nicht immer einwandfrei: Gelegentlich streiken auch die verläßlichsten Einschübe, VentiIatoren drehen nicht mehr richtig, Speicher werden durch die überall vorhandene kosmische Strahlung - eine durchaus nicht als Witz zu verstehende Tatsache - bitweise verändert. Je mehr Speicher zur Verfügung steht, desto wahrscheinlicher sind Manipulationen. Selbst normale Wartungsaufgaben führen dazu, daß Teile eines Systems zeitweise gewollt oder ungewollt außer Betrieb gesetzt werden.

Versicherungen mildern nur die Folgeschäden

Bei all diesen Stolpersteinen darf das Gesamtsystem nicht insgesamt ausfallen: Hardware-Ausfallschutz zählt mehr als jede Versicherung, die nur Folgeschäden mildern kann. Ausfallschutz soll von vornherein verhindern, daß das System bei einem Fehler von Einzelkomponenten havariert. Es darf nicht eine einzige Terminal- oder Datenkommunikations-Leitung oder auch nur eine einzige Magnetplatten-Einheit totgeschaltet sein. Um das zu erreichen, genügt bereits der Schutz vor Einzelfehlern, so wie seit der Einführung von Zweikreisbremsen im Automobilbau nicht mehr nach einem dritten Bremskreis gerufen wurde.

Statistisch gesehen heißt das, daß beim Einbau eines einfachen Ausfallschutzes mit 99prozentiger Sicherheit erst in 99 mal 99 Fällen ein doppelter und somit totaler Ausfall zu erwarten ist. Wenn also bisher in 99 Tagen statistisch nur ein Ausfall vorkam, so kommt bei der doppelten Sicherung nur ein Fehler auf 9800 Fälle oder auf 27 Jahre. Bis dahin ist man diesen pausenlos arbeitenden Computer sicher schon aus anderen Gründen leid geworden...

Wie erzielt man nun Ausfallschutz für ein System, das wie bei Unix nicht im Betriebssystem-Kern verändert werden darf?

Erste Versuche für fehlertolerante Unix-Varianten gingen in der Tat davon aus, daß das Betriebssystem speziell auf den Fall hin umgeschrieben werden muß, daß es unerwartet stehen bleibt, weil die Hardware darunter nicht mehr arbeitet. Theoretisch ist so eine Vorsorge möglich. Praktisch wäre dafür ein sehr spezielles Betriebssystem erforderlich, das bei jedem Fortschritt des Unix-Standards mühsam fortgeschrieben werden müßte. Außerdem fiele dann der Hauptvorteil von Unix weg, nämlich von der Betriebssystem-Variante einer einzigen Firma unabhängig zu bleiben.

Besser als Fehlertoleranz durch Software ist fehlertolerante Hardware. Es erscheint unsinnig, die zentrale Unix-Software so umzubauen, daß sie sich andauernd selbst zu prüfen versucht, ob sie überhaupt noch läuft.

Bei der Hardware-Fehlertoleranz werden wie in Raumfähren, Mondgleitern und Kernkraftwerken dieselben Aufgaben mehreren Rechnern zugleich übergeben. Sind es bei Raumfähren fünf Systeme, so reichen für den kommerziellen Einsatz drei. Dieses Verfahren ist durch die Nutzung von hoch integrierten Bauteilen, zum Beispiel von "reduced instruction set computer", sogenannten RlSC-Rechnern, durchaus preiswert, zumal für den kommerziellen Einsatz nur einfache Sicherheit angestrebt wird.

Als Herzstück fehlertoleranter Hardware fungieren dabei drei Rechner, die "dreifach redundant" arbeiten. Sie bearbeiten denselben Instruktionsstrom. Am Ende wird zu dritt abgestimmt, wer recht hat: Hat ein Rechner ein abweichendes Ergebnis oder bleibt ein Ergebnis aus, so kommen die Resultate der anderen zwei Computer zum Tragen, und der fehlerhafte Rechner wird bis zu seiner Reparatur oder Rehabilitierung weggeschaltet.

Dieses einfache Verfahren von Hardwareredundanz ist zwar einigermaßen preiswert, kann aber - falsch angewandt - sehr viel Rechenzeit kosten. Bei enger Koppelung arbeiten diese Rechenwerke von außen fremdgetaktet (lock step modus): Dazu muß ein eigener Taktgeber da sein, der übrigens seinerseits ein kritisches, nicht-redundantes und damit gefährliches Element des Systems darstellt. Außerdem muß dieser Taktgeber sich nicht nur auf die kleinste gemeinsame Geschwindigkeit der Rechenwerke einstellen, sondern darüber hinaus warten, bis jedesmal die Vergleichsprüfung abgelaufen ist.

Die neueste Technik für Hardware-Fehlertoleranz nutzt deshalb die lose Koppelung dreifach redundanter Prozessoren. Bei dieser Koppelungsweise laufen die drei Rechner mit ihrer selbst getakteten vollen Geschwindigkeit und ein Vergleich der Ergebnisse, der ja immer zusätzliche Zeit kostet, wird nur dann gemacht, wenn Daten aus diesem geschlossenen System hinausfließen müssen. Die Vergleichselektronik, "Voter" genannt, ist sicherheitshalber doppelt vorhanden.

Damit aber nicht allzuviel "gewählt" wird, sind die einzelnen Prozessoren mit reichlich Eigenspeicher versehen, so daß eine möglichst lange Verweildauer im Einzelrechner erzielt wird. Unnötig anzumerken, daß diese eigenen Speicher die Rechengeschwindigkeit von sich aus besonders erhöhen, denn je länger der Rechner ohne Ein- oder Ausgabe ungestört arbeiten kann, desto effizienter rechnet er. Vergleichsmessungen haben erwiesen, daß der Aufwand für das Wählen und für die gespiegelten Speicher weniger als fünf Prozent der Gesamtleistung des Systems verbraucht.

Das 1990 kommerziell angekündigte Verfahren lose gekoppelter dreifacher Redundanz für Unix-Systeme, patentiert und auf Basis schneller RISC-Prozessoren, zählt zum aktuellsten Stand der Technik. Es bringt fehlertolerante Hochleistung in die Unix-Welt.

Sogar die Systemwartung und -reparatur kann und wird am laufenden System ausgeführt. Alle Teile sind vom Benutzer selbst ohne spezielle Werkzeuge unter Last austauschbar, was einer besonderen Sicherheitsprüfung bedurfte. Die Einschübe schützen sich selbst beim Ein- und Ausbau vor fremdinduzierten Fehlern wie Spannungsstößen. Dafür wurden die Masseverbindungen im Stecker etwas länger ausgeführt, so daß sie beim Austausch zuerst mit dem System in Kontakt kommen und es so sicher vor elektrostatischen Einflüssen schützen.

Doch ein fehlertolerantes Gesamtsystem besteht aus mehr als nur geschickt zusammengebauten Rechnern. Alle internen Datenverbindungen müssen paritätsgesichert werden - inklusive des bei Unix standardisierten VME-Busses. Ventilatoren, Lüfter und die schon erwähnten Voter müssen doppelt vorhanden sein.

Die Stromversorgung erfolgt über mehrere Netzteile, die auch beim Ausfall eines einzelnen die Versorgung unterbrechungslos aufrechterhalten. Auch das ist nicht viel teurer, als wenn ein großes Netzteil eingesetzt werden müßte. Plattendaten, die nicht nur für kurze Momente im System sind, werden "gespiegelt" auf getrennten Laufwerken gespeichert. Kurzzeit-Informationen kommen bei Stromausfall auf eine besonders akkumulatorgepufferte Platte. Dann kann das System, wenn der Strom wiederkommt, nach einer kurzen Selbsttestphase an genau derselben Stelle weiterarbeiten, wo es beim Stromausfall aussetzte.

In der Betriebssystem-Software, dem Standard-Unix, mußten alle Stellen sorgsam verstopft werden, an denen eine nicht auf fehlertoleranter Hardware laufende Version "das Handtuch wirft": Das um diese Stellen erweiterte Unix-Betriebssystem versucht, in allen Zustandslagen weiterzulaufen, und gibt erst auf, wenn "alle Stricke reißen" - dann aber in geordnetem Rückzug.