Samstag, 11. Oktober 2008

entwickler.com Magazine Konferenzen Entwickler Akademie Entwickler-Forum Jobbörse Bücher
Software & Support Verlag




April 2006
aus Linux Enterprise Ausgabe: 07/08.2004
Verknotet
Clustering im Enterprise Computing
von Herbert Cornelius

Computer-Cluster stellen eine attraktive und effiziente Lösung für viele Probleme der heutigen IT dar, indem sie verbesserte Leistungen und Funktionalitäten bei gleichzeitig reduzierten Kosten liefern. Darüber hinaus bieten Cluster mehr Flexibilität und bessere Skalierbarkeit, um schnell und rechtzeitig auf veränderte Unternehmensanforderungen reagieren zu können.


Was ist ein Cluster? Abstrahiert man etwas von der jeweiligen Hardware- und Software-Implementierung, so besteht ein Computer-Cluster (Anhäufung) aus mehreren so genannten Rechen-Knoten (Nodes), die über ein oder mehrere Netzwerke (Interconnect) miteinander verbunden sind. Die Verarbeitung von Daten kann entweder von jedem dieser Knoten einzeln oder im Zusammenschluss mehrerer oder aller Knoten vorgenommen werden.

Das Konzept des Clusterings von Computer-Systemen ist nicht neu. Bereits in den 80er Jahren wurden Cluster mit proprietären Microcomputern eingesetzt. Im Zuge der technologischen Weiterentwicklungen begann man in den 90er Jahren, Cluster basierend auf Industrie-Standard-Komponenten einzusetzen, wobei zunächst einmal das Hauptaugenmerk auf die reine Funktionalität gelegt wurde, um zu sehen, ob ein Clustering mit PCs und Workstations überhaupt sinnvoll machbar und einsetzbar ist. Sehr schnell erkannte man das enorme Potenzial von Cluster-Lösungen mit Standard-Komponenten, insbesondere aufgrund der rasanten und kontinuierlichen Leistungssteigerungen der Intel-Prozessoren und Plattformen (Nodes) sowie des sehr attraktiven Preis/Leistungs-Verhältnisses und der industriellen Standardisierungen der Verbindungs-Netzwerke wie zum Beispiel Gigabit-Ethernet, Myrinet, SCI, QsNET und InfiniBand. Dazu kommt die kontinuierliche Weiterentwicklung und Verbreitung von parallelen Software- und Applikations-Technologien, z.B. im Betriebssystem, den eigentlichen Anwendungen, Tools und den Standard-Kommunikations-APIs wie etwa MPI (Message Pasing Interface), Sockets und TCP/IP.

Heute finden Cluster eine immer stärkere Verbreitung, insbesondere basierend auf dem Linux-Betriebssystem, das sich hervorragend für eine parallele Multi-Tasking- und Multi-Processing-Umgebung eignet. Abhängig von den Anforderungen und den jeweiligen Anwendungen werden für die Knoten Einzel-, Zweifach- oder Vierfach-Prozessor Server-Systeme eingesetzt. Dabei kann die Rechen-, Speicher- und I/O-Leistung der einzelnen Knoten individuell und flexibel angepasst werden. In letzter Zeit kommen auch immer mehr Blade-Systeme zum Einsatz, da diese den Platz- und Energieverbrauch optimieren können, ohne wesentliche Kompromisse an Leistung und Flexibilität eingehen zu müssen. Der prinzipielle Aufbau eines Clusters ist in Abbildung 1. dargestellt. Besonders wichtig sind mindestens zwei getrennte und unabhängige Interconnects, von denen eines auf hohe Bandbreiten und geringe Kommunikations-Latenzzeiten ausgelegt sein sollte. Heutige Cluster-Knoten basieren meistens auf Industrie-Standard-Systemen mit Intel Xeon- oder Intel Itanium-Prozessoren, eigenem lokalen Speicher, integriertem lokalen (Disk-) Storage mit optionalen Extern-Storage-Anschlussmöglichkeiten und integrierter (remotefähiger) System-Management/Diagnostic-Funktionalität.


Abb. 1: Schematischer Aufbau eines Clusters

Die Anwendungsbereiche von Linux-Clustern reichen von technisch-wissenschaftlichen Einsatzgebieten über industrielle Nutzung bis hin zum kommerziellen Enterprise Computing. Während im technischen und Ingenieur-Umfeld verstärkt High-Performance Computing (HPC)-Cluster zum Einsatz kommen, liegt die Cluster-Nutzung in der kommerziellen Datenverarbeitung eher im High-Availability (HA)-Bereich zur Steigerung der Ausfallsicherheit. Es sind aber auch Mischformen im Markt vorzufinden, denn speziell im Business Computing ist Leistung gefragt. Eine weitere Form der Cluster-Nutzung ist das so genannte Farming. Hierbei werden die Cluster, die meistens nur eine sehr lose Knoten-Verbindung untereinander aufweisen, zur Durchsatzsteigerung herangezogen. Bei größeren Cluster-Installationen kommt auch oft eine Kombination aller Betriebsmodi zum Einsatz.


