Cluster Computing


Cluster Computing
NASA-Computercluster

Ein Computercluster, meist einfach Cluster (engl. „Schwarm“, „Gruppe“, „Haufen“), bezeichnet eine Anzahl von vernetzten Computern, die von außen in vielen Fällen als ein Computer gesehen werden können. In der Regel sind die einzelnen Elemente eines Clusters untereinander über ein schnelles Netzwerk verbunden. Ziel des „Clustering“ besteht meistens in der Erhöhung der Rechenkapazität oder der Verfügbarkeit gegenüber einem einzelnen Computer. Die in einem Cluster befindlichen Computer (auch Knoten oder Server) werden auch oft als Serverfarm bezeichnet.

Inhaltsverzeichnis

Clusterkategorien

Der Begriff Cluster an sich beschreibt primär die Architektur der einzelnen Bausteine und ihr Zusammenwirken. Hardware- oder Software-Cluster sind grundsätzlich unterschiedlich. Die einfache Form eines Hardware-Clusters ist als aktiv/passiv bekannt. Andere Varianten sind als cascading bekannt. Dabei muss eine Unterbrechung des Services mit berücksichtigt werden. HP VAX-VMS Cluster sind in der Lage, eine Hardware-aktiv/aktiv-Funktionalität zu implementieren.

Softwarecluster oder Applikationscluster entgegen sind eher in der Lage, einen kontinuierlichen Betrieb zu realisieren (Beispiel: DNS -Server). Es hängt aber vom Client in der Client/Server-Architektur ab, ob der Client mit der Umschaltung des Dienstes umgehen kann.

Man unterscheidet zwischen so genannten homogenen und heterogenen Clustern. Computer homogener Cluster laufen unter dem gleichen Betriebssystem und gleicher Hardware, beim heterogenen Cluster können unterschiedliche Betriebssysteme oder Hardware eingesetzt werden. Bekannte Linux-Cluster-Software sind z.B. HP-Serviceguard, Beowulf und openMosix.

Cluster werden für eine Reihe oft unterschiedlicher Verwendungszwecke eingesetzt:

Hochverfügbarkeitscluster

Hochverfügbarkeitscluster (engl. High-Availability-Cluster – HA-Cluster) werden zur Steigerung der Verfügbarkeit bzw. für bessere Ausfallsicherheit eingesetzt. Tritt auf einem Knoten des Clusters ein Fehler auf, werden die auf diesem Cluster laufenden Dienste auf einen anderen Knoten migriert. Die meisten HA-Cluster besitzen 2 Knoten. Es existieren Cluster, bei denen ständig auf allen Knoten Dienste laufen. Diese Cluster nennt man aktiv-aktiv bzw. symmetrisch. Sind nicht alle Knoten aktiv, spricht man von aktiv-passiv oder asymmetrisch. Sowohl die Hardware als auch die Software eines HA-Clusters muss frei von Single-Point-of-Failures (Komponenten, die durch einen Fehler das gesamte System zum Ausfall brächten) sein. Anwendung finden solche HA-Cluster in kritischen Umgebungen, in denen maximale Ausfallzeiten von nur wenigen Minuten im Jahr erlaubt sind. Im Rahmen von Katastrophenszenarien müssen kritische Computersysteme abgesichert werden. Dazu werden die Cluster-Knoten oft mehrere Kilometer auseinander in verschiedenen Rechenzentren platziert. Im Katastrophenfall kann der Knoten im nicht betroffenen Rechenzentrum die gesamte Last übernehmen. Diese Art von Clustern nennt man auch „stretched Cluster“.

Load-Balancing Cluster

Load-Balancing (SLB) Cluster werden zum Zweck der Lastverteilung auf mehrere Maschinen aufgebaut. Die Lastverteilung erfolgt in der Regel über eine redundant ausgelegte, zentrale Instanz. Mögliche Einsatzgebiete sind Umgebungen mit hohen Anforderungen an Computerleistung. Der Leistungsbedarf wird hier nicht durch Aufrüstung einzelner Computer abgedeckt, sondern durch das Hinzufügen zusätzlicher Computer. Grund für die Verwendung ist nicht zuletzt der Einsatz von preisgünstigen Standardcomputern (COTS-Komponenten) anstatt von teuren Spezialcomputern.

