Technische Grundlagen fehlertoleranter Server

Hochverfügbarkeit im Detail

16. März 2012, 7:00 Uhr | Ulrich Lenz/jos, Senior Consultant bei Stratus Technologies.

Fehlertolerante Server erreichen durch die Verwendung redundanter Standardkomponenten eine sehr hohe Verfügbarkeit. Technisch ist dies zum Beispiel durch Lock-Stepping und replizierte PCI-Schnittstellen realisiert.

Einen fehlertoleranten Server 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 jedoch nicht nur in einem Gehäuse, sondern verhalten sich vor allem nach außen wie ein einziger 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.
 
Eine Grundvoraussetzung für die Realisierung hoher Verfügbarkeit ist, dass der Betrieb der Parallelkomponenten absolut synchron läuft. Dies wird durch die Technik des Lock-Steppings erreicht. Die andere wichtige Technik ist eine spezielle I/O-Software, die replizierte PCI-Schnittstellen verwaltet und den unterbrechungsfreien Systembetrieb gewährleistet, falls eine E/A-Schnittstelle ausfallen sollte. 
 
Lock-Stepping lässt sich jedoch nicht vollständig auf den I/O-Bereich übertragen. Nicht jedes I/O-Protokoll bietet die Voraussetzungen für ein Lock-Stepping, sodass man auf PCI-Adapter zurückgreifen müsste, die zwar etwas Ähnliches wie das Lock-Stepping unterstützen, die dann aber zu weit weg von den Marktstandards wären. Damit würde man letztlich eine proprietäre Lösung aufbauen. Um dies zu vermeiden, hat Stratus für seine fehlertoleranten Server im I/O-Bereich eine Redundanz in Abhängigkeit von den Möglichkeiten des I/O-Protokolls realisiert. Dabei sind für Server vier wichtige Klassen von I/O-Protokollen zu berücksichtigen:
 
Disk- oder allgemeine Disk-Storage-Zugriffe,
 
Ethernet-LAN,
 
VGA, USB, COM und
 
sonstige asynchrone und synchrone Protokolle.
 
Wieder ist der Boot-Prozess von großer Bedeutung, da er sichergestellt, dass die redundanten Komponenten am Ausgangspunkt synchron sind. Analog zum Booten des CPU-Hauptspeichers lassen sich die Boot-Phasen im I/O-Bereich in den folgenden sechs Schritten darstellen.
 
1. Der halbe PCI-Bus auf der bootenden CPU-Seite – Stratus spricht auch von I/O-Enclosure, wobei CPU und Hauptspeicher die CPU Enclosure bilden – erhält beim Power-on den Befehl zum Selbsttest. Wenn das Testergebnis negativ ausfällt, schaltet das System automatisch auf das andere Board um und versucht, dieses in Betrieb zu nehmen. Bei erfolgreichem Test des Boards werden alle PCI-Devices einem Test unterzogen. Unter anderem geht es darum, ob die einsteckbaren PCI-Adapter elektrisch dem PCI-Standard entsprechen. Falls nicht, schaltet das System diese Adapter wieder aus, da ein sicheres Arbeiten damit nicht zu gewährleisten ist, und auch die Verfügbarkeit nachhaltig beeinträchtigt wäre. Aus Verfügbarkeitsgründen sollten nur zertifizierte PCI-Adapter zum Einsatz kommen. Negativ getestete PCI-Devices deklariert das System als defekt (broken).
 
2. Sobald das Board in Betrieb ist (Simplex), kann die CPU auf die Boot-Platte zugreifen. Nun kann es sein, dass aufgrund von Hardware-Fehlern keine Boot-Platte zu finden ist. Diesen Zustand fängt ein Timer ab, der nach einem vorgegebenen Intervall und bei nicht laufendem Betriebssystem den Boot-Vorgang mit dem anderen I/O-Enclosure initiiert (Fault Resilient Boot).
 
3. Sobald das Betriebssystem läuft, stellt ein Maintenance- und Diagnostic-Treiber fest, dass das I/O-Enclosure im Simplex-Betrieb ist, und stößt die Inbetriebnahme des zweiten Enclosures an. Es findet zunächst der obligatorische Selbsttest statt, bei dem die Prüfung des Boards und dann der PCI-Devices erfolgt.
 
