Hochverfügbarkeit im Detail, Teil 1

Technische Grundlagen fehlertoleranter Server

26. Februar 2009, 23:56 Uhr | Ulrich Lenz/jos Ulrich Lenz ist Senior Consultant bei Stratus Technologies in Eschborn.

Fehlertolerante Server erreichen mit redundanten Standardkomponenten heute eine Verfügbarkeit von über 99,999 Prozent. Technisch wird dies unter anderem durch Lock-Stepping und replizierte PCI-Schnittstellen realisiert. Der erste Teil des Artikels behandelt die Anforderungen an fehlertolerante Systeme sowie das Konzept des Lock-Steppings.

Der Bedarf an Hochverfügbarkeitslösungen in der IT wächst seit Jahren. Je mehr die Unternehmen
von der IT abhängig sind, je mehr die Geschäftsprozesse ineinander verzahnt sind, desto stärker ist
die Notwendigkeit, dass die Systeme kontinuierlich zur Verfügung stehen müssen. Dazu kommen
innerbetriebliche Vorgaben zur Qualitätssicherung und gesetzliche Vorschriften, beispielsweise zur
Produkthaftung, die eine hohe Verfügbarkeit der IT unverzichtbar machen.

Die Server-Hardware hat mittlerweile ein sehr hohes Niveau an Zuverlässigkeit erreicht. In der
Praxis fallen die Systeme der etablierten Hersteller nur selten aus. Für wirklich
unternehmenskritische Aufgaben ist allerdings auch "selten" nicht ausreichend. In diesem Fall ist
kontinuierliche Verfügbarkeit verlangt, weil auch kurzzeitige Betriebsunterbrechungen hohe Kosten
verursachen können. Die IT bietet heute mehrere Techniken an, mit denen sich die Verfügbarkeit von
Servern steigern lässt – in unterschiedlichem Maße.

Bei Standby-Systemen übernehmen im Störungsfall redundante Systeme die Prozesse. Dabei sind
Ausfallzeiten durch Umschalten und Übergabe unvermeidlich, die Konsistenz von Daten und
Transaktionen muss separat sichergestellt sein. Standby-Systeme erreichen eine Verfügbarkeit von
99,5 bis 99,9 Prozent, was einer ungeplanten Downtime von bis zu 8,7 Stunden pro Jahr
entspricht.

In Cluster-Systemen sorgt beim Ausfall eines Rechners spezielle Software für ein Umschalten zu
einem anderen Rechner. Auch hier kommt es durch das Umschalten zu kurzen Ausfallzeiten und
womöglich zum Verlust offener Transaktionen. Cluster-Systeme erreichen eine Verfügbarkeit von 99,95
bis 99,99 Prozent, was pro Jahr einer ungeplanten Downtime von bis zu vier Stunden entspricht.

Bei fehlertoleranten Systemen sind sämtliche Komponenten des Servers redundant ausgelegt, sodass
alle Prozesse parallel laufen. Im Störungsfall muss daher nicht umgeschaltet werden, es geht also
keine Zeit durch den Wechsel auf funktionierende Komponenten verloren. Die Verfügbarkeit lässt sich
mit fehlertoleranten Systemen auf 99,999 bis 99,9999 Prozent steigern. Die jährliche ungeplante
Downtime liegt hier unter fünf Minuten und damit noch unter den mit Mainframes erreichbaren
Werten.

Bei fehlertoleranten Server-Systemen handelt es sich nicht um eine technische
Machbarkeitsstudie, sondern um ein kommerzielles Produkt. Es ging bei der Realisierung dieser
Systeme nicht allein um eine hohe Verfügbarkeit, es waren beim Design des Produktes durch den
Hersteller (in diesem Fall Stratus) auch eine Reihe von Rahmenbedingungen einzuhalten, die an
einigen Punkten das technisch Machbare zugunsten des wirtschaftlich Sinnvollen eingrenzen. Folgende
Ziele wurden beim Design dieser Server verfolgt:

Verfügbarkeit von Hardware und Betriebssystem von mehr als 99,999 Prozent,

keine Betriebsunterbrechung bei einzeln auftretenden Fehlern in
Hardwarekomponenten (kein Single Point of Failure),

Teiletausch im laufenden Betrieb ohne Unterbrechung der Anwendungen und mit
möglichst geringer Beeinträchtigung der Performance,

weitestgehender Online-Upgrade von Firmware und Betriebssystemkomponenten,

Flexibilität zur Nutzung neuer Techniken,

Single Server Image, es wird also nur ein Betriebsystem installiert und
verwaltet, und

Verwendung von Standardkomponenten.

Der letzte Punkt ist von besonderer Bedeutung, denn proprietäre Hochverfügbarkeitslösungen sind
schon länger auf Markt. Sie haben neben einem hohen Anschaffungspreis allerdings den
schwerwiegenden Nachteil, dass sie spezielle Software benötigen, die auf das proprietäre
Betriebssystem abgestimmt ist. Dies verteuert die Lösungen zusätzlich und macht ihren Einsatz in
weiten Bereichen wirtschaftlich unmöglich. Diese Systeme sind daher Spezialaufgaben
vorbehalten.

Für die wachsende Zahl von unternehmenskritischen Aufgaben sind heute jedoch Server nötig, die
durch die Verwendung von Standardkomponenten erschwinglich sind, die aber dennoch kontinuierlich
Hochverfügbarkeit bieten, also Verfügbarkeit von über 99,999 Prozent. Unter Standardkomponenten
fällt etwa:

eine im Markt verbreitete Prozessortechnik mit den zugehörigen Chipsätzen,

State-of-the-Art-Bus- und Memory-Technik, wie USB, PCI und DIMM,

Standard-PCI-Adapter und Standard Disk-Technik wie SCSI, SATA und SAS
sowie

