Tech Updates

Published on Mar 07, 2010

Was ist Cluster Computing?

Handelte es sich bei Supercomputern zu Beginn noch um Systeme mit spezieller Technologie, werden heute in der Regel gängige Servertechnologien eingesetzt. Dabei werden viele einzelne, in der Regel kostengünstige Server zu einem so genannten Servercluster vernetzt, um über die Rechenleistung eines Supercomputers zu verfügen.
Die Grundlagen des Cluster Computing legte Gene Amdahl als Computerarchitekt bei IBM. In seinem 1967 veröffentlichten Paper zum Thema ’Parallel Processing’ stellte er folgende These auf, die auch als Amdahl’s Law bezeichnet wird und als Basis für Multiprozessor sowie Clustercomputer gilt.
Das Gesetz besagt, ’… wie sich der nicht parallelisierbare Anteil eines Programms auf die Gesamtrechenzeit auswirkt …’. Genauer bedeutet dies, dass die Geschwindigkeitszunahme in erster Linie durch den sequentiellen Anteil des Algorithmus beschränkt wird. Das ist darauf zurückzuführen, dass sich die Ausführungszeit nicht durch Parallelisierung verkleinern lässt.
Die ersten Ideen einen Computercluster aufzubauen stammen aus den Zeiten, in denen auch die ersten Computernetzwerke aufgebaut wurden. Der Grundgedanke zum Aufbau solcher Netzwerke bestand darin, Ressourcen in Form von Computersystemen untereinander zu verbinden und damit einen quasi Computercluster aufzubauen. Durch die Einführung der Paket vermittelnden Netzwerke im Jahre 1962 durch die Firma RAND, wurde auf dieser Grundlage 1969 das ARPANET Projekt gegründet. Dieses gilt als das erste Commodity-Netzwerk auf Basis eines Computercluster, in dem vier unterschiedliche Computercenter miteinander verbunden wurden. Jedes dieser vier Computercenter war für sich selbst wieder ein Computercluster, die aber nur autonom arbeiteten. Aus dem ARPANET wurde später das Internet, weshalb das Internet auch als die ’Mutter’ aller Computercluster gilt, aus dem Grund, das quasi alle Computerressourcen inkl. aller bereits bestehenden Cluster zusammengeschlossen werden können.
Ein Computercluster beschreibt also eine meist große Anzahl von einzelnen miteinander vernetzten Computern, die dazu verwendet werden einzelne Teilaufgaben, die zu einer Gesamtaufgabe gehören, parallel zu verarbeiten. Von außen betrachtet wirkt ein Computercluster wie ein einzelnes System. Die jeweiligen Knoten sind dabei untereinander über ein schnelles Netzwerk verbunden. Durch den Aufbau solcher Serverfarmen wird die Rechenkapazität und Verfügbarkeit deutlich gegenüber eines einzigen Computers erhöht. Vor allem die Ausfallsicherheit eines solchen Computercluster ist ein entscheidender Vorteil gegenüber einem einzelnen Computersystem. Fällt innerhalb eines Clusterverbunds ein einzelnes System aus, hat das keinen direkten Einfluss auf alle anderen beteiligten Systeme innerhalb des Clusters. Es wird damit also eine Redundanz erzielt. Computercluster können am besten für die Verarbeitung von Batch-Jobs eingesetzt werden, bei denen viele parallele Teilberechnungen durchgeführt werden. Handelt es sich bei der Verarbeitung jedoch um Teilaufgaben, die im hohen Maße synchronisiert werden müssen, sind Computercluster dafür nicht geeignet, da der Kommunikationsoverhead zwischen den einzelnen Systemen den Performancegewinn, der durch die parallele Verarbeitung entsteht, wieder relativiert.
Der erste kommerziell zu erwerbende Computercluster (ARCnet) wurde im Jahr 1977 von der Firma Datapoint vorgestellt. Mit dem so genannten VAXCluster für ihr
VAX-System hatte die Firma DEC im Jahr 1983 den ersten richtigen Erfolg im Bereich des kommerziellen Clustercomputing.

 

Arten von Computer Cluster

Das Ziel des Cluster Computing ist die Bereitstellung einer sehr hohen Rechenleistung bzw. einer besonders ausfallsicheren Rechnerumgebung. Von diesen Zielen ausgehend werden verschiedene Arten von Computercluster und dadurch auch deren Einsatzfeld definiert.
Bei Clustersystemen wird grundsätzlich zwischen homogenen und heterogenen Clustern unterschieden. Homogene Cluster zeichnen sich dadurch aus, dass die jeweiligen Computer, die dem Cluster angehören, alle das gleiche Betriebssystem und die gleiche Hardware einsetzen. Computer, die zu einem heterogenen Cluster gehören, dürfen über unterschiedliche Betriebssysteme und Hardware verfügen.
Heutzutage werden drei Arten von Computercluster unterschieden und eingesetzt:

  • Hochverfügbarkeit Cluster
    Hochverfügbarkeit Cluster werden verwendet die Verfügbarkeit zu steigern und für eine bessere Ausfallsicherheit zu sorgen. Aus diesem Grund darf die gesamte Hardware als auch die Software eines solchen Cluster in keinerWeise über einen Single-Point-of-Failure verfügen, da die Definition und der Zweck diesem widersprechen würde. Im Fehlerfall werden die Dienste von dem defekten Host des Cluster auf einen anderen Host automatisch übertragen. Einsatzgebiete solcher Clustersysteme sind Bereiche, in denen eine Ausfallzeit maximal einige Minuten pro Jahr erlaubt. Eine besondere Art von Hochverfügbarkeit Cluster sind die so genannten ’stretched Cluster’. In diesem Fall werden einzelne Hosts eines Cluster räumlich getrennt in verschiedene weit voneinander entfernte Rechenzentren untergebracht. Kommt es in einem der Rechenzentren zu einem nicht vorhersagbaren Problem, können die Hosts des anderen Rechenzentrums vollständig die Aufgaben übernehmen.
  • Load-Balancing Cluster
    Load-Balancing Cluster werden dazu verwendet eine Lastverteilung auf mehrere Computer zu ermöglichen. Aus der Benutzersicht steht ihm nur eine zentrale Einheit gegenüber, die aber logisch gesehen aus mehreren vernetzten Systeme besteht. Um die Leistung des gesamten Cluster zu erhöhen, werden nicht die einzelnen Hosts für sich aufgerüstet, sondern ein zusätzlicher Host dem Cluster hinzugefügt. Einsatzbereiche sind Umgebungen, in denen die Anforderungen an die Rechenleistung extrem hoch sind.
  • High Performance Computing Cluster
    High Performance Computing Cluster werden überwiegend dazu verwendet Berechnungsverfahren durchzuführen, wobei die Berechnungen auf mehrere Hosts verteilt werden. Hierbei werden zwei unterschiedliche Arten der Aufgabenverteilung unterschieden. Eine Möglichkeit besteht darin, die Aufgaben in unterschiedliche Pakete zu verteilen, die dann parallel auf mehreren Hosts ausgeführt werden. Die andere Variante wäre, die Aufgaben auf die einzelnen Hosts direkt zu verteilen. Einsatzgebiete der High Performance Computing Cluster liegen überwiegend in den wissenschaftlichen Bereichen, aber auch die Serverfarmen für das Rendern von 3D-Computergrafiken und Computeranimationen gehören zu dieser Art von Cluster.