4. Nach erfolgreichem Board-Test findet der Firmware-Abgleich des I/O-Boards – nicht der PCI-Adapter – statt (Initializing). Der Grund dafür ist analog zum CPU-Enclosure. Bezüglich der PCI-Adapter unterstellt die Logik, dass Adapterpaare die gleiche Firmware haben respektive diese vor Produktionsbeginn auf den empfohlenen Stand gebracht wird.
 
5. Sobald die PCI-Devices online sind und die Adaptertreiber gestartet sind (im Folgendem als physische Treiber bezeichnet), lässt sich die Redundanz für PCI-Adapterpaare bewerkstelligen. Dies geschieht über virtuelle Treiber, wobei auch dabei wieder so weit wie möglich auf im Markt verbreitete Produkte zugegriffen wird.
 
6. Erst wenn sich alle PCI-Adapter-Paare im Redundanzzustand befinden, meldet das System das betreffende I/O-Enclosure als Duplex.
 
Vier Protokollklassen
 
Wie ist nun die Redundanz über die virtuellen Treiber in den vier Protokoll-Klassen im Einzelnen realisiert? Interne Platten sind in fehlertoleranten Servern von Stratus über einen SCSI-, SAS- oder SATA-Disk-Controller angeschlossen. Dabei befindet sich je ein Disk-Controller in jedem I/O-Enclosure, den jeweils ein physischer Treiber steuert. Über dem physischen Treibern liegt ein virtueller Treiber, der dem Betriebssystem je zwei physische Platten als eine Platte darstellt. Jede Schreib/Lese-Operation über den virtuellen Treiber wird in zwei parallel, also zeitgleich ausgeführte physische Schreib/Lese-Operationen umgesetzt – ohne Leistungsverlust im Vergleich mit einer einzeln stattfindenden I/O-Operation auf nur einer Platte. Im Prinzip sind also alle internen Platten RAID-1-Platten; das heißt, für sie ist die Datenredundanz gewährleistet.
 
Externe Storage-Systeme verwalten die jeweiligen Management-Programme der Storage-Hersteller, zum Beispiel Powerpath bei EMC-Systemen. Diese Programme bieten eine Lastverteilung über die redundanten Zugriffswege zum externen Speicher und übernehmen bei Störung eines Pfades die Steuerung des Path-Failovers. Für das FT-Server-System ist Redundanz gegeben, wenn beide Pfade einwandfrei nutzbar sind. Wenn die Verbindung zum Storage-System nicht direkt erfolgt, sondern über ein Storage Area Network (SAN), empfiehlt sich der Einsatz von mindestens zwei Switches. Die redundante Speicherung obliegt dem SAN selbst. Es muss also sichergestellt sein, dass die für das Betriebssystem sichtbare logische Platte (LUN) auf physisch redundanten Platten (RAID 1, RAID 5 etc.) gespeichert ist und dass der Ausfall einer einzelnen physischen Platte nicht zu Datenverlusten führt.
 
Im Bereich des Local Area Netzworks findet marktgängige Teaming-Software Verwendung. Die Onboard-PCI-LAN-Adapter sind Intel-basierend, daher kommt auch Intel Pro Teaming für Windows zum Einsatz, unter Linux wird die Bonding-Funktion zur Teambildung genutzt. Standardmäßig erzeugt das System so genannte Fault Tolerant Teams (AFT), die je zwei oder mehrere physische Ethernet-Ports zu einem logischen Team – einem virtuellen Adapter – zusammenbinden. In einem AFT-Team haben alle Partner die gleiche MAC-Adresse und die gleiche IP-Adresse. Ein Port ist der primäre, also der sendende und empfangende Port, der andere ist nur empfangend.
 
Das System sendet also immer zwei Datenströme von den CPUs über die PCI-Busse zu jeweils einem virtuellen Adapter, der einen Datenstrom ins Netzwerk weitergibt. Empfangen – und damit für die Redundanzkontrolle im virtuellen Adapter wichtig – werden aber zwei Datenströme. Fällt nun der Weg über den primären Adapter aus, übergibt die Teaming-Software sie an den sekundären Adapter. Ist das Netzwerk selbst redundant ausgelegt (mittels Switch Fault Toleranz – SFT), lässt sich dies ebenfalls mit der Teaming-Software abbilden.
 