High Performance Computing Cluster

High Performance Computing (HPC) Cluster dienen zur Abarbeitung von Rechenaufgaben. Diese Rechenaufgaben werden auf mehrere Knoten aufgeteilt. Entweder werden die Aufgaben in verschiedene Pakete aufgeteilt und parallel auf mehreren Knoten ausgeführt oder die Rechenaufgaben (Jobs genannt) werden auf die einzelnen Knoten verteilt. Die Aufteilung der Jobs übernimmt dabei meistens ein Job Management System. HPC Cluster finden sich oft im wissenschaftlichen Bereich. Auch die sogenannten Renderfarmen fallen in diese Kategorie.

Geschichte

Das erste im Handel erhältliche Clusterprodukt war ARCnet, welches 1977 von Datapoint entwickelt wurde. Den ersten wirklichen Erfolg hatte die Firma DEC im Jahre 1983 mit der Vorstellung des Produktes VAXCluster für ihr Computersystem VAX. Das Produkt unterstützte nicht nur paralleles Rechnen auf den Clusterknoten, sondern auch die gemeinsame Nutzung von Dateisystemen und Geräten aller beteiligten Knoten. Diese Eigenschaften sind noch heute bei vielen freien und kommerziellen Produkten nicht enthalten. VAXCluster ist als „VMSCluster“ auch heute noch von der Firma HP für das Betriebssystem OpenVMS und die Prozessoren Alpha und Itanium erhältlich.

Technik

HA-Cluster

Die failover-Funktion wird meist durch das Betriebssystem zur Verfügung gestellt (Servicefailover, IP-Übernahme). Die Übernahme von Diensten kann z. B. durch die automatische Migration von IP-Adressen oder das Verwenden einer Multicastadresse erreicht werden.

Generell wird zwischen den Architekturen shared nothing und shared all unterschieden.

Typischer Vertreter des „active-active“-Clusters mit shared-nothing-Architektur ist DB2 mit EEE (gesprochen „triple e“). Hier beherbergt jeder Clusterknoten eine eigene Datenpartition. Ein Leistungsgewinn 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 Leistungssteigerung wird durch diese Architektur auch eine zusätzliche Ausfallsicherheit erreicht. Fällt ein Knoten aus, übernehmen die anderen Knoten seine Aufgabe(n). Ein typischer Vertreter der shared-all-Architektur ist der Oracle Real Application Cluster (RAC).

HA-Computercluster können auch ohne lokale Datenträger direkt aus einem Storage Area Network (SAN) heraus als ein „Single System Image“ booten. Solche Diskless Shared-root Cluster erleichtern den Austausch von Cluster-Knoten, die in einer solchen Konfiguration nur noch ihre Rechenleistung und I/O Bandbreite zur Verfügung stellen.

Dienste müssen speziell für den Einsatz auf einem Cluster programmiert sein. Ein Dienst wird als „cluster aware“ bezeichnet, wenn er auf spezielle Ereignisse (wie z. B. den Ausfall eines Clusterknotens) reagiert und diese in geeigneter Weise verarbeitet.

Cluster-Software kann in Form von Skripten implementiert oder auch in den Betriebsystemkernel integriert sein.

HPC-Cluster

Bei HPC-Clustern wird die zu erledigende Aufgabe, der „Job“, oft mittels eines Decomposition-Programms in kleinere Teile zerlegt und dann auf die Knoten verteilt.

Die Kommunikation zwischen auf verschiedenen Knoten laufenden Job-Teilen geschieht in der Regel mittels Message Passing Interface (MPI), da eine schnelle Kommunikation zwischen einzelnen Prozessen gewünscht ist. Dazu koppelt man die Knoten mit einem schnellen Netzwerk wie z. B. InfiniBand.

