Die richtigen Kräfte bündeln
High Performance Cluster sind mindestens ebenso leistungsfähig wie proprietäre Supercomputer und dabei noch wesentlich günstiger. Doch welche Komponenten zeichnen einen effektiven Cluster aus?
Beowulf, der Held altenglischer Sagen, ist 1994 auferstanden – und zwar als High Performance
Cluster, einem Rechnerverbund, den die NASA als Supercomputer eingesetzt hat. Heute werden Cluster
gern auch in Unternehmen genutzt. Zum Einsatz kommen sie vor allem bei besonders rechenintensiven
Anwendungen, etwa bei aufwändigen Crash-Simulationen bei Automobilherstellern oder bei komplexen
Berechnungen im technisch-wissenschaftlichen Bereich.
Höchstleistungs-Cluster haben zwei wesentliche Bestandteile: eine nahezu beliebige Anzahl an
Knoten und ein Verbindungsnetzwerk. Ein Knoten besteht aus einem Ein- oder Mehrprozessorsystem, das
auch für den Einzelbetrieb geeignet wäre. Einer der Knoten ist der Master-Knoten und dient als
Schnittstelle zur Außenwelt, über die das Management, die Benutzerinteraktion und der
Netzwerkverkehr abgewickelt werden. Die übrigen Knoten fungieren als Rechenknoten. Ihre Aufgabe
besteht darin, Rechenleistung bereitzustellen – je mehr, desto besser.
Die richtige Cluster-Hardware
Die Wahl der einzelnen Cluster-Systeme hängt in erster Linie von der geplanten Größe eines
Clusters ab, wie viel Platz vorhanden ist und wie viel Rechenleistung benötigt wird. Bei kleineren
Clustern, etwa Failover Clustern, die gewöhnlich aus zwei Servern bestehen, sind herkömmliche
Tower-Server beziehungsweise Standgeräte ausreichend. Ihre Leistung reicht locker für Aufgaben wie
Web-Serving oder für Datenbanken.
Bei High Performance Clustern sehen die Anforderungen etwas anders aus. Sie müssen sehr hohe
Rechenleistungen bringen und bestehen oft aus mehreren hundert Systemen. Dafür eignen sich nicht
zuletzt wegen ihrer platzsparenden Konstruktion Rack- und/oder Blade-Server: Sie bieten maximale
Leistung auf kleinem Raum.
Rack-Server sind "Flunder"-flach und oft nur eine Höheneinheit hoch (1U = 4,45 Zentimeter).
Derzeit passen zwei Prozessoren in diese Systeme. Das bedeutet, dass in einem Standard-Rack (=183,4
Zentimeter) bis zu 42 solcher Rack-Server und damit 84 Prozessoren Platz finden.
Noch leistungsfähiger sind Blade-Server, etwa Systeme wie Dells Poweredge 1855. In sein
7U-Gehäuse passen bis zu zehn Blades, die senkrecht wie in ein Bücherregal eingeschoben werden. Auf
jeder "Klinge" gibt es Platz für zwei Intel-Xeon-Prozessoren. Damit bieten Blades mehr Leistung in
einem Standard-Rack-Schrank als RackServer: Es passen sechs Blade-Server mit beachtlichen 120
Prozessoren hinein.
Ein weiterer Vorteil von Blade-Servern: Die Kosten für die Hardware sind bis zu 25 Prozent
niedriger, da alle Blades Ressourcen wie Strom, Kühlung, Managementkarten und Netzwerk-Switches
gemeinsam nutzen. Die Verkabelung reduziert sich gegenüber konventionellen Servern um bis zu 70
Prozent. Dies mag banal klingen, wer aber Serversysteme öfter aufbaut, weiß, wie viele Nerven damit
geschont bleiben.
Optimale Vernetzung von Cluster-Knoten
Die Vernetzung der einzelnen Knoten ist sehr wichtig, denn sie beeinflusst die
Leistungsfähigkeit eines Clusters maßgeblich. Für die Beurteilung der Performance von
Verbindungsnetzwerken sind zwei Parameter ausschlaggebend: Latenz (Zeit zwischen Versand und
Empfang von Daten) und Bandbreite (maximale Geschwindigkeit der Datenübertragung). Angestrebt wird
eine möglichst niedrige Latenz und eine möglichst hohe Bandbreite.
Vor diesem Hintergrund eignen sich drei Technologien ganz besonders für die Vernetzung von
Clustern: Gigabit Ethernet, Infiniband und Myrinet. Bei Gigabit Ethernet erfolgt die Verkabelung
sternförmig um den zentralen Switch. Gigabit Ethernet verfügt über eine Latenzzeit von wenigen
Millisekunden und hat Bandbreiten von bis zu 10 GBit/s.
Etwas schneller ist Myrinet. Es wurde speziell für Cluster entwickelt und hat eine schnelle
Latenz von unter zehn Mikrosekunden. Die Bandbreite liegt bei mehreren GBit/s. Wenn es noch
schneller gehen soll, hilft Infiniband: Auf Basis von Standards ermöglicht Infiniband, Server,
Speichersysteme und andere Peripheriegeräte im Netz leichter und zudem mit einer höheren
Durchsatzrate miteinander zu verbinden, und zwar mit bis zu 60 GBit/s.
Microsoft oder Linux?
Um Wildwuchs zu vermeiden und den Cluster einfacher managen zu können, sollten die einzelnen
Knoten identisch sein und über dasselbe Betriebssystem verfügen. Anwender sind bei Clustern schon
längst nicht mehr nur auf Unix angewiesen. PC-Lösungen, die auf Microsoft Windows und Linux
basieren, etablieren sich immer mehr.
Bei der Windows-Server-2003-Produktfamilie gibt es zwei Arten von Cluster-Diensten: Microsoft
Cluster Services (MSCS) und Network Load Balancing (NLB). Der MSCS-Dienst steht nur unter Windows
Server 2003 Enterprise Edition und Datacenter Edition zur Verfügung. Er gewährleistet eine hohe
Verfügbarkeit und Skalierbarkeit bei Datenbanken, Messaging-Systemen sowie Datei- und
Druckdiensten.
Der (NLB-)Dienst ist fester Bestandteil aller Versionen der Windows-Server-2003-Familie und
sorgt für den Lastenausgleich beim eingehenden Datenverkehr. NLB verbessert sowohl die
Verfügbarkeit als auch die Skalierbarkeit von Programmen wie Webservern, Streaming Media-Servern
und Terminaldiensten.
Aber auch Linux spielt mittlerweile eine wichtige Rolle bei Cluster-Lösungen, insbesondere im
technisch-wissenschaftlichen Sektor. Die Entwicklung von Linux zu einer Business-fähigen Plattform
mit Clustering-Eigenschaften hat zu einer preisgünstigen Alternative für bestehende Unix-Workloads
geführt.
Einfaches Cluster-Management
Besonders wichtig ist ein effektives Management, denn je mehr Einzelkomponenten ein Cluster hat,
desto komplexer die Administration. Es gibt drei effektive Lösungen: Felix, Scali und Rocks.
Felix verfügt neben Installationsfunktionen auch über Management-Features, und ermöglicht so
Rechnerknoten einer bestehenden Konfiguration hinzuzufügen, zu ändern oder auch Knoten zu
entfernen. Für Cluster-Monitoring stehen die Standard-Linux-Tools und die Software Ganglia bereit.
Unter Ganglia arbeiten die Rechnerknoten als Daemon, der Systeminformationen an den Master-Knoten
übermittelt. Statische Informationen werden im Multicast-Verfahren einmal pro Stunde verschickt,
dynamische Informationen wie Angaben zur Auslastung der CPUs oder der Anzahl der gerade laufenden
Prozesse alle fünf Sekunden.
Mit Scali Manage können Administratoren mehrere Subcluster von einem einzigen Master-Knoten aus
verwalten. Ebenso wie Felix unterstützt Scali Manage Fast Ethernet, Gigabit Ethernet, Myrinet und
Infiniband. Die Implementierung von Scali Manage stützt sich auf den SNMP-Daemon, der sowohl auf
den Rechnerknoten als auch auf dem Master-Knoten läuft. Überwacht werden dann unter anderem die
Auslastung von CPU, Hauptspeicher, Festplatten und Kommunikationsleitungen. Bei Bedarf können
Grenzwerte für bestimmte Variablen festgelegt werden, bei deren Überschreiten ein Alarm ausgelöst
wird und Gegenmaßnahmen zu ergreifen sind.
Im Unterschied zu Felix und Scali, die als Betriebssystem-Add-on arbeiten, integriert NPACI
Rocks ohne spezielle Änderungen im Kernel Cluster-Funktionen in die Linux-Distribution von Red Hat
Linux. Die Open-Source-Lösung vereinfacht die Installation, die Administration und den Betrieb von
standardbasierenden Clustern. Das gesamte quelloffene Paket ermöglicht es Anwendern, die
Gesamtbetriebskosten eines Clusters deutlich zu reduzieren. Rocks unterstützt
Intel-32-Bit-Prozessoren, aber auch Itanium und EM64T Xeon.
High Performance Cluster bestehen aus allgemein verfügbaren und in aller Regel preiswerten
Standardkomponenten und bieten deshalb ein exzellentes Preis-Leistungs-Verhältnis. Es ist bedeutend
einfacher, einen Rechnerverbund auf dem neuesten Stand der Technik zu halten als einen proprietären
Supercomputer: Cluster haben Standardbausteine, die sich problemlos erweitern und aktualisieren
lassen. Cluster-Lösungen sind nahezu beliebig ausbaufähig (skalierbar). So können Administratoren
ohne größeren Aufwand weitere leistungsstärkere Prozessoren ergänzen sowie I/O- und
Kommunikationsbandbreite erhöhen. Darüber hinaus sind Cluster sehr ausfallsicher: Sollte eines der
Systeme im Verbund ausfallen, übernimmt eines der verbliebenen seine Aufgaben.