Rechnerverbund

mehrere miteinander vernetzte Computer
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 21. April 2005 um 14:18 Uhr durch Tmeier (Diskussion | Beiträge) (Literatur). Sie kann sich erheblich von der aktuellen Version unterscheiden.

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

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

Literatur