sysGen Cluster-Software

Software ist ein sehr gewichtiger Cluster-Aspekt, weil unter diesen Begriff viele unterschiedliche Komponenten fallen:
- Anwendungen, welche auf dem Cluster laufen sollen
- Software, welche die einzelnen Teile des Clusters (Knoten, Netzwerk, etc) zusammenfasst und als ein System zur Verfügung stellt
- Entwicklungs-Tools, die eingesetzt werden
- Überwachungs-und Reporting-Tools zur Kontrolle und Steuerung
Nachstehend folgt ein Überblick darüber, welche Softwarekomponenten in einem Cluster eingesetzt werden können, wofür sie gebraucht werden und wie sie zusammenarbeiten.
Basic-Clustering
In den Cluster-Kindertagen konnte man Cluster einfach so erstellen, wie man wollte. Alles was gebraucht wurde, war ein Betriebssystem auf Installations-CD, mit welcher man von Knoten zu Knoten gehen konnte, um das Betriebssystem zu installieren. Danach mussten noch Netzwerk und eine Liste der verfügbaren Knoten abgeglichen werden und schon stand ein Cluster mit Grundfunktionalität zur Verfügung. Natürlich fehlten noch ein paar Kleinigkeiten wie Userverwaltung, Log-In für jeden Knoten ohne Passwortangabe, ein gemeinsames Filesystem für alle Compute-Nodes, …
Auch wenn das alles extrem einfach erscheint, war die Pflege dieser Cluster extrem aufwändig. Für Betriebssystem-Updates musste(n) das neue Betriebssystem heruntergeladen, eine oder mehrere CDs erstellt und auf jedem Knoten installiert werden. Kleinere Änderungen konnten über das Netzwerk verteilt und installiert werden. Der Aufwand für Clustermanagement war selbst für kleinere Cluster extrem hoch und eigentlich nur für einzelne Anwender geeignet.
Erforderliche Software-Komponenten
Die erste, grundlegende Software-Komponente für Cluster ist das Betriebssystem (engl. Operating System (OS)), über welches jeder Knoten verfügen muss. Das Betriebssystem kann auf einer HDD oder SSD eines Knotens installiert werden oder, bei einem Boot aus dem Netz, auf einer RAM-Disk im Hauptspeicher residieren, was auch als "diskless" oder "stateless " Node bezeichnet wird. In vielen Fällen wird auf dem Front-End-Prozessor (auch Headnode, oder Master genannt) ein Image für jede Knotengruppe erstellt und danach auf jeden Knoten einer Gruppe verteilt.
Die zweite Software-Komponente wird häufig als Cluster-Management-Tool (CMT) bezeichnet und wird zur Überwachung und Administration des Cluster eingesetzt. Es bietet eine Vielzahl von Funktionen, von welchen einige optional eingesetzt werden können:
- Führt eine Liste der verfügbaren Cluster-Knoten (Cluster-Nodes), welche als einfache /etc/hosts Datei, die auf alle Knoten des Clusters repliziert wird oder über einen lokalen DNS-Server (DNS = Domain Name System) realisiert werden
- Erstellen und verwalten von Node-Images oder eine Reihe von Paketen, welche auf den Cluster-Knoten installiert werden
- Verteilung der Images oder Pakete auf die Cluster-Knoten, was meistens über PXE realisiert wird
- Durchführen einer Basisüberwachung aller Clusterknoten, wie z.B. Welche Knoten laufen oder sind ausgefallen, Knotenauslastung, Prozessortemperaturen, Lüfter-Drehzahlen, Stromversorgung, Speicherfehler, Plattenausfälle, etc
- Power-Kontrolle über die Cluster-Knoten, Switches, etc, welche optional ist – aber dringend zu empfehlen ist. Sie ermöglicht es Knoten und Switche aus der Entfernung (remote) ein-und ausschalten sowie den Power-Status zu ermitteln.
Sollten Anwender mit Cluster-Erfahrung die Liste als zu kurz empfinden, umfassen sie doch die Kernfunktionalität eines CMT. Weitere Funktionen mögen ganz erfreulich sein, sind aber für die Cluster-Administration nicht wesentlich.
Nachfolgend finden Sie Beispiele für CMT-Pakete:
- Platform OCS (http://www.platform.com/Products/platform-open-cluster-stack5)
- Clustercorp ROCKS + (http://www.stackiq.com/)
- Microsoft Windows CCS (http://www.microsoft.com/hpc/default.aspx)
- Platform Manager (http://www.platform.com/Products/platform-manager)
Optionale Komponenten
Obwohl die Anzahl benötigter Werkzeuge recht klein ist, bieten sie eine grundlegende Cluster-Funktionalität welche allerdings sehr rudimentär ist und sich bestenfalls nur für ein bis drei Anwender eignet. Darüber wird nur eine begrenzte Kontrolle über die Cluster-Funktionen ermöglicht. Erst mit folgenden, optionalen Komponenten, welche zur CMT-Software hinzugefügt werden können oder als Zusatzschicht darüber implementiert werden, wird der Cluster Produktionsqualität erreichen. Der Einsatz dieser Zusatzkomponenten ist dringend zu empfehlen:
- Weitere umfangreiche Monitoring-Tools einschließlich einer grafischen Darstellung des Cluster-Status. Beispiele sind Ganglia (http://ganglia.info/), Nagios (http: / / www.nagios.org/) und Kakteen (http://www.cacti.net/)
- Ein Reporting-Tool, mit dessen Hilfe Berichte über den Cluster-Zustand erstellt werden können
- Administrations-Tool für Anwenderkonten (ermöglicht die Einrichtung und Pflege von Benutzerkonten auf dem gesamten Cluster, ermöglicht Anwendern ihr Kennwort zu setzen und es auf alle Knoten im Cluster zu propagieren und ohne Passworteingabe (password-less) sich auf den Knoten anzumelden, was eine Voraussetzung für MPI-Anwendungen ist
- Job-Scheduler, auch als Ressourcen-Manager bezeichnet. Ein Job Scheduler ist ein Warteschlangen(Queuing)-System, welches es Anwendern ermöglicht ihre Jobs zur Ausführung zu übergeben, ohne zur realen Ausführungszeit anwesend zu sein. Job Scheduler unterhalten Warteschlangen der übergebenden (submitted) Jobs, welche gestartet werden, sobald für den Ablauf des Jobs notwendige Ressourcen wie Anzahl von Compute-Nodes mit erforderlichen Prozessoren, Speicherausbau, Netzwerkinterface, GPGPU-Grafikprozessoren, etc zur Verfügung stehen. Beispiele für Job-Scheduler sind Torque, Torque mit Maui, Sun Grid Engine (SGE), PBS-Pro, MOAB und Platform LSF
- In vielen Fällen werden Software-Entwicklungs-Tools installiert, zu denen Compiler, Editoren, Debugger, Bibliotheken, etc gehören. Für Linux-Installation kann die kostenlose gcc-Toolchain, welche Bestandteil quasi jeder Linux-Distribution ist, installiert werden. Beim Einsatz von Windows muss hier eine Compiler-Suite wie Windows Visual Studio käuflich erworben werden. In vielen Fällen sind für auch Linux Software-Tools von Intel, AMD, Portland, etc empfehlenswert
- Ein extrem nützliches Tool, welches den Remote-Zugriff auf alle Clusterknoten ermöglicht, ist IPMI (Intelligent Platform Management Interface). IPMI besteht aus, auf dem Main Board integrierter Zusatzhardware und Software. Mit IPMI können Sie sich remote an jeden Knoten anmelden, sammelt Informationen über die Knoten, wie Temperaturen, Drehzahlen Hardwarefehler, etc und ermöglicht es entfernte Server hoch- und herunterzufahren und gibt Auskunft über den Powerstatus. Eine typische Software hierfür ist ipmitool. Viele Firmen benutzen für das entfernte hoch- und herunterfahren der Server magische Namen wie “lights out management”, DRAC oder ILO, obwohl die Funktionalitäten bereits im IPMI enthalten sind.
Es gibt keine Artikel unter dieser Kategorie