Eine gängige Methode zur Verteilung von Jobs auf einen HPC-Cluster ist ein Job-Scheduling-Programm, welches eine Verteilung nach verschiedenen Kategorien vornehmen kann, wie z. B. Load Sharing Facility (LSF) oder Network Queueing System (NQS).

In jüngster Zeit reihen sich immer mehr Linux-Cluster in die TOP500 der Superrechner ein, nicht zuletzt weil sich auch für anspruchsvolle Rechenaufgaben billige COTS Hardware nutzen lässt.

Siehe auch

Literatur

  • Heiko Bauke, Stephan Mertens: Cluster Computing. Springer 2006, ISBN 3-540-42299-4
  • Charles Bookman: Linux Clustering. ISBN 1-578-70274-7
  • Hartmann Gebauer: Clustering mit Windows NT. Addison-Wesley 1999, ISBN 3-827-31403-8
  • Andrea Held: Oracle 10g Hochverfügbarkeit. Addison-Wesley 2004, ISBN 3-827-32163-8
  • Michael Soltau: Unix/Linux Hochverfügbarkeit. MITP 2002, ISBN 3-826-60775-9
  • Martin Wieczorek, Uwe Naujoks, Bob Bartlett (Hrsg.): Business Continuity. Springer 2003, ISBN 3-540-44285-5
  • Volker Herminghaus, Albrecht Scriba: Veritas Storage Foundation, Springer (2006), ISBN 3540346104

Weblinks

Cluster-Software


Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Cluster Computing —   Discipline Computer clustering …   Wikipedia

  • Cluster (computing) — A computer cluster is a group of linked computers, working together closely so that in many respects they form a single computer. The components of a cluster are commonly, but not always, connected to each other through fast local area networks.… …   Wikipedia

  • Cluster manager — A Cluster manager usually is a backend GUI or command line software that runs on one or all cluster nodes (in some cases it runs on a different server or cluster of management servers.) The cluster manager works together with a cluster management …   Wikipedia

  • Cluster (Computer) — NASA Computercluster Ein Computercluster, meist einfach Cluster (engl. „Schwarm“, „Gruppe“, „Haufen“), bezeichnet eine Anzahl von vernetzten Computern, die von außen in vielen Fällen als ein Computer gesehen werden können. In der Regel sind die… …   Deutsch Wikipedia

  • Cluster — A cluster is a small group or bunch of something. Contents 1 In science 2 In astrophysics 3 In biology and health sciences 4 In computing …   Wikipedia

  • Cluster-aware application — A cluster aware application is a software application designed to call cluster APIs in order to determine its running state, in case a manual failover is triggered between cluster nodes for planned technical maintenance, or an automatic failover… …   Wikipedia

  • Cluster Management Software — Ein Cluster Manager ist eine Software für das Management eines Computerclusters (Verbund aus mehreren Rechnern). Er steht für Verwaltungsvorgänge im Cluster zur Verfügung und automatisiert meist Vorgänge wie den Failover vom Primärsystem zum… …   Deutsch Wikipedia

  • Cluster Manager — Ein Cluster Manager ist eine Software für das Management eines Computerclusters (Verbund aus mehreren Rechnern). Er steht für Verwaltungsvorgänge im Cluster zur Verfügung und automatisiert meist Vorgänge wie den Failover vom Primärsystem zum… …   Deutsch Wikipedia

  • Cluster analysis (in marketing) — Cluster analysis is a class of statistical techniques that can be applied to data that exhibit “natural” groupings. Cluster analysis sorts through the raw data and groups them into clusters. A cluster is a group of relatively homogeneous cases or …   Wikipedia

  • Cluster File Systems — Cluster File Systems, Inc. Type Private Industry High Performance Computing Founded 2001 Founder(s) Dr. Peter J. Braam Headquarters Boulder, Colorado …   Wikipedia