Helmut Montsch
TINF
1) Hochverfügbarkeitssysteme......................................................................................................................................... 3
2) Basisverfügbarkeit............................................................................................................................................................... 5
3) Systemverfügbarkeit........................................................................................................................................................... 5
3.1)
ECC, EDC (Error Correction Code, Error Detection and Correction)............................................. 5
3.2)
Memory Scrubbing........................................................................................................................................................ 5
3.3)
PDA (Prefailure Detection and Analysing)................................................................................................... 6
3.4) ASR&R (Automatic Server
Reconfiguration & Restart)....................................................................... 6
3.5) Redundante Komponenten...................................................................................................................................... 6
3.6) Hot Plug Funkionalitäten...................................................................................................................................... 6
4) Datenverfügbarkeit............................................................................................................................................................. 6
4.1) Datensicherung.............................................................................................................................................................. 6
4.1) Raid-Systeme..................................................................................................................................................................... 7
5) Anwendungsverfügbarkeit............................................................................................................................................. 7
5.1) Server-Clustering.......................................................................................................................................................... 9
5.1.1) Serverredundanz
durch Failover Server................................................................................................................. 9
5.1.2)
Server-/Applikations-Redundanz durch Server-Cluster.................................................................................... 10
5.1.2.1) Microsoft Cluster Server für Windows
NT............................................................................................................ 10
5.1.2.2) Oracle Parallel Server (OPS)................................................................................................................................... 12
6) ANHANG.......................................................................................................................................................................................... 14
6.1) Fehlererkennende und Fehlerkorrigierende
Codes.............................................................................. 14
6.1.1) Paritätsbit................................................................................................................................................................... 14
6.1.2) Prüfsummen................................................................................................................................................................. 14
6.1.3) CRC - Prüfsumme....................................................................................................................................................... 15
6.1.3.1) Generatorpolynome in internationalen
Standards................................................................................................... 17
6.1.4) Hamming-Code, ECC
– EDC (Error Checking - Detection and Correction)................................................ 17
6.1.4.1) Hamming Code -
Bildung und Decodierung............................................................................................................ 18
6.2) RAID – Begriffe................................................................................................................................................................ 21
6.2.1) Disk – Spanning
(Zusammenfassung)................................................................................................................... 21
6.2.2 Disk – Mirroring
(Spiegelung)................................................................................................................................ 21
6.2.3) Disk – Duplexing
(Duplizierung)........................................................................................................................... 21
6.2.4) Disk – Stripping......................................................................................................................................................... 21
6.2.5) RAID-LEVEL-0 (Non-Redundant Striped
Array)................................................................................................ 22
6.2.6) RAID-Level-1 (Mirrored Array).............................................................................................................................. 22
6.2.7) RAID-Level-2 (Hamming Code).............................................................................................................................. 22
6.2.8) Paritätsprüfung
durch XOR-Verknüpfung............................................................................................................ 22
6.2.9) RAID-Level-3 (Single Check Disk)........................................................................................................................ 22
6.2.10) RAID-Level-4 (Parallel Array with
Parity)........................................................................................................ 22
6.2.10) RAID-Level-5 (Stripped Array with
Rotating Parity)...................................................................................... 22
6.2.11) RAID-LEVEL im
Überblick:................................................................................................................................... 22
Ausfallzeit ist sehr teuer. Höchste Verfügbarkeit heißt: Ein System fängt unvorhergesehene Ausfälle von Komponenten unterbrechungsfrei ab oder steht nach einem Fehler in kürzester Zeit wieder zur Verfügung. Geplante Unterbrechungen des Systems werden durch den Einsatz von Ersatzsystemen für den Benutzer nicht spürbar und haben keine nachhaltige Auswirkung auf den Geschäftsbetrieb. Gerade in der Leistungsklasse der Netzwerk- und Datenbankserver besteht die Forderung nach Flexibilität, Leistungsfähigkeit, Skalier- und vor allem hoher Verfügbarkeit (HV). Studien der International Data Corp. (IDC), USA, ergaben durchschnittliche Kosten in Höhe von 78.000 $ pro Stunde Ausfallzeit für einen mittleren Betrieb. Man rechne nur die verlorene Arbeitsleistung der wartenden Mitarbeiter. In sogenannten geschäftskritischen Anwendungen (mission critical applications), wie z. b. Geldtransaktionen bei Finanzinstituten oder Flugbuchungen bei Reiseanbietern kostet eine Stunde Arbeitsunterbrechung oft eine Million $ und mehr.
Eine Studie in Deutschland von Contingency Planning Research Inc. ergab folgende finanzielle Auswirkung im deutschen Geschäftsbereich:
Branche |
Geschäftsoperation |
Durchschnittl. Finanzielle Auswirkungen pro Stunde |
Verkehr |
Flugticket-Reservierung |
ca. 254.000 DM |
Fianzen |
Börsenhandel |
ca. 12.255.000 DM |
Telekom |
Aktivierung von Mobilfunktelefonen |
ca. 114.000 DM |
Unterhaltung |
Ticketverkauf per Telefon |
ca. 131.000 DM |
Bei Ausfall der IT-Unterstützung ergaben sich folgende Werte für die Überlebensfähigkeit von Unternehmen:
Branche |
Tage |
Banken |
2 |
Industrie |
5 |
Versicherungen |
5,5 |
Handel |
2,5 |
Ein kleines Praxisbeispiel soll zeigen, welche Auswirkungen Systemstillstände von EDV-Systemen haben können:
Je sensibler die Kunden-Lieferanten-Beziehung desto wichtiger wird die ständige Verfügbarkeit der Informationstechnik. Besonders deutlich wird dies am Beispiel der Automobilzulieferindustrie. Die Unternehmer dieser Branche unterhalten eine sehr enge Beziehung zu ihren Kunden. Außer attraktiven Preisen und hoher Funktionalität der Produkte erwarten die großen Automobilhersteller von ihren Zulieferbetrieben „Just-in.time“-Lieferung und die laufende Qualitätssicherung.
Der Geschäftserfolg der Automobilzulieferer steht und fällt mit der Verfügbarkeit ihrer Informationssysteme, denn ihre Produktionsplanung und –steuerung ist Teil des Herstellprozesses ihrer Kunden.
Besonders wichtig für die Geschäftsbeziehung ist die Liefertreue. Oftmals bleibt zwischen Auftrag und Lieferung weniger als ein Tag. Im harten Wettbewerb der Zulieferindustrie kann ein Ausfall der Informationstechnik aufgrund hoher Konventionalstrafen und drohendem Auftragsverlust bei Verspätungen schnell zur Existenzfrage werden.
Die Hochverfügbarkeit baut auf vier Stufen auf:
v Die Basisverfügbarkeit wird durch den
Qalitätsstandard der Serverprodukte gegeben. Die Fertigungsprozesse müssen die
strengen ISO 9001-Richtliniern erfüllen. Das heißt für Hersteller, daß alle
Komponenten auch die zugekauften Komponenten den Qualitätsansprüchen der Norm
entsprechnen müssen.
Daraus ergibt sich eine Standardverfügbarkeit von 99%, die normalerweise jedes
System ohne zusätzliche Kosten liefern muß. Hochgerechnet bedeutet das, man muß
mit 88 Stunden Stillstand im Jahr rechnen.
v Mittels
zusätzlicher Komponenten und Mechanismen kann die Systemverfügbarkeit erhöht werden:
Ø Batteriegepufferte Speicher und unabhängige unterbrechungsfreie Stromversorgung,
Ø Redundante Prozessoren, Speicher und Controller,
Ø Auch im laufenden Betrieb austauschbare, redundante Netzteile, Lüfter und Magnetplatten.
So erreicht man eine Verfügbarkeit des Gesamtsystems von 99,2 bis 99,6%.
v Durch
weitere Maßnahmen kann man die Datenverfügbarkeit
erhöhen. Zum Beispiel mit Spiegelplatten und RAID-Systemen (Redundant Array of
independant Disks) sowie mit Hilfe von Mechanismen, die das Sichern und
Restaurieren von Daten beschleunigen. So steht noch mehr Rechenzeit für die
produktive Nutzung zur Verfügung (99,6 bis 99.9%).
v Höchste
Verfügbarkeit der gesamten installierten Anwendung bedeutet, daß alle
Komponenten (Hardware, Systemsoftware
und Middleware) optimal aufeinander abgestimmt sein müssen.
Die Sicherung von Cluster, also Server Teams, ist ein wichtige Option zu
Sicherung der Verfügbarkeit. Die Server eines „Fail-over-Clusters“ überwachen
sich permanent gegenseitig. Bei einem Ausfall werden angeschlossene
Arbeitsplätze und die Peripherie des betroffenen Servers automatisch auf einen
anderen intakten Server umgeschaltet. Anwendungen und Netzverbindungen laufen
sofort und ebenfalls automatisch wieder neu an. Datenzugriffe sind praktisch
unterbrechungsfrei möglich. Die Anwendungsverfügbarkeit
wird immer ein wichtigeres Kriterium für die EDV-Welt, dies gilt jetzt nicht
mehr nur für das Pendagon sondern auch für Server die im Midrange-Bereich im
Einsatz sind.
Die Basisverfügbarkeit muß wie anfangs schon genannt durch einen hohen Qualitätsstandard gesichert werden. Standardmaßnahmen zur Fehlersicherungen ist Cyclic Redundancy Check. Die für die Prüfsummenbildung erforderlichen Schieberegister und Vergleichsoperationen werden im allgemeinen in der Hardware implementiert.
Zur Grundausstattung für Server mit Systemverfügbarkeit sollten nachfolgende Leistungsmerkmale beinhalten:
EDC ist ein Verfahren, um Speicherfehler in Speichermodulen
zum Zeitpunkt des Auslesens der jeweiligen Speicherzelle zu korrigieren. ECC
ist die dabei verwendete algorithmische Methode. Auftretende Speicherfehler
werden korrigiert.
Der oben beschriebene ECC/EDC-Mechanismus korrigiert
eventuelle Speicherfehler jeweils nur beim direkten Zugriff auf die
betreffenden Speicherzellen. In selten benutzten Bereichen des Hauptspeichers
kann dies dazu führen, daß sich mehrere Bitfehler anhäufen (Akkumulator-Effekt)
und mit ECC/EDC bei einem späteren Speicherzugriff nicht mehr behoben werden
können. Memory Scrubbing ist eine zusätzliche Firmeware-Funktion, die den
gesamten Speicher zyklisch durchsucht und Fehler in den Speichermodulen direkt
berichtigt, unabhängig davon, ob Zugriffe auf diesen Speicherbereich erfolgen,
oder nicht. Die HW-basierte Methode vermeidet einerseits zusätzliche Systembelastung,
andererseits ist die Konsistenz der Hauptspeicher-Dateninhalte auf ein nochmals
höheres Sicherheitsniveau gehoben.
Server sollten einen Fehlerfrüherkennungsmechanismus
besitzen. Dies kann über eigene server-optimierte Firmware realisiert werden.
Diese ist in einem speziellen elektronischen Baustein gekapselt (ASIC). Beispielsweise
mißt eine PDA-Funktion ständig die Leistung der Lüfter und der CMOS-Batterie.
Sollten sich hier Veränderungen andeuten, so kann über eigene Software eine
Vorwarnung erfolgen. Komponenten können vorsorglich ausgetauscht werden, bevor
sie wirklich defekt sind. Zusätzlich sollte PDA über einen Speicher für die
Ablage von Systemfehlermeldungen besitzen, den man mit spezielle Tools auslesen
kann. Dies erleichtert für den Servicetechniker die Fehlersuche
Bei Ausfall einer Komponente (z.B. ein Prozessor im
SMP-System, Speichermodule) wird der Server automatisch neu gestartet und das
defekte Modul aus der Konfiguration ausgeblendet. Der Server ist nach Wiederstart
weiterhin betriebsbereit und setzt seine Arbeit ohne die defekte Komponente
fort.
Redundanz dedeutet, daß von einer Komponente in einem System
mehr eingebaut sind, als im Normalbetrieb benötigt werden. Fällt eine aus, wird
der Betrieb automatisch sofort mit den verbleibenden Elementen weitergeführt.
Redundant sind z.B. die Stromversorgung, das bedeutet, daß selbst in der
Maximalkonfiguration optional eine Stromversorgung mehr in einen Server
eingebaut werden kann als erforderlich und in Problemfällen den Serverbetrieb
aufrecht erhält.
Hot Plug Komponenten können im laufenden Betrieb
ausgetauscht werden. Dieses Verfahren kommt bei den Festplatten und bei den
Stromversorgungen zum Einsatz. Fällt eine Festplatte aus, sind die Daten mit
Hilfe der RAID-Technologie (Datenverfügbarkeit) vor Verlust geschützt. Über das
Servermanagment z.B wird der Systemverantwortliche informiert, welche
Komponente defekt ist. Sie kann dann gegen eine neue ausgewechselt werden, ohne
den Betrieb des Servers zu unterbrechen.
Ungeplante Serverstillstände werden durch den Einbau redundanter Komponenten verhindert,
zusammen mit ihrer Hot Plug Fähigkeit wird eine höhere Gesamtverfügbarkeit des
Servers und somit eine merkliche Steigerung der Produktivität erreicht.
Die Datensicherung wird meist bei kleineren Servern in den Hintergrund geschoben oder ganz außer Acht gelassen. Sie ist aber für einen sicheren Datenbestand unumgänglich Das Datensicherungskonzept sollte so ausgelegt werden, daß auch ein Kunde im Fehlerfall eine Rekonstruktion der Daten, es kann ja auch einmal ein Datenbankfehler auftreten, durchführen kann. Weiters sollte man sich überlegen, wie am schnellsten, wenn im Fehlerfall das ganze System ausfällt, das Operating Sytem eingespielt werden kann. Entsprechende Backup-Software gibt es schon am Markt zum Kaufen. Bei einen NT-Server könnte man z.B. ein Not-NT installieren und mit diesem Not-NT das Produktiv-NT sichern.
Wer im Bereich Datensicherheit auf Leistung und Performance Wert legt, kommt heutzutage am Begriff RAID (Redundant Array of Independant Disks) nicht mehr vorbei. Wie so häufig wird man zunächst einmal mit einer Menge (vielleicht) neuer Begriffe konfrontiert. Es gibt im Grunde genommen vier klassische RAID-Level, die sich aus den Begriffen Stripe-Set und XOR-Verknüpfung herleiten lassen.
Zusätzlich kann bei Verwendung eines RAID-Controllers eine Hot Spare Festplatte (auch als Hot Standby bezeichnet) verwendet werden. Dies ist ein zusätzliches Laufwerk, das der Kontroller beim Ausfall einer anderen Platte automatisch in die RAID-Konfiguration einbindet, mit dem Datenset der ausgefallenen Festplatte beschreibt, zu einem späteren Zeitpunkt kann durch den IT-Service dann ein Austausch erfolgen.
Gehen die Verfügbarkeitsanforderungen über diese Eigenschaften und deren Möglichkeiten hinaus, sind weitergehende Maßnahmen für die Serververfügbarkeit notwendig. Anwender unternehmenskritischer Applikationen, wie MS BackOffice Server, SAP R/3, fordern in vielen Fällen die Redundanz kompletter Server, um die IT-Verfügbarkeit auch bei Ausfall eines gesamten Servers gewährleisten zu können. Hier werden Cluster-konfigurationen eingesetzt, bei denen neben höherer Verfügbarkeit als weiterer Vorteil die gesteigerte Verarbeitungsleistung durch den 2 Server entsteht.
Obige Grafik gibt den grundsätzlichen Aufbau eines Clusters wieder: Clustering stellt die Zusammenfassung meherer, voneinander unabhängiger Server zu einem logischen Gesamtsystem – dem Cluster dar. Nach außen hin verhält es sich wie ein einziger Server. Diese Struktur ist das Cluster, in der Grafik als großes Oval dargestellt. Ein Server innerhalb eines Clusters wird als Knoten bezeichnet. Dabei ist es unerheblich, ob es sich um Ein- oder Mehrprozessorsysteme handelt.
Auch müssen die Knoten innerhalb eines Clusters in Bezug auf Anzahl der CPUs und Speichergröße nicht identisch ausgestattet sein. Durch Server-Cluster wird – über rdundante, online ersetzbare HW-Komponente hinaus – die System- und Applikationsredundanz erreicht. Clustering bildet somit die nächsthöhere Ebene der Maßnahmen für Server-HV.
Die Daten innerhalb des Cluster werden generell in einem gemeinsamen Plattensubsystem mit Zugang für alle Server gehalten. So ist bei einem Serverausfall die Übernahme der Applikationen sowie der erforderliche Zugriff zu den Daten durch den 2 Server möglich. Die erforderliche, gegenseitige „Lebendüberwachung“ bei der Systeme erfolgt über den Server-Interconnect, der zusätzlich zum LAN-Schluß in beiden Servern eine vom allgemeinen Netzwerkverkehr unabhängige Kommunikation zwischen den Knoten ermöglicht (dargestellt durch den Doppelpfeil in obiger Grafik).
Clients im Netzwerk, die eine Applikation nutzen möchten, adressieren nicht mehr einen speziellen Server, sondern die logische Struktur „Cluster“. Dadurch wird erreicht, daß die Anwendungen im Cluster unabhängig von den einzelnen Servern werden. Fällt ein Knoten aus, übernimmt ein anderer dessen Aufgaben, d.h. seine Applikationen und Festplatten. Da die Clients mit dem Cluster verbunden sind, laufen die Anwendungen aus Anwendersicht nach dem Neustart transparent auf dem übernehmenden Knoten weiter.
Clustering bietet vier wesentliche Vorteile:
·
Steigerung der Verfügbarkeit
Durch das Zusammenfassen mehrerer Server steigt die Verfügbarkeit der gesamten
Konfiguration. Bei dem Ausfall eines Servers (ungeplante Ausfallzeit) übernimmt
das verbleibende System dessen Aufgaben solange, bis ersterer wieder zur
Verfügung steht. Diese Eigenschaft von Clustering ist auch dann von großem
Nutzen, wenn wegen geplanten Ausfallzeiten ein Knoten für HW- oder SW-Wartung
aus dem Betrieb genommen werden soll. In diesem Fall werden die relvanten
Anwendungen zeitweilig auf den/die anderen Knoten ausgelagert. Das Gesamtsystem
bleibt dabei weiter verfügbar.
·
Steigerung der Leistungsfähigkeit
Abhängig von der Anzahl der Knoten erhöht sich auch die gesamte Verarbeitungsleistung
eines Clusters. Beide/alle Cluster-Knoten arbeiten jeweil an unterschiedlichen
Applikationen/Services. Nur ein geringer Teil der Verarbeitungsleistung ist für
die Cluster-Koordination erforderlich.
·
Erhöht Flexibilität
Innerhalb des Clusters lassen sich auf den Knoten beliebig Anwendungen
betreiben und Daten oder Services bereitstellen. Dies ist sogar dynamisch
möglich, da je nach Auslastungsgrad des jeweiligen Knotens Anwendungen
administratogesteuert auf weniger belastete Server verlagert werden können.
·
Senkung der TCO (Total Cost of Ownership)
Die Verwendung von Clustering wirkt sich signifikant auf die Reduktion von
Kosten im Unternehmen aus: durch die erhöhte Verfügbarkeit des Gesamtsystems
werden Ausfallzeiten vermieden. Es kommt nicht zu kostenintensiven Stillständen
des ganzen Unternehmens oder von Teilbereichen, was wiederum auf für geplante
Stillstandszeiten eines Servers zutrifft.
Für Clustering exisitiert heute eine Reihe von Lösungswegen. Sie decken nach unterschiedlichen Methoden hauptsächlich die Bedürfnisse nach Hochverfügbarkeit ab. Dabei wird die Unterscheidung getroffen nach:
Grundsätzlich: Bei einer solchen Konfiguration ist von zwei Servern ein System als Primär-Server vorgesehen, der im Produktivbetrieb läuft und die kritischen Anwendungen abarbeitet. Der zweite ist der Sekundär-Server, er überwacht das Primärsystem mittels einer eigenen (LAN-) Verbindung. Wahlweise kann er zusätzlich auch – weniger kritische – Anwendungen übernehmen, zum Beispiel als Testsystem genutzt werden. Dies wird auch als „Warm Stand-by Betrieb“ bezeichnet.
ServerShield von Siemens ist ein Failover Server Konzept für Server, das auf
der Basis der zusätzlichen ServerShield Hard- und Software höhere Verfügbarkeit
für Server mit MS Windows NT zur Verfügung stellt. Beide Rechner sind über die
ServerShield SCSI-Umschaltbox (SCSI-Switch) mit dem Plattensubsystem verbunden,
zu dem im Normalbetrieb jedoch nur das Primäre System Zugang hat. Auf den
externen Festplatten befinden sich neben dem Betriebssystem auch die
Anwendungen und die Daten. Über ein separates LAN in jedem Server wird das
Primärsystem durch das sekundäre überwacht. Hierüber erkennt der Sekundäre
Server das Auftreten signifikanter Störungen in dem Primärsystem, die dessen
Betrieb unmöglich machen. Über den/die SCSI-Switch(es) wird in diesem Fall das
gesamte Plattensubsystem dem Sekundärserver zugeordnet. Dessen anschließender
Reboot erfolgt mit der SW-Installation auf den externen Festplatten (Betriebssystem,
Anwendungen). Dadurch wird für die Anwender die vollständige Funktion des
Primären auf dem Sekundären Server wiederhergestellt. Sind auf letzterem noch
Anwendungen aktiv, werden sie vor dem Fail-over beendet und können später –
nach der Instandsetzung des Primärservers – erneut auf dem Sekundärsystem
gestartet werden.
Nutzen: Hohe Verfügbarkeit durch (aktive) Server-Redundanz. Das Konzept erfordert dabei absolut keinen Programmier- bzw. Anpassungsaufwand, da eine vollständige Unabhängigkeit zwischen Hochverfügbarkeitslösung und den Anwendungen besteht.
Nach ähnlicher Systematik wie redundante (Standby-) Server sorgen in einem Cluster die einzelnen Server durch mehrfaches Vorhandensein für Hochverfügbarkeit und ggf. auch Skalierung. Im Unterschied dazu steht bei Clusterlösungen mit der Integration der Clusterfähigkeit in das Betriebssystem selber jedoch ein weitergehender Lösungsansatz zur Verfügung: alle Clusterknoten bearbeiten gleichberechtigt ihre Applikationen und Services. Es gibt hier keine mit besonderer Rolle oder Hierarchie versehenen Primär- oder Sekundärserver. Parallel zum Produktiveinsatz erfolgt die gegenseitige Überwachung der Serversysteme untereinander, ebenfalls unter Nutzung zusätzlicher Kommunikationsverbindungen. Der Zugriff zu den Datenbeständen wird über ein gemeinsam genutztes Subsystem realisiert (Multi Hosted, Shared Disk).
Die Ankündigung einer Cluster-Option von Microsoft für Windows NT erfolgte im Mai 1997. Eine erweiterte Windows NT-Version, die sogenannte Microsoft Windows NT Server Enterprise Edition, beinhaltet im wesentlichen fünf Neuerungen, die zur Verbesserung der Hochverfügbarkeit sowie Skalierbarkeit des NT Servers beitragen. Eine dieser neuen Komponenten ist der Microsoft Cluster Server, kurz MSCS, der in der zurückliegenden Zeit unter dem Codenamen „Wolfpack“ bekannt wurde.
Im Vergleich zu allen bislang im Windows NT Umfeld verfügbaren Clustervarianten ist nun bei MSCS die Clusterfähigkeit weitgehend mit dem Betriebssystem integriert. Daraus resultieren folgende Vorteile:
· Die Integration in das weit verbreitete MS Windows NT mit seiner weiterhin rasch wachsenden Installationsbasis schafft einen Standard. Für Applikationen, die für den Einsatz in einem Clsuter optimiert sein sollen, steht somit eine standardisierte Schnittstelle zur Verfügung.
· Mit Microsoft als Hersteller im Hintergrund besteht die Sicherheit, daß auch in zukünftigen Versionen die Integrität und Kompatibilität des MSCS und der Anwendungen gewährleistet ist. Dies sorgt für zusätzlichen Investitionsschutz.
· Die Installation und Administration von MSCS erfolgen analog zur Bedienung anderer Microsoft Serverprodukte. Hierdurch sind einfache, zentrale Wartung und Konfiguration gewährleistet.
Voraussetzungen
Der Microsoft Cluster Server ist Bestandteil der Microsoft NT Server Enterprise Edition. Die erste Version unterstützt zwei Knoten pro Cluster. Auf beiden ist die Installation von Windows NT Server sowie MS Cluster Server erforderlich. Jeder Serverknoten muß verwaltungsseitig Mitglied der gleichen NT-Domäne sein und über je zwei Netzkarten verfügen. Jeweils eine davon ist für den Netzverkehr mit den Clients zuständig, das andere Board dient der internen Cluster-Kommunikation (Cluster-Management, Heartbeat). Grundsätzlich ist es sinnvoll, hierfür schnelle Verbindungen wie FDDI oder 100 Mbit Ethernet zu verwenden.
MSCS arbeitet grundsätzlich nach dem Prinzip des „Shared Nothing“: jeder Server im Cluster hat seine eigenen HW-Resourcen, wie Prozessoren, Hauptspeicher, Systemplatte und teilt diese Resourcen mit keinem weiteren Clusterknoten. Ausgenommen ist die gesamte Datenbasis: sie befindet sich auf einem gemeinsam genutzten externen Platten-Subsystem, das über einen gemeinsam genutzten SCSI-Bus im Shared Disk Modus von beiden Servern aus ansprechbar ist, was auch eine der Systemvoraussetzungen des MSS darstellt.
Eigenschaften
MSCS verfügt über zwei wesentliche Elemente:
· den NT-Systemdienst Cluster Server
·
und
das Administrationstool Cluster Administrator
Der Systemdienst beinhaltet die gesamte Steuerung der Cluster-Funktionalität. Zur Einrichtung, Überwachung und Konfiguration des Clusters und der Cluster-Applikationen steht der Cluster Administrator zur Verfügung.
Zur Definition von Cluster-Applikation stehen zwei Objekttypen bereit: Ressourcen und Gruppen. Ressourcen sind beispielsweise die IP-Adresse des Clusters, Festplatten, Netzwerk-Shares und Anwendungen. Alle zusammengehörigen Ressourcen werden in einer Gruppe zusammengefaßt. Zusätzlich sind – soweit zutreffend – zwischen den Ressourcen bestehende Abhängigkeiten festzulegen, z.B. ein Knoten muß zuerst im Besitz einer Festplatte sein, bevor er eine darauf befindliche Applikation starten kann. Diese Unterteilung ist erforderlich, da die Applikationen zwar nach außen hin über das Cluster angesprochen werden, jedoch zu einem Zeitpunkt vollständig auf einem einzigen Knoten und dessen Peripherie ablaufen. All diese Informationen zum Cluster und seiner Konfiguration sind in den Servern (NT Registry) und auf einer für Knoten gemeinsamen Festplatte gespeichert, der sogenannten Quorum-Disk. Dazu stehen die Konfigurationsdaten beiden Servern jederzeit zur Verfügung und können nach einem Systemstart von dort gelesen werden.
Zu einem Zeitpunkt hat immer nur einer der Knoten einen exklusiven Zugriff auf eine Ressource, z.B. eine physikalische Festplatte. Alle Ressourcen des Clusters, die zu einer Gruppe zusammengefaßt wurden, lassen sich zum einen aktiv durch den Administrator einem Knoten zuordnen bzw. per Kommando von diesem zum anderen Server bewegen. Das ist beispielsweise dann hilfreich, wenn ein Knoten für geplante HW- oder Software-Wartungsarbeiten aus dem Produktivbetrieb genommen werden soll. Zum anderen überträgt die Clusterverwaltung bei Ausfall eines Knoten automatisch die auf diesem Server laufenden Ressourcen auf den verbleibenden Knoten (Fail-over). Je nach Art der Applikation beträgt die Umschaltzeit zwischen wenigen Sekunden bei einfachen Anwendungen und bis in den Minutenbereich bei komplexen (wie SAP R/3). Hinzu addiert sich noch das Zurücksetzen nicht abgeschlossener Transaktionen der Datenbank (DB Recovery), dessen Zeit sehr stark von der Datenbankgröße abhängt.
Applikations-Unterstützung
Grundsätzlich sind alle heutigen Anwendungen für Windows NT auch auf dem MSCS ablauffähig. Es wird jedoch eine appliktionsspezifische Ressource-DLL (Dynamic Link Library) des jeweiligen Softwareherstellers benötigt, um die Applikation sinnvoll in den Cluster zu integrieren. Ist eine noch weitergehende Cluster-Integration der Anwendung bzw. Datenbank erwünscht, MSCS bereits heute das Cluster API an (Application Programming Interface). Auf dieser standardisierten Schnittstelle lassen sich Applikationen entwickeln, die noch optimaler mit MSCS ablaufen und zusammenarbeiten.
Eine Reihe bedeutender Software-Anbieter hat bereits die Unterstützung von MS Windows NT Server Enterprise Edition für ihre Anwendungs-Umgebungen angekündigt.
· SAP – R/3 Cluster für Windows NT
· MS SQL Server 7.0
· MS Exchange 5.5
· Oracle Fail Safe
Die Verteilung eines Datenbank – Managementsystems (DBMS) auf mehrere Server, den sog. Datenbank-Instanzen, erlaubt die für eine spezifische Datenbank oftmals geforderte Realisierung von Hochverfügbarkeit und auch Leistungsskalierung. Die Oracle Corp. bietet hierfür mit dem Oracle Paralle Server (OPS) für MS Windows NT eine Option für das Datenbank Serverclustering.
OPS stellt für Installation, Inbetriebnahme und Betrieb eine eigene Clusterverwaltung bereit und erlaubt die Konfiguration von bis zu vier Serverknoten zu einem OPS-Cluster. Ein weiteres Cluster – Managementsystem, wie MSCS wird dabei nicht benötigt. Die aus dem Netz an den Cluster eingehenden Anfragen werden dynamisch an die verschiedenen Server geleitet, um eine gleichmäßige Lastverteilung zu erhalten. Bei einem Serverausfall setzen die verbleibenden Knoten nach Rekonfiguration automatisch die Arbeit fort und führen die Abläufe des ausgefallenen Systems mit aus. Nach dessen Instandsetzung ist jederzeit das Wiedereinbringen in den Cluster möglich. Sämtliche Knoten haben Zugriff zu einem einzigen, gesamten Datenbestand auf einem Disk-Subsystem, das über Shared SCSI Fähigkeiten verfügen muß. Konkurrierende Schreibzugriffe werden von dem in OPS integrierten Distributed Lock Manager überwacht (DLM).
Notwendigkeit
Solche Codes sind notwendig, weil die Datenübertragung (Speicherung) oft verrauscht und nicht störungsfrei. Dazu ist folgendes notwendig :
· 1. Redundanz (Nachrichtenteile, die keine relevanten Informationen enthalten)
· 2. es muß Codewörter geben, die keinem Originalzeichen entsprechen, d.h. nicht jedes Bitmuster ist ein gültiges Codewort
· 3. tritt ein solches ungültiges Codewort auf, liegt ein Fehler vor
· 4. bei fehlerkorrigierenden Code kann man (wenn nicht zu viele Fehler vorhanden sind) auf das Originalzeichen zurückschließen
· 5. Fehlerkorrektur erfordert höheren Aufwand; ist notwendig, wenn nicht zurück gefragt werden kann, wie zum Beispiel beim Videotext; kann zurückgefragt werden, wird das fehlerhafte Segment einfach noch mal übermittelt
Im Paritätsbit eines Codewortes
wird eine Aussage über die Anzahl der Nullen und Einsen des verschlüsselten
Wortes abgespeichert.
Beispiel : ASCII - Zeichensatz :
7 Bit zur notwendigen
Darstellung, ein 8.Bit zu einem Byte als Paritätsbit (höchstwertiges Bit). 8.Bit
wird so gestaltet, daß das gesamte Codewort eine ungerade Anzahl von Einsen
hat, also ungerade Parität hat.
Beispiel :
SPACE - Taste : 010 0000 = 0010 0000 (schon ungerade Anzahl, 8.Bit = 0)
5 : 011 0101 = 1011 0101 (gerade Anzahl, 8.Bit = 1)
Ein - Bit - Fehler werden erkannt
(alle ungerade Fehlerzahlen), aber schon wenn zwei (vier, sechs...) Bit sich
ändern, bleibt dies unbemerkt. Aber auch 1-Bit-Fehler können nicht korrigiert
werden, da man nicht weiß, an welcher Stelle die Änderung stattgefunden hat.
Das Paritätsbit kann durch Negation der XOR-Verknüpfung der anderen 7 Bits erzeugt
werden. Der Empfänger muß bei der XOR-Verknüpfung aller 8 Bits eine 1 erhalten,
sonst Fehler. Dabei gilt :
1 XOR 1 = 0
0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
(zwei gleiche Bits ergeben ein nicht gesetztes Bit, wie Übertrag bei Addition)
Alle gesendeten Zeichen werden
summiert (ohne Übertrag), die Prüfsumme wird am Ende des Blocks mit übertragen.
Dann rechnet der Empfänger nach und vergleicht.
Beispiel : Kommando sum
unter UNIX, damit können Prüfsummen von Dateien ausgerechnet werden, z.B. vor
und nach einem Transfer.
Als besondere Prüfsummen gibt es gewichtete Prüfsummen . Dabei werden
die einzelnen Zeichen vor der Summation mit verschiedenen Gewichten
multipliziert. Dann werden vom Empfänger auch vertauschte Zeichen als Fehler
erkannt, z.B. Rechtschreibkorrektur beim Eintippen von Zeichen.
Beispiel : ISBN
besteht aus einer Folge von Ziffern plus einer Prüfsumme am Anfang oder Ende
Berechnung der Prüfsumme :
Gewichtung läuft als i ständig
hoch, tritt als Ergebnis die Zahl 10 auf, wird dafür X geschrieben, damit keine
Verwechslung mit den Ziffern 0 und 1 auftritt.
CRC - Cycling Redundancy Checking
Ist günstig für Bündelfehler. Der Datenstrom wird als Polynom aufgefaßt und
durch Generatorpolynom dividiert : (x16 + x12 + x5
+ 1) mod 2, d.h. ohne Übertrag. Der entstehende Rest wird als CRC - Summe mitgesendet,
beim Empfänger muß bei gleicher Division Rest 0 entstehen. Ist durch die
Hardware einfach zu realisieren, ein rückgekoppeltes Schieberegister :
Grundlegende Idee:
·
Behandle Bitfolgen als Darstellung eines Polynoms nur
mit den Koeffizienten 0 und 1.
Beispiel: 11001 x4 + x3 + x0
(Grad = 4)
· Wähle ein Generatorpolynom G(x) vom Grad g.
· Hänge an die Nachricht M(x) eine Prüfsumme derart an, daß das Polynom T(x), dargestellt durch die Nachricht mit angehängter Prüfsumme, durch G(x) teilbar ist.
· Übertrage T(x)
· Teilt der Empfänger T(X) durch das vorher vereinbarte G(x) und es bleibt ein Rest, so ist ein Fehler aufgetreten
Algorithmus des Senders:
1. Wir haben G(x) vom Grad g und hängen g 0-Bits an die Nachricht an: Es entsteht das Polynom x^gM(x)
2. Teile die entstandene Bitfolge (x^gM(x)) durch G(x) unter Verwendung von Division modulo 2
3. Subtrahiere den Rest durch die modulo-2 Subtraktion von x^gM(x) ab
4. Das Ergebnis ist T(x), die Nachricht mit Prüfsumme für die Übertragung
Algorithmus des Empfängers:
1. Teile T(x) durch G(x)
2.
Ist der Rest = 0 ==> kein Fehler
Ist der Rest != 0 ==> Fehler
Beispiel für
CRC-Berechnung
Algorithmus zur Berechnung des CRC - Restes:
· Hänge an den Rahmen soviele Nullbits an, wie der Grad g des Generatorpolynoms G(x)
· Verknüpfe die ersten g+1 Bits mit dem Generatorpolynom (hat genau g+1 Bits) durch eine XOR Verknüpfung (ohne Übertrag)
· Füge zu dem Ergebnis der XOR - Verknüpfung soviele Bits von oben dazu, bis die Anzahl der zu betrachteten Bits wieder g+1 ist (streiche vorher alle führende Nullen)
· Führe Schritt 3 solange aus, bis keine Bits mehr heruntergeholt werden können
· ==> der Rest wird an den ursprunglichen Rahmen angehängt
Algorithmus zur Überprüfung eines übertragenen Rahmens auf Korrektheit:
· Analoges Verfahren wie oben, nur müssen keine Nullen angehängt werden
·
Bleibt ein Rest ungleich Null, so ist der Rahmen
beschädigt ansonsten ist er OK
·
CRC-12 = x12 + x11 + x3 + x2 + x + 1
benutzt für 6-Bit-Zeichencodes
·
CRC-16 = x16 + x15 + x2 + 1 (ISO)
CRC-CCITT = x16 + x12 + x5 + 1 (CCITT)
beide werden benutzt für 8-Bit-Zeichencodes
Fehlererkennung mit CRC-16, CRC-CCITT (16 Bit) erkennt:
· alle einfachen und zweifachen Fehler
· alle Fehler mit einer ungeraden Bitzahl
· alle stoßweisen Fehler mit einer Länge <= 16
· 99,998% aller längeren stoßweisen Fehler
Implementierung des CRC ist sehr einfach und kann in Hardware mit Hilfe eines Schieberegisters erfolgen (z.B. im HDLC-Chip)
Hamming Abstand:
·
Hamming-Abstand d ist die Anzahl der Bitpositionen, in
denen sich zwei Codewörter c1, c2 unterscheiden (Anzahl der Bits von c1 XOR c2
)
Beispiel: d(10001001, 10110001) = 3
·
Hamming Abstand D(C) eines vollständigen Codes C ist
D(C) := min {d(c1, c2 ) 1/2 c1, c2 Î C, c1 ¹ c2 }
Die Fähigkeit eines Codes, Fehler zu erkennen und Fehler zu beheben, hängt von seinem Hamming-Abstand ab.
· erkenne e-Bit Fehler: ein Hamming-Abstand von e + 1 wird benötigt
· behebe e-Bit Fehler: ein Hamming-Abstand von 2e + 1 wird benötigt
z.B. Hamming-Abstand betrage 4: Der Code erkennt 3 (3+1=4) Bitfehler oder behebt ein Bitfehler (2*1+1 = 3 £ 4)
Hamming-Code:
Wenn die Codewörter aus m Zeichen bestehen, wieviele Prüfbits r werden benötigt um einen 1-Bit-Fehler zu erkennen und zu beheben:
m |
r? |
n=m+r
· Es gibt 2^m legale Zeichencodes.
· Pro Codewort existieren n illegal Codewörter im Abstand von 1 Bit.
· 2^n ist die Gesamtzahl der Codewörter
(n + 1) * 2m =< 2n ==> (m+r+1) =< 2r (untere Grenze für r)
Beispiel: m
= 7 ==> (8 + r)
=< 2r ==> r
>= 4
d.h. Für einen 7Bit Code (z.B. ASCII) werden vier Prüfbits benötigt, um einen Bitfehler zu behebeben
Nachteile von fehlerbehebenden Codes: großer Overhead (viel Redundanz) auch im Falle einer fehlerfreien Übertragung
·
fehlererkennender
Code
Code mit einem einzigen Paritätsbit (gerade oder ungerade)
=> Hamming-Abstand = 2
=> Erkennung eines 1-Bit-Fehlers ist möglich (oder alle Fehler mit einer
ungeraden Anzahl Bits)
·
fehlerbehebende Codes
00000 00000, 00000 11111, 11111 00000, 11111 11111
=> Hamming-Abstand = 5
=> Verbesserung von 2-Bit-Fehlern
möglich
Beispiel:
0000 00111 => |
00000 11111 |
2-Bit-Fehler => |
Nächstliegendes Codewort |
Bitposition |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Prüf-bzw. Datenbits |
P1 |
P2 |
D1 |
P3 |
D2 |
D3 |
D4 |
P4 |
D5 |
D6 |
D7 |
Bildung des Hamming
Codes
Füge in den Bitstrom jeweils an der 2^i Position Prüfbits ein. Dabei prüft
das Prüfbit 2^i all jene Bits, in deren 2-er Potenzzerlegung ihrer Bitposition
2^i vorkommt (für i=0...n). Es kann beim Hamming Code, sowohl gerade als auch
ungerade Parität verwendet werden. Bei einer gerade/ungerade Parität ergänzt
das Prufbit die Anzahl der Einsen der Bitpositionen, die von ihm überprüft
werden, zu einer geraden/ungeraden Anzahl.
z.B. Prüfbit an der Position 2^2=4 (P3) prüft die Datenbits 5,6,7 (D2,D3,D4),
da z.B. die 2-er Potenzzerlegung des Datenbits an der Bitposition 5 gleich 2^0
+ 2^2 ist
· Prüfbit P1 prüft die Datenbits: D1, D2, D4, D5, D7 (= Bits an der Position 3,5,7,9,11)
· Prüfbit P2 prüft die Datenbits: D1, D3, D4, D6, D7 (= Bits an der Position 3,6,7,10,11)
· Prüfbit P3 prüft die Datenbits: D2, D3, D4 (= Bits an der Position 5,6,7)
· Prüfbit P4 prüft die Datenbits: D5, D6, D7 (= Bits an der Position 9,10,11)
z.B 1001000 unter Verwendung einer geraden Parität (even parity)
Bitposition |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Prüf-bzw. Datenbits |
P1 |
P2 |
D1 |
P3 |
D2 |
D3 |
D4 |
P4 |
D5 |
D6 |
D7 |
Bitfolge |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
Decodierung eines Bitstroms
· Setze einen Zähler Z auf Null
· Untersuche jedes Prüfbit an der Bitposition k (k=2^i), ob es eine gerade/ungerade Parität für die zu untersuchende Datenbits ergibt
· Falls sich eine falsche Parität fur das k-te Prüfbit ergibt, addiere k zu dem Zähler Z (z=z+k)
·
Ist Zähler Z = 0 ===> Wort ist korrekt
Ist Zähler Z ¹ 0 ===> Wort
ist falsch: Bitfehler liegt an der Position Z vor
z.B. 001000111 unter Verwendung einer geraden Parität (even parity)
Bitposition |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
Prüf-bzw. Datenbits |
P1 |
P2 |
D1 |
P3 |
D2 |
D3 |
D4 |
P4 |
D5 |
Bitfolge |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
Prüfbit 2^0=1 prüft Datenbits an der Position 3,5,7,9 |
==> |
0+1+0+1+1 = ungerade |
==> |
FEHLER z=1 |
Prüfbit 2^1=2 prüft Datenbits an der Position 3,6,7 |
==> |
0+1+0+1 = gerade |
==> |
OK |
Prüfbit 2^2=4 prüft Datenbits an der Position 5,6,7 |
==> |
0+0+0+1 = ungerade |
==> |
FEHLER z=5 |
Prüfbit 2^3=8 prüft Datenbits an der Position 9 |
==> |
1+1 = gerade |
==> |
OK |
==> Bit an der Stelle z=5 ist falsch ==> 11011
Hamming - Code (7,4)
= bedeutet, daß bei 7 Bit
Verschlüsselung nur 4 Bit für die Daten zur Verfügung stehen, die restlichen 3
Bit sind Hilfsbit
= Verteilung der Hilfsbit und Datenbit :
= Die Hilfsbit sind immer an den
2er Potenzen (damit ist immer nur eine 1 in der Dualdarstellung der Nummer von
Hi)
= werden mit der XOR-Verknüpfung x von jeweils 3 Datenbit berechnet :
H1 = D3 x D5 x D7
H2 = D3 x D6 x D7
H4 = D5 x D6 x D7
allgemein : Hi = XOR
aller Dm , bei denen das Bit gesetzt ist, was auch in Hi
gesetzt ist und die Wertigkeit i hat
Beispiel : H4 = D5 x D6 x D7
weil H4 als 100 dargestellt wird (4. Bit in einem 7-Bit-Wort) und D5 (101), D6 (110) und D7 (111) ebenfalls das 3. Bit mit 22=4 gesetzt haben.
Beispiel einer Übertragung (max. 4-Bit-Daten) :
Daten sind : 1111
Hilfsbit berechnen :
H1 = D3 x D5 x D7 = 1 x 1 x 1 = 0
x 1 = 1
H2 = D3 x D6 x D7 = 1 x 1 x 1 = 0 x 1 = 1
H4 = D5 x D6 x D7 = 1 x 1 x 1 = 0 x 1 = 1
gesendet wird : 1111111
·
1. Situation :
Empfangen wird : 1101111
Nachrechnen :
H1 = D3 x D5 x D7 = 1 x 0 x 1 =
1 x 1 = 0
H2 = D3 x D6 x D7 = 1 x 1 x 1 = 0 x 1 = 1
H4 = D5 x D6 x D7 = 0 x 1 x 1 = 1 x 1 = 0
·
2. Situation :
Empfangen wird : 1111101
Nachrechnen :
H1 = D3 x D5 x D7 = 1 x 1 x 1 =
1 x 1 = 1
H2 = D3 x D6 x D7 = 1 x 1 x 1 = 0 x 1 = 1
H4 = D5 x D6 x D7 = 0 x 1 x 1 = 1 x 1 = 1
= erweiterter Hamming - Code 4
Datenbit, 4 Hilfsbit ; H8 berechnet sich aus D3 x D5 x D6 (alle Di ,
die doppelt im (7,4)-Code auftreten
= damit hat der erweiterte Hamming - Code dm= 4 und kann
1-Bit-Fehler korrigieren und 2-Bit-Fehler erkennen
Hamming
- Code weitere Varianten
Word Bits |
ECC Bits |
8 |
5 |
16 |
6 |
32 |
7 |
64 |
8 |
128 |
9 |
· Disk – Spanning, das einfache Zusammenschalten mehrerer physikalischer Laufwerke zu einem einzigen homogenen logischen Laufwerk durch einen speziellen Controller.
· Disk – Spanning ist das Mittel der, um den Problemen aus dem Weg zu gehen die sich aus der Systemsoftware (z.B. Banyan Vines) oder der Organisation der Daten ergeben, wenn der verfügbare Speicher ausgeschöpft ist. Das Hinzufügen eines oder mehrerer Laufwerke an einen Spanning – Diskcontroller erhöht die Kapazität des logischen Laufwerks.
· Disk – Spanning hat jedoch keine weiteren Effekte zur Erhöhung der Performance oder der Sicherheit.
· Das Ziel des Disk – Mirroring ist es, ein hohes Maß an Sicherheit zu erreichen. Dazu werden alle Daten auf getrennten physikalischen Laufwerken doppelt aufgezeichnet. In der einfachsten Form werden zwei identische Platten an einen Controller angeschlossen und durch diesen in gleicher Weise mit Daten beschrieben.
· Die Spiegelung von Platten bringt zunächst jedoch keine Vorteile bei der Beschleunigung von Schreib- /Lesevorgängen. Der programmtechnische Overhead, der zur Organisation der Plattenspiegelung erforderlich ist, führt zu geringen Geschwindigkeitseinbußen.
· Die unterschiedliche Kopfposition in den beiden Laufwerken bietet die Möglichkeit, Daten von beiden Platten anzufordern (Split Seek). Letztlich liefert diejenige der konkurrierenden Platten die Daten, deren Kopf den gesuchten Informationen am nächsten ist. Diese Methode beschleunigt bereits Zugriffe auf kleine Datenblöcke.
· Auf den ersten Blick bietet das Verfahren des Disk – Duplexing gegenüber der Plattenspiegelung nichts prinzipiell Neues, wenn man davon absieht, daß jetzt auch die Controller redundant ausgelegt sind.
· Alle Aufgaben zur Organisation der Datenspiegelung, zur Fehlerbehandlung und zur Erledigung der konkurrierenden Aufträge zum Lesen der Daten in den separaten und unabhängigen Kanälen müssen nun durch höhere Systemebenen des Rechners erbracht werden.
· Ausgangspunkt für das Disk – Stripping ist die Überlegung, daß der Datentransport über den elektronisch realisierten Übertragungskanal prinzipiell schnell erfolgen kann als das Schreiben / Lesen auf oder von der Platte, die Mechanik ist langsam und bremst. Während das erste LW damit beschäftigt ist, das erste Datensegment einer Datei aufzuzeichnen, kann das zweite LW mit dem nächsten Segment fortfahren. Die in sequentieller Reihenfolge eintreffenden Elemente einer Datei werden (aufgespaltet in Segmente) auf die Laufwerke des Array verteilt abgelegt.
· Disk – Stripping macht nur Sinn, wenn die Daten schneller übertragen aus auf die Platte geschrieben oder von ihr gelesen werden.
Der Controller verteilt abwechselnd die Datensätze auf mehrere Festplatten. Der Vorteil dieser Technik beruht darin, daß kostengünstig große Array-Speichersysteme mit hoher Performance erstellt werden können, allerdings erkauft man sich diesen Vorteil auf Kosten der Datensicherheit, denn wenn eine Laufwerk des Arrays ausfällt, sind alle Daten des Arrays verloren. Von Redundanz kann also bei RAID 0 keine Rede sein. Der typische Einsatz für RAID-Level-0 ist die High-End Workstation mit hohen I/O-Performanceanforderungen.
Vorteile:
· Hohe Transferraten bei RAID-0 mit kleinem Stripping-Faktor
Nachteile:
· Es gibt jedoch keine redundanten Daten und daher keine Fehlertoleranz.
Das RAID Level 1 ist im allgemeinen unter dem Begriff der Festplattenspiegelung bekannt, d.h. der Controller arbeitet ohne Stripe-Set und bietet dennoch eine hohe Datensicherheit durch paralleles Schreiben auf zwei Festplatten. Der Nachteil besteht darin, daß die Kosten bei hohen Festplattenkapazitäten drastisch ansteigen, da immer das doppelte der Plattenkapazität physikalisch vorhanden sein müssen. Das typische Einsatzgebiet liegt von daher im Entry-Serverbereich mit bis zu 9.1 GB Plattenkapazität und hoher Datensicherheit. Das klassische Beispiel für solche Plattensubsysteme sind Novell und Windows NT Umgebungen für bis zu 25 Usern.
Vorteile:
· Der große Vorteil von Stufe 1 ist, daß sie sehr einfach aufgebaut ist.
· Wenn eine der Platten ausfällt, läuft das System weiter wegen der Spiegelplatte.
· Die Lesegeschwindigkeit kann besser als bei einer einzigen Platte sein.
· Sie ist die Variante aus der Disk-Array-Technologie, die am häufigsten eingesetzt wird.
Nachteile:
· Der größte Nachteil sind die Kosten für die Spiegelplatte.
· Datenmenge für die Redundanz 50%.
Diese RAID-Stufe und alle folgenden verwenden eine Technik namens „Disk-Stripping mit Redundanz“. Sie bieten die Vorteile von Disk-Stripping allerdings ohne die extrem hohe Datenredundanz bei Spiegelplatten.
Ein typische RAID 2 Anwendung hat z.B. fünf Platten zum Speichern von Daten sowie drei weitere Platten zum Schreiben der Fehlerkorrekturinformationen. Während des Schreibens der Daten auf die Platten werden diese aufgeteilt und Bit für Bit sequentiell über die Datenplatten geschrieben. Gleichzeitig wird ein Fehlerkorrekturcode (auch „Hamming-Code“ oder kurz ECC genannt) für jedes Datenbyte auf alle drei Prüfplatten geschrieben.
Der Strippingfaktor: ist ein Bit
Vorteile:
· Da alle Platten vor dem Lesen der Daten einen Suchvorgang (Seek) benötigen, können die Suchzeiten viel kürzer als bei nur einer Platte sein. Nach abgeschlossenem Suchvorgang ist die Datenübertragungsrate jedoch sehr hoch, da die Daten aller Laufwerke parallel ausgegeben werden.
Nachteile:
· Die Systemsicherheit ist ebenfalls sehr groß – eigentlich zu groß. Bei der Berkley – Studie dachte man an Großrechner und Minicomputer – hier wurden die Hamming – Codes nicht zur Korrektur der fehlerhaften Bits benutzt, sondern auch, um das fehlerhafte Bit anzuzeigen. SCSI – Laufwerke verwenden interne Checksummen in den Laufwerken sowie Bits zur Lokalisierung von Fehlern bei Laufwerken und Controllern.
· Die Hamming – Codes sind daher zuviel des Guten; außerdem zahlt man für soviel redundante Daten einen sehr hohen Preis.
· Datenmenge für Redundanz ca. 40%
Grundlage für eine Paritätsprüfung ist die "Exklusive Oder" - Verknüpfung (kurz: XOR), die zwei logische Werte miteinander vergleicht. Der Vorteil dieser Verknüpfung liegt darin, daß sie sich beliebig umkehren läßt, wodurch sich eine verlorene Information durch die Paritätsprüfung sofort rekonstruieren läßt. Ein weiterer Vorteil liegt somit klar auf der Hand, man benötigt lediglich eine einzige Festplatte mehr, für die Bereitstellung der Redundanz des Arrays. Diese Platte entspricht dann quasi der Paritätssicherung.
RAID 3 umgeht den Laufwerkaufwand durch die Verwendung von Paritätsbits anstelle von Fehlerkorrekturcodes; daher ist nur ein einziges Laufwerk für die Fehlerkorrektur nötig.
Der Strippingfaktor ist ein Byte.
Vorteile:
· Wegen der hohen Datenübertragungsrate ist RAID 3 für solche Anwendungen am besten geeignet, bei denen eine einzige große Datei verarbeitet wird.
· Die Leistung bei Lesezugriffen ist bei langen Transfers wegen der hohen erreichbaren Transferrate sehr gut. Sie ist ideal für Anwendungen wie Bildverarbeitung.
· Kurze Lesezugriffe sind (unter den Voraussetzung von Spindelsynchronisation) so schnell wie auf einem Einzellaufwerk.
· Obwohl die Datensicherheit geringer als bei Stufe 2 ist, ist RAID 3 eigentlich zuverlässiger, da nur eine einzige Paritätsplatte verwendet wird und daher die Wahrscheinlichkeit eines Ausfalls dieser Platte geringer ist.
Nachteile:
· Dem Schreibzugriff gehen bei kurzen Zugriffen mehrere Lesezugriffe voraus; erst müssen alle physikalischen Datenblöcke auf allen Platten gelesen werden um den zu schreibenden Block einzubauen. Zusätzlich muß die Parity Information errechnet und geschrieben werden.
· Nicht geeignet ist dieser RAID – Level für transaktionsbasierte Anwendungen wie Datenbank oder Fileserver.
· Die Schreibperformance bei RAID-3 ist extrem schlecht-
Diese Technologie bietet ein akzeptables Maß an Datensicherheit durch Verwendung einer eigenen Paritätsplatte. Fällt eine Datenplatte aus, läßt sich diese sofort durch eine XOR-Verknüpfung mit der Paritätsplatte wiederherstellen. Allerdings hat dieses System auch einen Nachteil: Jeder Zugriff auf die Datenplatten bewirkt auch jedesmal eine Veränderung der Paritätsplatte. Die einzelnen Zugriffe auf die Datenplatten müssen also zunächst auf die Beendigung der XOR-Verknüpfung warten, was natürlich die Performance drosselt. Der Vorteil besteht darin, daß alle Daten parallel und gleichzeitig ausgelesen werden können, was gerade bei großen Datenblöcken von Vorteil ist. Ein typisches Einsatzgebiete für RAID 4 sind große Bild- oder Audiodatenbanken.
Der Strippingfaktor ist ein Block.
Vorteile:
· Lesezugriffe weniger Blöcke müssen nicht auf alle Platten zugreifen, sondern nur auf das Laufwerk, das tatsächlich den oder die wenigen Blöcke gespeichert hat.
· Es können mehrere solcher Zugriffe parallel abgearbeitet werden.
· Auch Schreibzugriffe auf einzelne Blöcke sind schneller; es muß nur der alte Datenblock und der Parity-Block gelesen werden.
· Die Stufe 4 ist deshalb leistungsfähig für Transaktions- oder Multitaskingsysteme, in denen das Verhältnis von Lese- und Schreibvorgängen sehr hoch ist.
· RAID 4 bietet eine bessere Performance bei kurzen Zugriffen.
Nachteile:
· Betrachtet man die Leistung pro Megabyte und pro Zeiteinheit, ist auch RAID 4 beim Schreiben mehreren Einzellaufwerken deutlich unterlegen.
Diese RAID-Technologie vereint zahlreiche Vorteile, wie akzeptabler Datendurchsatz und hohe Datensicherheit. Bei Schreibvorgängen werden die Daten abwechselnd auf alle Festplatten verteilt, mit einer Ausnahme: Befinden sich n Platten in einem RAID-5 Verbund, so werden bei jedem n-ten Zugriff anstelle der Daten die Paritätsinformationen auf diese Platte geschrieben und der zu schreibende Datensatz wandert auf die nächste Platte. Fällt eine Platte aus, so wird deren Inhalt sofort aus den restlichen Platten wiederhergestellt. Der typische Einsatzbereich liegt hier im Workgroup-Server und File-Server Bereich. Idealerweise sollte ein RAID-5-System mit Hot-Spare-Platte ausgerüstet sein, damit diese im Ausfall einer Platte sofort aktiviert wird. Die beste Datensicherheit stellt eine Hot-Spare / Hot-Swap Kombination dar, da hier die defekte Platte im laufenden Betrieb ausgetauscht werden kann, ohne daß der Server dafür heruntergefahren werden muß.
Vorteile:
· Weil es keine speziellen Paritätsplatten gibt, ist es möglich, mehrere Schreib- bzw. Lesevorgänge gleichzeitig auszuführen, was die I/O-Leistung bei Multitasking- und Transaktions-Systemen wesentlich verbessert.
· Die generelle Leistungssteigerung bei universellen transaktionsverarbeitenden Systemen wird von den meisten Netzwerkanwendern benutzt.
· Lesezugriffe werden schneller, weil sie auf noch mehr Laufwerke verteilt werden können.
· Schreibzugriffe werden ebenfalls etwas schneller, weil der Flaschenhals Parity-Laufwerk wegfällt.
· Datenmenge für die Redundanz je nach Anzahl der Laufwerke 12,5% - 33%
Nachteile:
· Der Hauptnachteil dieses Systems liegt im höheren Verarbeitungsaufwand, sobald das System mit einer fehlerhaften Platte weiter laufen muß.
· Bei kurzen Transfers ist aber auch RAID 5 auf der Basis von Zugriffen pro Zentraleinheit pro Megabyte einem Einzellaufwerk unterlegen.
·
RAID 0
= Data Striping
·
RAID 1
= Disk Mirroring / Disk Duplexing
· RAID 2 = Disk Array mit bit-weiser Bearbeitung mit Fehlerkorrekturcode ECC
· RAID 3 = Disk Array mit byte-weiser Bearbeitung und einem Sicherheitslaufwerk (Kaum noch gebräuchlich, weil heutige Betriebssysteme blockweise arbeiten)
· RAID 4 = Disk Array mit Paritätsdaten auf einem Sicherheitslaufwerk (Nettokapazität=n - 1)
· RAID 5 = Disk Array mit Paritätsdaten auf alle Laufwerke des Arrays verteilt(Nettokapazität= n - 1)