Die dritte Protokollklasse betrifft Anschlüsse zu nicht redundanten Endgeräten wie Maus, Tastatur, Bildschirm oder Modem. Die entsprechenden PCI-Adapter für VGA, USB und COM sind in den I/O-Enclosures enthalten, jedoch ist nur ein I/O-Enclosure über die Backplane elektrisch mit dem jeweiligen Anschluss verbunden. Fällt nun dieses I/O-Enclosure aus oder geht außer Betrieb, findet eine Umschaltung der Ausgänge auf das andere I/O-Enclosure statt. Die Umschaltung selbst erfolgt im I/O-Enclosure. Dabei wird der Videodatenstrom über einen virtuellen Treiber parallel zu beiden VGA-Adaptern gesandt, sodass sich beim Umschalten ein angeschlossener Bildschirm kurz mit dem neuen Video-Signal synchronisieren muss.
 
Die COM-Schnittstelle ist seitens der Applikation neu aufzusetzen, da sich keine redundanten Informationen im COM-Controller befinden. Dies ist zum Beispiel in der Call-Home-Funktion des Ft-Server-Systems realisiert, sodass mithilfe eines Modems jederzeit kritische Störmeldungen an den Support des Herstellers gehen können. Maus und Tastatur nutzen die Hot-Plug-Fähigkeit des USB-Protokolls. Fällt das I/O-Enclosure mit dem USB-Zugang aus und erfolgt die Umschaltung des USB-Busses auf das andere I/O-Enclosure, beginnt ein Rescan des USB-Busses, und das System erkennt neue USB-Devices.
 
Diese Vorgehensweise ist sicher, soweit nur Eingabe-Devices wie Maus und Tastatur betroffen sind. USB-Disks und USB-Memory-Sticks könnten jedoch beim Umschalten der Enclosures Datenverluste erleiden und unter Umständen das Betriebssystem zum Crash veranlassen. Allerdings passen Memory-Sticks aus grundsätzlichen Überlegungen ohnehin nicht in das Hochverfügbarkeitskonzept.
 
Für die vierte Klasse von I/O-Protokollen gibt es derzeit (noch) keine redundanten Treiber und Verfahren. Wenn zum Beispiel der Bedarf an vielen asynchronen COM-Schnittstellen besteht und gleichzeitig rechnerseitig Redundanz gefordert ist, empfiehlt sich der Einsatz von Protokollkonvertern, die ein Ethernet-to-Async ermöglichen.
 
Gehärtete Treiber
 
Die in diesen Prozessen verwendeten Treiber müssen sehr hohen Anforderungen genügen. Bevor beispielsweise Treiber von Stratus für die Ft-Server-Systeme freigegeben werden, durchlaufen sie einem sehr strengen Test – und im Negativfall erfolgt eine Analyse und der jeweilige Anbieter muss für die Behebung des Problems sorgen. Dieser Prozess heißt Driver Hardening, die Treiber als gehärtete Treiber.
 
Neben der Stabilität steht dabei auch die Hot-Plug-Fähigkeit der Treiber zum Test an, denn es muss jederzeit möglich sein, eine komplette I/O-Einheit ohne Ankündigung an das Betriebssystem aus dem Betrieb zu nehmen (Surprisal Removal). Des Weiteren muss ein Treiber bestimmte WMI-Nachrichten liefern, die für das Monitoring und Management der PCI-Adapter erforderlich sind, beispielsweise LED-Zustandsanzeige für Simplex, Duplex oder Broken.

Die Lockstep-Technik kontrolliert die Komponenten des Servers. Für den Benutzer erscheint das System als Black Box.

Kompakte Hochverfügbarkeit. Der fehlertolerante Ft-Server 6200 von Stratus.
server.jpg">

Bei den voll redundant ausgelegten fehlertoleranten Systemen kann der Austausch von Komponenten während des Betriebs erfolgen.
LANline.

Lesen Sie mehr zum Thema


Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Lacie

Weitere Artikel zu Vodafone D2 GmbH

Matchmaker+