Lesezeit
2 Minuten
Cluster
Als Cluster bezeichnen wir im Folgenden einen Verbund von vernetzten Rechnern, die nach außen hin als ein einziger Rechner erscheinen. Die in einem Cluster befindlichen Computer werden auch Knoten (Nodes) genannt. Eine alternative Bezeichnung für die Summe dieser Knoten lautet Serverfarm. Eine derartige Zusammenschaltung von Rechnern verfolgt in der Regel eines der folgenden drei Ziele: Hochverfügbarkeit (HA), High Performance Computing (HPC) oder Load Balancing (LB), wobei die Grenzen zwischen den beiden letztgenannten Varianten eher fließend sind.
Wichtige Begrifflichkeiten im Zusammenhang mit Clustern sind "shared-nothing" und "shared-all". In einer shared-nothing-Architektur ist jeder Knoten autonom, das heißt er verfügt über alle für den Betrieb nötigen Hardware-Komponenten und ein eigenes Betriebssystem. Das betrifft besonders Storage und Arbeitsspeicher; beides wird nicht mit anderen Nodes geteilt. Diese Ausprägung findet sich besonders oft im Bereich der HPC-Cluster. Von Vorteil ist hier die hohe Skalierbarkeit. Damit ist gemeint, dass sich die Leistungsfähigkeit der gesamten Umgebung durch das Hinzufügen neuer Nodes quasi beliebig nach oben steigern lässt.
Anders stellt sich dies bei einem shared-all-Cluster dar. Diese Architektur ist besonders oft in Storage-Netzwerken (SAN) anzutreffen und garantiert durch einen konkurrierenden Zugriff auf Shared Storage, dass alle Nodes auf den gesamten Datenbestand zugreifen können. In diesem Zusammenhang kommen dann auch Cluster-Dateisysteme ins Spiel: Da beim gleichzeitigen Zugriff von mehreren Quellen auf einen gemeinsamen Datenbestand Inkonsistenzen auftreten können. Um dies zu verhindern, müssen die Metadaten wie etwa Verzeichnisse, Attribute und Speicherplatzzuweisungen koordiniert abgelegt werden. Zu diesem Zweck kommt im Regelfall innerhalb eines Fibre Channel- oder iSCSI-Netzwerks ein Metadaten-Server zum Einsatz.
Hochverfügbarkeitscluster
Das Ziel von Hochverfügbarkeitsclustern (HA-Cluster) ist es, für eine erhöhte Ausfallsicherheit zur sorgen. Tritt auf einem Cluster-Knoten ein Fehler auf oder fällt er gar komplett aus, werden die dort laufenden Dienste auf einen anderen Knoten migriert. Die meisten HA-Cluster besitzen zwei Knoten. Dabei handelt es sich meist um eine Aktiv/Passiv-Konstruktion, das heißt, der Ersatz-Knoten befindet sich lediglich im Standby, solange der erste Knoten ohne Probleme funktioniert. Eine derartige Übernahme von Diensten wird auch als Failover bezeichnet – im Fehlerfall wird die Anwendung auf einem anderen Rechner im Cluster neu gestartet. Takeover hingegen bedeutet, dass die Dienste auf zwei oder mehreren Servern gleichzeitig aktiv sind. In diesem Fall spricht man von einem Aktiv/Aktiv-Cluster, in dem die Nodes stets simultan aktiv sind.
Dienste müssen speziell für ihre Verwendung auf einem Cluster programmiert sein. Dies wird mit dem Begriff "cluster aware" beschrieben. Für den Betrieb eines HA-Clusters ist es extrem wichtig, dass sowohl die Hardware als auch die Software des Rechnerverbunds frei von Single-Point-of-Failures sind. Über eine spezielle Heartbeat-Verbindung informieren sich ein Knoten über den Zustand des / der anderen Nodes. Nicht zuletzt sollte der Cluster im Katastrophenfall weiter funktionieren. Dies ist durch eine räumliche Trennung zu erreichen. Im Extremfall werden die Cluster-Knoten dabei mehrere Kilometer voneinander entfernt in verschiedenen Rechenzentren platziert. Hierbei ist zu wiederrum zu beachten, dass für eine Failover/Takeover schnelle WAN-Leitungen benötigt werden, was neben den Mehrfach-Kosten für die einzelnen Knoten die für einen Cluster nötigen Investitionen weiter in die Höhe treibt.
HPC- und Load Balancing-Cluster
Eine weitere Cluster-Form sind High Performance Computing-Cluster, die oft auch als Superrechner bezeichnet werden. Ziel einer derartigen Konstruktion ist es, extrem anspruchsvolle Rechenaufgaben in einzelne Bestandteile zu zerlegen, auf die Knoten zu verteilen und dort gleichzeitig ausführen zu lassen. Zu diesem Zweck ist ein extrem schnelles Netzwerk vonnöten, so dass hier oft InfiniBand zum Einsatz kommt. Die meisten der auf einem HPC-Cluster basierenden Supercomputer werden derzeit unter Linux betrieben. Derart leistungsfähige, geclusterte Infrastrukturen kommen bei großen Suchmaschinen- und Cloud-Anbietern wie Google oder Amazon zum Einsatz. Bei Google etwa bestehen die einzelnen Knoten aus handelsüblichen PCs, die mit Hilfe des Google File Systems (GFS) für einen hohen Datendurchsatz sorgen.
Load Balancing-Cluster haben ähnlich wie HPC-Cluster die Lastverteilung auf mehrere Maschinen zum Ziel. Auch hier sind mögliche Einsatzgebiete Umgebungen mit sehr hohen Anforderungen an Computerleistung. Oft kommen derartige Cluster bei Webservern zum Einsatz, wenn es darum geht, Anfragen anderer Rechner aus dem Internet simultan mit hohem Tempo zu verarbeiten – ein einzelner Host kann nur eine limitierte Menge an HTTP-Anfragen auf einmal beantworten und stellt somit einen Flaschenhals dar. Mögliche Prozeduren bei LB-Clustern sind das Vorschalten eines Systems, etwa eines Load Balancers oder Frontend Servers, der die Anfragen aufteilt, oder die Nutzung von DNS mit dem Round-Robin-Verfahren.
ln
Anders stellt sich dies bei einem shared-all-Cluster dar. Diese Architektur ist besonders oft in Storage-Netzwerken (SAN) anzutreffen und garantiert durch einen konkurrierenden Zugriff auf Shared Storage, dass alle Nodes auf den gesamten Datenbestand zugreifen können. In diesem Zusammenhang kommen dann auch Cluster-Dateisysteme ins Spiel: Da beim gleichzeitigen Zugriff von mehreren Quellen auf einen gemeinsamen Datenbestand Inkonsistenzen auftreten können. Um dies zu verhindern, müssen die Metadaten wie etwa Verzeichnisse, Attribute und Speicherplatzzuweisungen koordiniert abgelegt werden. Zu diesem Zweck kommt im Regelfall innerhalb eines Fibre Channel- oder iSCSI-Netzwerks ein Metadaten-Server zum Einsatz.
Hochverfügbarkeitscluster
Das Ziel von Hochverfügbarkeitsclustern (HA-Cluster) ist es, für eine erhöhte Ausfallsicherheit zur sorgen. Tritt auf einem Cluster-Knoten ein Fehler auf oder fällt er gar komplett aus, werden die dort laufenden Dienste auf einen anderen Knoten migriert. Die meisten HA-Cluster besitzen zwei Knoten. Dabei handelt es sich meist um eine Aktiv/Passiv-Konstruktion, das heißt, der Ersatz-Knoten befindet sich lediglich im Standby, solange der erste Knoten ohne Probleme funktioniert. Eine derartige Übernahme von Diensten wird auch als Failover bezeichnet – im Fehlerfall wird die Anwendung auf einem anderen Rechner im Cluster neu gestartet. Takeover hingegen bedeutet, dass die Dienste auf zwei oder mehreren Servern gleichzeitig aktiv sind. In diesem Fall spricht man von einem Aktiv/Aktiv-Cluster, in dem die Nodes stets simultan aktiv sind.
Dienste müssen speziell für ihre Verwendung auf einem Cluster programmiert sein. Dies wird mit dem Begriff "cluster aware" beschrieben. Für den Betrieb eines HA-Clusters ist es extrem wichtig, dass sowohl die Hardware als auch die Software des Rechnerverbunds frei von Single-Point-of-Failures sind. Über eine spezielle Heartbeat-Verbindung informieren sich ein Knoten über den Zustand des / der anderen Nodes. Nicht zuletzt sollte der Cluster im Katastrophenfall weiter funktionieren. Dies ist durch eine räumliche Trennung zu erreichen. Im Extremfall werden die Cluster-Knoten dabei mehrere Kilometer voneinander entfernt in verschiedenen Rechenzentren platziert. Hierbei ist zu wiederrum zu beachten, dass für eine Failover/Takeover schnelle WAN-Leitungen benötigt werden, was neben den Mehrfach-Kosten für die einzelnen Knoten die für einen Cluster nötigen Investitionen weiter in die Höhe treibt.
HPC- und Load Balancing-Cluster
Eine weitere Cluster-Form sind High Performance Computing-Cluster, die oft auch als Superrechner bezeichnet werden. Ziel einer derartigen Konstruktion ist es, extrem anspruchsvolle Rechenaufgaben in einzelne Bestandteile zu zerlegen, auf die Knoten zu verteilen und dort gleichzeitig ausführen zu lassen. Zu diesem Zweck ist ein extrem schnelles Netzwerk vonnöten, so dass hier oft InfiniBand zum Einsatz kommt. Die meisten der auf einem HPC-Cluster basierenden Supercomputer werden derzeit unter Linux betrieben. Derart leistungsfähige, geclusterte Infrastrukturen kommen bei großen Suchmaschinen- und Cloud-Anbietern wie Google oder Amazon zum Einsatz. Bei Google etwa bestehen die einzelnen Knoten aus handelsüblichen PCs, die mit Hilfe des Google File Systems (GFS) für einen hohen Datendurchsatz sorgen.
Load Balancing-Cluster haben ähnlich wie HPC-Cluster die Lastverteilung auf mehrere Maschinen zum Ziel. Auch hier sind mögliche Einsatzgebiete Umgebungen mit sehr hohen Anforderungen an Computerleistung. Oft kommen derartige Cluster bei Webservern zum Einsatz, wenn es darum geht, Anfragen anderer Rechner aus dem Internet simultan mit hohem Tempo zu verarbeiten – ein einzelner Host kann nur eine limitierte Menge an HTTP-Anfragen auf einmal beantworten und stellt somit einen Flaschenhals dar. Mögliche Prozeduren bei LB-Clustern sind das Vorschalten eines Systems, etwa eines Load Balancers oder Frontend Servers, der die Anfragen aufteilt, oder die Nutzung von DNS mit dem Round-Robin-Verfahren.
ln