Klippen auf dem Weg zum Cluster

03.09.2003
Von 
Ludger Schmitz war freiberuflicher IT-Journalist in Kelheim. Er ist spezialisiert auf Open Source und neue Open-Initiativen.

Ein häufig zu wenig beachteter Faktor bei der Kalkulation der Cluster-Dimension ist die Verbindung der Knoten untereinander. In einem kleineren Cluster wird ein "Masternode" alle Zugriffe auf die Knoten abwickeln. Dieser Zugangsprozessor lenkt nicht nur die Abfragen der Endanwender. Er verteilt als "Pre-Prozessor" auch die Anwendungen auf die Subsysteme, kontrolliert die Abwicklung der Prozesse und überwacht den Zustand der Einzel-Server. Es kann schon angesichts der Auslastung dieses zentralen Servers empfehlenswert sein, hier ein 64-Bit-System einzusetzen, während der Rest des Clusters mit preisgünstigeren 32-Bit-Prozessoren arbeiten kann. So lässt sich einem möglichen Engpass schon am Zugang des Clusters vorbeugen.

Hardware zur Steuerung des Verbundes

Bei größeren Clustern wird man die vielfältigen Steuerungsaufgaben auf verschiedene spezialisierte Masternodes verteilen, beispielsweise könnte eine separate Einheit für die Systemadministration freigehalten werden. Oder es gibt einen E-Mail-fähigen Spezial-Node für die Überwachung der Prozesse, der die Anwender informiert, wenn ihre Applikationen abgearbeitet sind. Ein separater Masternode zum Handling der Anwender-Requests empfiehlt sich schon allein deshalb, weil sich dadurch die Sicherheit eines Clusters deutlich erhöhen lässt.

Neben den Masternodes arbeiten "Compute-Nodes" an der eigentlichen Erledigung der Aufgaben. Sie sind nach den Multiprozessorfähigkeiten der Applikationen in Gruppen organisiert. Dabei müssen sie nicht nur mit den Masternodes, sondern auch untereinander kommunizieren. Sie parallelisieren die Segmente der Anwendungen und führen die Einzelberechnungen der Nodes am Ende zusammen. Dies geschieht über Message Passing, wobei sie gemeinsame Libraries, die Message Passing Interfaces (MPIs) verwenden.

Hardwareseitig läuft die Kommunikation über verschiedene Interconnect-Techniken. Diese Verbindungen haben unterschiedliche Bandbreiten, nämlich 12 Megabit pro Sekunde (Mbit/s) bei Fast-Ethernet, 125 Mbit/s bei Gigabit-Ethernet, 80 Mbit/s bei 32-Bit-Myrinet, 160 Mbit/s bei 64-Bit-Myrinet, 200 Mbit/s beim "Scalable Coherent Interface" (SCI) von Scali und maximal 30 Gb/s bei Infiniband. Entsprechend langsam oder schnell ist die Latenzzeit, die Zeit, die zur Übergabe eines Datenpakets zwischen zwei Knoten benötigt wird. Die Interconnects arbeiten mit unterschiedlichen Protokollen: mit TCP/IP bei Standard-Ethernet, mit der "Virtual Interface Architecture" (VIA) bei Gigabit-Ethernet, SCI sowie mit dem Protokoll "Grand Message" im Falle Myrinet.

Für eine Entscheidung, welche Interconnects in einem Cluster Verwendung finden sollen, ist nicht nur die Frage zu klären, welche Protokolle von den Applikationen unterstützt werden. Auch der Preis allein - Myrinet-Verbindungen sind deutlich teurer als Ethernet-Karten - ist nicht ausschlaggebend. Schließlich werden sich das Preis-Leistungs-Verhältnis und die Leistungsfähigkeit eines Clusters nicht an abstrakten Benchmarks, sondern nur an der Performance der Anwendungen messen lassen. Entscheidend ist in erster Linie das Verhalten der Applikation im Cluster.