Rechnerverbund
Ein Computercluster, meist einfach Cluster, von engl. cluster = Traube, Bündel, Schwarm, genannt, bezeichnet eine Anzahl von vernetzten Computern, die zur parallelen Abarbeitung von zu einer Aufgabe gehörigen Teilaufgaben zur Verfügung stehen. Im Gegensatz zu Parallelrechnern findet die Lastverteilung auf der Ebene einzelner Prozesse statt, die auf einer oder verschiedenen Maschinen des Clusters gestartet werden. Man benötigt also keine parallelisierte Software oder spezielle Betriebssysteme, wohl aber einen Scheduler, der die Teilaufgaben den Einzelrechnern zuweist. Alternativ werden Cluster auch zum Steigern der Verfügbarkeit von Systemen genutzt.
Clusterarten
Cluster bieten sich somit für die Abarbeitung von Batch-Jobs an, bei denen viele voneinander unabhängige Teilrechnungen durchgeführt werden müssen. Eine Menge von Teilaufgaben, die häufig synchronisiert werden müssen oder für sich genommen wenig CPU-Last erzeugen, sind für Cluster weniger geeignet, da die dafür notwendigen Kommunikationszeiten zwischen den Einzelrechnern (Nodes) den Performancegewinn wieder aufzehren.
Ein weiterer Vorteil eines Clusters ist die erhöhte Ausfallsicherheit. Wenn beispielsweise zwei Server an ein RAID-System angeschlossen sind, kann dieses System so konfiguriert werden, dass der Ausfall eines Rechners keinen Einfluss auf die Aufgabe des Clusters hat. Dies ist insbesondere bei Dateiservern von Interesse. Wenn ein Server ausfällt, sind die Daten immer noch erreichbar.
Von hochverfügbaren System spricht man, wenn jede Komponente mehrfach (n+1) vorhanden ist. Bei Clustern, deren Ziel die Ausfallsicherheit ist, wird zwischen hot-standby und active-active Clustern unterschieden.
Bei hot-standby Clustern wird nur auf einem Clusternode ein bestimmter Dienst ausgeführt. Fällt der primäre Dienstnode aus, übernimmt ein anderer Clusternode den Dienst der ausgefallenen Node. Durch diese Technik muss ein Dienst nicht explizit clusterfähig sein. Die failover-Funktion wird meist durch das Betriebssystem zur Verfügung gestellt (Servicefailover, IP-Übernahme). Die Übernahme von Services kann man z.B. durch Verschieben von IP-Adressen oder Verwenden einer Multicastadresse erreichen.
Bei active-active Clustern hingegen ist auf allen Clusternodes zeitgleich ein Dienst aktiv. Unterschieden wird hier zwischen den Architekturen shared nothing und shared all.
Typischer Vertreter des activ-active Clusters mit shared nothing Architektur ist DB2 mit EEE (sprich "triple i"). Hier beherbergt jeder Clusterknoten eine eigene Datenpartition. Ein Performancegewinn wird durch die Partitionierung der Daten und die damit einhergehende verteilte Verarbeitung erzielt. Ausfallsicherheit wird hiermit nicht gewährleistet.
Anders ist dies beim shared all Cluster. Diese Architektur gewährleistet durch einen konkurrierenden Zugriff auf Shared Storage, dass alle Clusterknoten auf den gesamten Datenbestand zugreifen können. Neben Skalierung und Performancesteigerung wird durch diese Architektur auch eine zusätzliche Ausfallsicherheit erreicht. Fällt ein Node aus, übernehmen die Anderen seine Aufgaben. Meist muss ein Dienst speziell für eine active-active Clusterung programmiert sein. So muss die Anwendung "cluster aware" sein. Eine Anwendung wird als cluster aware bezeichnet, wenn Sie auf spezielle Ereignisse (wie z.B. den Ausfall eines Clusterknotens in einem active-active Cluster) reagiert und diese in geeigneter Weise verarbeitet. Typischer Vertreter der shared all Architektur ist der Oracle Real Application Cluster (kurz: RAC).
In jüngster Zeit reihen sich immer mehr Linux-Cluster in die Top-500 der Superrechner ein.
Cluster-Software
- wackamole - HA-Cluster Software (verschiebt IP-Adressen)
- heartbeat - HA-Cluster Software
- Das Beowulf-Projekt - Verteiltes Rechnen
- Open Mosix - Verteiltes Rechnen
- Kimberlite - HA Failover Cluster
- HACMP - HA-Cluster Software von IBM für AIX (englisch)
- Oracle RAC - Cluster Software von ORACLE (englisch)
- MPI - The Message Passing Interface (MPI) standard
Siehe auch
Supercomputer | Peer-to-Peer, Gridcomputing | Verteiltes Rechnen | Cluster Manager | Aktiv/Aktiv-Cluster | Aktiv/Passiv-Cluster | Failover | Switchover | Cluster Agent | Beowulf-Cluster | Oracle Real Application Cluster | MC/ServiceGuard | HACMP | Sun Cluster | Veritas Cluster | Lifekeeper | Ausfallsicherheit | Hochverfügbarkeit
Weblinks
- http://linux-ha.org/
- TOP500 Liste der leistungsstärksten Supercomputer
- Cluster aus 12 VIA EPIA800-Rechnern
Literatur
- Bookman, Charles: Linux Clustering, ISBN 1-578-70274-7
- Gebauer, Hartmann: Clustering mit Windows NT, Addison-Wesley 1999, ISBN 3-827-31403-8
- Held, Andrea: Oracle 10g Hochverfügbarkeit, Addison-Wesley 2004, ISBN 3-827-32163-8
- Soltau, Michael: Unix/Linux Hochverfügbarkeit, MITP 2002, ISBN 3-826-60775-9
- Martin Wieczorek, Uwe Naujoks u. Bob Bartlett (Hrsg.): Business Continuity, Springer 2003, ISBN 3-540-44285-5