Ein Cluster ist die Verknüpfung mehrerer Systeme zu einer Gruppe, die
über eine Cluster-Software verwaltet und gesteuert wird. Physisch
gesehen ist ein Cluster eine Gruppe von zwei oder mehreren unabhängigen
Servern, die auf dieselben Daten zugreifen können und dieselbe Gruppe
von Clients bedienen. In Anbetracht des heutigen Stands der Technik
bedeutet dies meistens, dass die Server mit gebräuchlichen I/O-Bussen
und einem normalen Netzwerk für den Client-Zugriff verbunden sind.
Logisch betrachtet stellt ein Cluster eine einzelne
Verwaltungseinheit dar, in der ein beliebiger Server jedem autorisierten
Client jede verfügbare Leistung anbieten kann. Die Server müssen Zugriff
auf dieselben Daten haben und ein gemeinsames Sicherheitssystem
besitzen. Dem heutigen technischen Standard entsprechend bedeutet dies,
dass in der Regel Server in einem Cluster dieselbe Architektur besitzen
und unter der gleichen Version des gleichen Betriebssystems laufen.
Obwohl es verschiedene Möglichkeiten gibt, wie Cluster aufgebaut sein
können, bieten alle die folgenden drei Vorteile:
- Fehlertolerante Hochverfügbarkeit bei Anwendungen und Daten;
- Skalierbarkeit von Hardware-Ressourcen;
- Einfachere Verwaltung grosser oder schnell wachsender Systeme.
Höhere Verfügbarkeit
In unternehmenskritischen Umgebungen bildet die Hochverfügbarkeit von
Diensten (z.B. Webserver, Datenbanken oder Netzwerk-File-Systemen) die
Voraussetzung für den Erfolg des Unternehmens. Häufige Gründe für
Verfügbarkeitsprobleme von Diensten sind unterschiedliche Formen von
Systemstörungen. Die Störung kann in der Hardware, Software, Anwendung
oder im Ablauf begründet sein. Man kann sich gegen diese Störungen
absichern, indem ein Cluster als Anwendungs- oder Datenserver verwendet
wird. Cluster bieten neben redundanter Rechenleistung, I/O- und
Speicherkomponenten auch die Möglichkeit, dass beim Ausfall eines
Servers ein anderer Server dessen Arbeit unterbrechungsfrei übernimmt.
Somit ermöglichen Cluster eine hohe Verfügbarkeit der Server-Dienste
auch bei einer Störung.
Die Abbildung auf dieser Seite zeigt ein einfaches Cluster, bestehend
aus zwei vernetzten Servern und einem RAID-System zum Speichern der
Daten.
- Wenn an einem Server Hard- oder Softwarestörungen auftreten oder
der Server abstürzt, kann der andere Server dessen Funktion
übernehmen;
- Wenn die Netzwerkschnittstelle eines Servers ausfällt und
dadurch die Verbindung zu den Clients abbricht, können die Clients
weiterhin auf die Leistungen des zweiten Servers zurückgreifen;
- Wenn ein I/O-Bus oder -Adapter ausfällt, kann über einen
alternativen Pfad auf die Daten des RAID-Systems zugegriffen werden;
- Wenn eine Platte ausfällt, sind die Daten durch das RAID-System
weiterhin verfügbar.
In allen Fällen müssen Server und Clients die Störung erkennen und
beheben. Zwar kommt es hierbei zu einer Unterbrechung der Leistung des
Cluster-Dienstes, diese beträgt jedoch bei der Verwendung von Clustern
normalerweise nur wenige Sekunden, im Gegensatz zu Minuten oder Stunden
bei sonst üblichen Wiederherstellungsmethoden.
Skalierbarkeit
Ein weiterer wichtiger Vorteil einiger Cluster-Architekturen ist die
Skalierbarkeit, die ein Anwendungswachstum über die Kapazität eines
einzelnen Servers hinaus ermöglicht. Viele Anwendungen besitzen mehrere
Threads relativ abgegrenzter Aktivitäten, die nur gelegentlich
interagieren. Anwendungen mit mehreren Threads können als
pseudo-parallele Prozesse auf einem Server mit einem Prozessor laufen
oder als echte parallele Prozesse in symmetrischen
Multiprozessorsystemen (SMP). In einem Cluster können Gruppen der
Anwendungs-Threads auf verschiedenen Servern ausgeführt werden, da die
Server auf dieselben Daten zugreifen können. Wenn eine Anwendung zu
gross für einen Server wird, kann ein zweiter Server installiert werden,
um ein Cluster zu erstellen und so die Anwendungskapazität zu erhöhen.
Damit die Server auf dieselben Daten zugreifen können, ist
Koordination erforderlich. Diese Koordination kann durch eine
Anwendung, einen Datenbank-Manager oder ein verteiltes Dateisystem
erfolgen. In einem Cluster, in dem diese Koordination fehlt, ist der
gleichzeitige direkte Zugriff mehrerer Server auf eine beliebige Datei
nicht möglich. Jedoch lassen sich selbst mit diesem begrenzten Zugriff
einige Anwendungen skalieren. Die Anwendungen können so aufgeteilt
werden, dass die einzelnen Programme unterschiedliche Daten verwenden.
Einfachere Verwaltung
Der dritte Vorteil von Clustern ist die einfachere Verwaltung.
Cluster vereinfachen die Komplexität der Systemverwaltung, indem sie den
Umfang der von einem einzelnen System verwalteten Anwendungen, Daten und
Benutzerdomänen vergrössern. Die Systemverwaltung umfasst unter anderem
folgende Bereiche:
- Betriebssystem,
- Middleware,
- Anwendungspflege,
- Verwaltung von Benutzer-Accounts,
- Konfigurationsverwaltung und
- Datensicherung.
Komplexität und Kosten für die Systemverwaltung hängen von der Grösse
und insbesondere von der Anzahl der verwalteten Systeme ab.
Beispielsweise ist die tägliche Datensicherung für alle Server nötig,
die wichtige Daten speichern - unabhängig von der Menge der zu
sichernden Daten. Auch Änderungen von Benutzer-Accounts müssen auf allen
Servern aktualisiert werden, auf die der Benutzer zugreift.
Cluster verringern die Anzahl der einzelnen Systeme - und somit die
Kosten für die Systemverwaltung - indem sie eine grössere Anzahl von
Anwendungen, Daten und Benutzern zu einem einzigen Rechnersystem
zusammenfassen. Ein Vorteil davon ist, dass in einem Cluster-System nur
jeweils ein einziger Satz von Benutzer-Accounts,
Dateizugriffsberechtigungen, Datensicherungsregeln, Anwendungen,
Datenbank-Managern etc. enthalten sein muss. Obwohl die durch
unterschiedliche Cluster-Architekturen erstellten Einzelsysteme
variieren können, ist
es normalerweise günstiger, ein einzelnes Cluster anstatt der
entsprechenden Anzahl unverbundener Server-Systeme zu
verwalten.
Die Lastverteilung zwischen den einzelnen Cluster-Servern erfolgt
automatisch. Sowohl Unix- als auch OpenVMS-Cluster bieten automatische
Lastverteilung und Skalierbarkeit, Windows 2000 Cluster bieten zur Zeit
lediglich eine bessere Verfügbarkeit. Mit dem Cluster-Server des Windows
2000 Advanced Servers können zwei Server, beim Windows 2000 Data Center
Server vier Server zu einem Cluster verbunden werden. Die vom
Cluster-Server unabhängige automatische IP-Lastverteilung erlaubt die
Verteilung von Web-Applikationen auf bis zu 32 Systeme.
High Performance Computing / Beowulf Cluster
Die Beowulf-Cluster-Architektur besteht im Prinzip aus einer Anzahl
von Rechenknoten und einem oder mehreren Zugangsrechnern. Die
Zugangsrechner werden als Front End oder als Server Node bezeichnet. Ein
Nutzer loggt sich, meist remote, nur auf diesem Server Node ein. Von
dort aus kann er sich eine beliebige Menge von Rechenknoten für seine
Arbeit (seinen Rechenauftrag) reservieren und benutzen. Dementsprechend
benötigen die Rechenknoten keinerlei Ein- oder Ausgabe-Peripherie wie
Tastatur, Maus oder Bildschirm. Sowohl Zugangsrechner als auch
Rechenknoten erfordern keinerlei spezielle Hardware, in der Regel kommen
Standardsysteme mit x86- oder Alpha-Prozessoren zum Einsatz. Die
Koppelung der Systeme kann mit jeder beliebigen Netzwerk-Infrastruktur
erfolgen. Als Betriebssystem kommt in der Regel ein freies
Betriebssystem (Linux, FreeBSD usw.) zum Einsatz.
Ein Beowulf Cluster dient zur preisgünstigen Lösung von Aufgaben, die
sehr viel Rechenleistung erfordern. Die Einrichtung eines solchen
Clusters ist jedoch keine einfache Aufgabe, da es kein fertiges Paket
gibt. Das Cluster muss, den Anforderungen entsprechend, aus mehreren
Softwareteilen zusammengestellt, und die Anwendung muss dann noch
parallel programmiert werden.
Hochverfügbarkeits-Cluster mit SGI Failsafe
Die SGI-Failsafe- Clustersoftware ist ein universelles, frei
konfigurierbares und fehlertolerantes Hochverfügbarkeitssystem, mit dem
einzelen Dienste (Services) redundant aufgebaut werden können. Mit Hilfe
der Software kann ein Dienst im Fehlerfall automatisch oder manuell auf
einen anderen Node (Server) migriert
werden. Wobei der Fehlerfall nicht nur in defekter Hardware liegen muss:
Applikationsfehler, desolate Prozesse und kritische Systemzustände
werden ebenfalls als solche erkannt und entsprechend behandelt. Dazu
müssen die einzelnen Nodes des Clusters auf gemeinsame Datenbereiche
zugreifen können, um den Datenbestand im Fehlerfall zu übernehmen.
Hierzu kann eine SCSI RAID- oder SAN-Architektur genutzt werden, die es
den Servern ermöglicht, Datenbereiche im Fehlerfall zu übernehmen.
Wurden die Datenbereiche erfolgreich übernommen, kann der aktive
Cluster-Server die Dienste neu starten und unter der gleichen IP wieder
zur Verfügung stellen. Die Downtime eines Dienstes ist somit
kalkulierbar und in gewissem Rahmen sogar steuerbar, da man verschiedene
Kriterien für die Dienstmigration konfigurieren kann. Mit entsprechend
redundanten Serversystemen ist mit dieser Lösung ein Verfügbarkeit von
99,99 % realisierbar.
Götterdämmerung
Ausfallsicherheit für Server durch Clustering
Jürgen Kuri
Report, Netzwerk, Cluster, Spiegelung, Wolfpack, Wolf Mountain, Full
Moon, HACMP, ServerNet
c't 7/97, S. 260 (jk)
Sicherheitsbindung
Hochverfügbare Datenbanklösungen durch Clustering
Peter Averkamp
wissen
iX 5/98, S. 126 (rh)
Why Don't We Do It in a Row?
DCOM als Alternative zum Server-Clustering
Arne Schäpers
Know-how, Delphi Corner, Apfelmännchen, DCOMCNFG, Server, Client,
WinSock, TCP/IP, Ethernet
c't 6/98, S. 390 (jm)
Aus den Tiefen des Web
Finden, was den Suchmaschinen durchs Netz geht
Peter Schüler
Report, Wissen im Netz, invisible Web, Suchmaschinen, Web-Verzeichnisse,
Recherchetechniken, Search Ranking, Cloaking, Frames, CLustering
c't 9/02, S. 174 (hps)