Standard-Server-Betriebssysteme ohne Modifikationen und mit Unterstützung von
Binärkompatibilität für alle Softwareanwendungen, die auf dem jeweiligen Betriebssystem aufsetzen,
die also hardwareunabhängig sind.

Unter diesen Prämissen haben Hersteller wie zum Beispiel Stratus ein Server-Design entwickelt,
das in diesem Fall bis in die vierte Gerätegeneration im Wesentlichen Bestand hat. Wobei natürlich
technische Weiterentwicklungen der Standardkomponenten in die jeweilige Rechnergeneration eingehen.
Im Folgenden ist vereinfacht dargestellt, mit welchen Mitteln fehlertolerante Server diese hohe
Verfügbarkeit realisieren.

Hardwareredundanz

Das Grundprinzip der Hardwareredundanz lässt sich kurz so darstellen: Man verdopple alle
wesentlichen Komponenten, synchronisiere den parallelen Datenfluss durch diese Komponenten und
schalte sie an Datenein- und -ausgängen über eine Vergleichslogik zusammen. Datenströme mit
gleichen Inhalten kennzeichnen dann intakte Bauteile, Abweichungen im Datenstrom deuten auf
Fehlfunktion von Komponenten hin.

Ein Stratus-Ft-Server-System kann man sich zunächst einmal als zwei unabhängige, in sich autarke
Rechner vorstellen, die mit einem zweigeteilten, aber gemeinsamen PCI-Bus über die Vergleichslogik
gekoppelt sind. Beide Systeme befinden sich aber nicht nur in einem Gehäuse, sondern verhalten sich
vor allem nach außen wie ein Rechner. Es trifft die Sache also besser, wenn man von einem Rechner
spricht, der zwei Hälften hat. Jede Rechnerhälfte sieht alle PCI-Devices. Die Grundüberlegung zu
diesem Ansatz resultiert aus der Forderung nach Standardkomponenten: Es kann so weitestgehend auf
ein für den jeweiligen Prozessortyp entwickeltes Motherboard zurückgegriffen werden. Über den
Standard hinaus gehen nur die Verbindung zwischen den beiden Rechnerhälften und die
Vergleichslogik. Im Ft-Server ist dies durch einen von Stratus entwickelten zusätzlichen
ASIC-Baustein realisiert, der ebenfalls redundant vorhanden ist.

Die Synchronisation der Prozessoren und Hauptspeicher zwischen den beiden Motherboards lässt
sich durch das so genannte Lock-Stepping-Verfahren erreichen. Es sorgt dafür, dass sich die
Komponenten zum gleichen Zeitpunkt immer im gleichen Zustand befinden. Dabei ist es natürlich sehr
wichtig, dass die beiden Rechnerhälften im Ausgangszustand vollständig übereinstimmen, denn erst
dann kann das Lock-Stepping greifen. Dies wird durch besondere Vorkehrungen im Boot-Vorgang sicher
gestellt:

1. Zunächst wird eine Seite des Rechners gebootet, während die zweite Seite in einem
Wartezustand ohne jegliche Aktivität bleibt. Der erste Schritt nach dem Power-on ist ein
Selbsttest. Wenn dieser Test erfolgreich war, wird auf die erste verfügbare Betriebssystemplatte
zugegriffen und ein normaler Boot-Vorgang des Betriebssystems durchgeführt. Sobald die erste Seite
komplett – also inklusive Betriebssystem – hochgefahren ist, übergibt die Vergleichslogik eine
Nachricht an einen Betriebssystemtreiber darüber, dass Seite 1 im Simplex-Zustand ist und Seite 2
auf Inbetriebnahme wartet (Removed from Service).

Diagnostics

2. Der Treiber stößt nun die Inbetriebnahme an, indem ein Selbsttest des zweiten Boards
gestartet wird (Diagnostics). Falls es Beanstandungen gibt, wiederholt sich der Test und ein
Fehlerzähler erhöht sich. Bei Erreichen einer maximalen Anzahl von Fehlversuchen erklärt das System
das Board für defekt (broken).

3. Ist der Test erfolgreich, prüft das System, ob die Firmware-Versionen auf beiden Motherboards
übereinstimmen. Dies ist im Normalfall gegeben, zum Beispiel nach einem Neustart nach vorherigem
Shutdown. Im Falle eines Board-Tausches aufgrund eines Hardwarefehlers könnte es jedoch sein, dass
das neue Board mit neuerer Firmware ausgestattet ist als das noch in Betrieb befindliche. Um nach
der Reparatur den gleichen Zustand wie vor der Reparatur zu erhalten, wird bei abweichenden
Firmware-Ständen die Firmware-Version des laufenden Motherboards auf das neue Board überspielt
(Initializing). Es erfolgt de facto ein Firmware-Downgrade.

Synchronizing

4. Anschließend überträgt das System im nächsten Schritt den Hauptspeicherinhalt der ersten
Seite in den Speicher der zweiten Seite (Synchronizing). Diese Übertragung findet im laufenden
Betrieb, also ohne Unterbrechung und Beeinträchtigung schon laufender Programme statt.

5. Nach kompletter Übertragung des Hauptspeicherinhalts gehen auf beiden Motherboards die
Prozessoren in einen identischen Anfangszustand über, und die Verarbeitung beginnt wieder. Ab
diesem Zeitpunkt laufen beide Motherboards im Duplex-Betrieb, also im Lock-Stepping-Modus.

Wie fehlertolerante Server die replizierten PCI-Schnittstellen verwalten, ist Gegenstand von
Teil 2 des Artikels in einer der kommenden LANline-Ausgaben.


Lesen Sie mehr zum Thema


Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Lampertz GmbH & Co. KG

Matchmaker+