Abb. 2: Blade-System-Komponenten

Einer der wesentlichen Vorteile von Clustern ist die hervorragende Skalierbarkeit. Durch das Hinzufügen von Knoten und Verbindungen lässt sich die Leistungsfähigkeit linear erhöhen, besonders für Durchsatz-orientierte Anwendungen. Eine gut parallelisierte Applikation kann diese zusätzlichen Ressourcen ebenfalls nutzen. Dadurch erhält man außerdem erwünschte Redundanzen und Sicherheiten für eventuelle Ausfälle einzelner Komponenten zur unterbrechungsfreien Weiterführung des Betriebes. Durch Benutzung von intelligenter (Cluster-) Management-Software lassen sich hierbei alle vorhandenen Ressourcen flexibel konfigurieren und diese können entsprechend den Anforderungen zeitnah bereitgestellt werden. Weitere Vorteile und Services lassen sich mit Cluster-Lösungen wie folgt implementieren:
  • High Performance Computing Services (HPC)
  • High Throughput Computing (Farming)
  • High Availability Services (HA)
  • Automatic Switch-Overs
  • Load Sharing und Load Balancing (Scale-out)
  • Disaster Recovery for Business Continuity

Zur Entwicklung von parallelen Anwendungen stehen neben den oben erwähnten Industrie-Standards zur Kommunikation auch Software-Lösungen für Cluster-Monitoring, Management und Kontrolle zur Verfügung (zum Beispiel SCALI-Manage) sowie Lastverteilungs- (LSF) und flexible Rekonfigurierungs-Tools. Damit erhält man eine abgerundete Software-Umgebung, um die Möglichkeiten der vorhandenen Hardware voll und effektiv ausschöpfen zu können. Linux zeigt sich hierbei als ein ideales Betriebssystem. Darüber hinaus bietet Intel beispielsweise mit seiner Cluster-Tools-Software ein Analysewerkzeug an, mit dem sich parallele Anwendungen basierend auf MPI auf optimale Kommunikationsleistung analysieren lassen. In Verbindung mit dem Intel VTune Analyzer, der den Ablauf von Anwendungen auf den einzelnen Knoten analysieren kann, erhält man einen kompletten Überblick über die Leistungsausschöpfung und das Leistungspotenzial eines Intel-basierten Clusters.

Anwendungsbeispiele für HPC-Cluster sind Systeme mit bis zu mehreren Tausend Knoten und Prozessoren an Universitäten und Forschungseinrichtungen, in naturwissenschaftlichen und Ingenieur-Bereichen wie auch im industriellen Umfeld, für Berechnungen und Simulationen im Automobil- und Flugzeugbau, bei der Erdöl-Exploration, in der pharmazeutischen Industrie und im Finanzsektor. Cluster-Systeme erhöhen hierbei die Rechenkapazitäten (Durchsatz) und verbessern Simulationsmöglichkeiten für größere und genauere Berechnungen und Analysen.
Cluster-Anwendungen in der kommerziellen Datenverarbeitung findet man vor allem im Datenbank und Applikations-Server Bereich, aber auch im Front-end Web und der Infrastruktur kommen Cluster Technologien zum Einsatz. Hauptaugenmerk liegt hier auf hoher Verfügbarkeit, hohem Daten/Transaktions Durchsatz und optimaler Lastverteilung. Oracle 9i RAC ist ein Beispiel für eine Datenbank, die Cluster als Hardware-Basis erfolgreich benutzt.

Aufgrund der hohen Leistungsfähigkeit bei niedrigen Kosten von Industrie-Standard-Prozessoren und Plattformen, in Verbindung mit Linux als Betriebssystem, intelligenter Cluster-Management-Software und parallelen Anwendungen stellen zum Beispiel Intel-basierte Cluster-Lösungen leistungsfähige, hochverfügbare, flexible und effiziente Systeme dar, auf die man im Enterprise Computing bereits heute und in Zukunft zählen kann.
Dr. Herbert Cornelius, Technical Marketing Manager, Intel GmbH, Feldkirchen bei München


    Hat Ihnen dieser Artikel gefallen? Dann abonnieren Sie das Entwickler Magazin direkt über unser Online-Formular.

zur vorherigen Seite
zurück
an den Anfang der Seite
nach oben
Diesen Artikel drucken
drucken
Diesen Artikel weiterempfehlen
empfehlen

Software & Support Verlag GmbH