Kolumne: Die flinke Feder

Das Cluster ist der Computer

Bernd Fondermann

Irgendetwas muss man ja tun, um die schöne, steil ansteigende Kurve von Moore’s Law immer weiter zu malen. Vor einigen Jahren ging das noch so: Auf der X-Achse einen Strich machen, die gängigen CPUs des jeweiligen Jahres nehmen, ihre Taktung auf der Y-Achse eintragen, und fertig war sie. Dabei wurde verschwiegen, dass das „Gesetz“ sich eigentlich auf die Zahl der Transistoren auf dem Hauptprozessor bezieht, nicht auf den Herzschlag des kleinen Quarzkristalls, der seinen Takt angibt. Dann kamen Dual-, Quad- und andere Multicores, und die Kurve konnte steil weitergezeichnet werden. Und heute? Abgesehen von Grafikchips wächst die Zahl der Transistoren nicht mehr so stark. Oder doch? Schaut man sich die riesigen Computer-Cluster an, wie sie von den Googles, Facebooks, Amazons und Apples dieser Welt betrieben werden, dann kommt man vielleicht zu einem anderen Schluss. Diese IT-Leistungssportler schrauben nicht mehr Server für Server ins Rack, sondern lassen sich ganze Schränke reihenweise komplett funktionstüchtig, also „schlüsselfertig“, liefern. Selbstverständlich geht dann niemand hin und installiert auf der ersten Maschine einen Tomcat, auf der zweiten WebSphere und auf den nächsten dreien MySQL, sondern sämtliche Server werden automatisiert mit derselben Software ausgestattet in einen Verbund aufgenommen. Nach außen hin, also zu den Nutzern, verhält sich ein solcher Cluster wie ein einheitlicher Computer. Und die Gesamtzahl der CPU-Transistoren wird durch diese Art der Erweiterung stetig weiter in die Höhe getrieben.

Gleichzeitig übrigens werden die Administrationskosten pro Recheneinheit reduziert, da alles automatisiert ist und der Cluster mit Ausfällen umgehen kann. Geht eine Maschine in die Knie, so wird sie einfach abgeschaltet, und andere teilen sich ihre Aufgaben. Niemand macht sich auf den Weg und tauscht das Netzteil aus oder schaut aufs Mainboard. Viel zu teuer. Lieber beizeiten ein weiteres Rack aktivieren. Für die Nutzer ist es schließlich unerheblich und auch nicht sichtbar, wie groß das Cluster ist.

Den regelmäßigen Leser dieser Seite wird es nicht verwundern, dass der Autor Apache Hadoop [1] als ein Musterbeispiel dafür sieht, wie man ein solches Cluster umsetzen kann. Eine andere Lösung ist Apache Cassandra [2]. Solche Systeme können sich über Tausende von Rechnern erstrecken. Keine dieser Maschinen funktioniert für sich alleine, nur der Verbund lässt sie zu einem nutzbaren System werden. Mehr als diese Produkte haben sich seit ein paar Jahren Virtualisierungslösungen in Rechenzentren breit gemacht. Die virtuelle Maschine abstrahiert von der Hardware: Auf einem physikalischen Rechner laufen mehrere virtuelle Computer. Geht die echte Hardware in die Knie, lassen sich VMs auf andere echte Maschinen migrieren. Doch ein solches Setup hat seinen Preis.

Das führt zu der Frage, wie man diese Rechnermassen mit Open Source managen kann. Für die konkrete Konfiguration und das Aufspielen von Software auf einzelnen Maschinen mögen Chef [3] und Puppet [4] die richtigen deklarativen Tools sein. Doch das ist nicht genug. Jede Cloud – also die Plattformen, die viele Rechner auf Zuruf bereitstellen können – verhält sich anders. Und den Cluster als ganzen möchte man am liebsten einheitlich verwalten können, ob er nun im eigenen oder fremden Rechenzentrum steht.

Das Open-Source-Projekt jcloud [5] bietet ein Framework, um mit beliebigen Cloud-Providern zu interagieren. Apache Whirr [6] ist in der Lage, mittels jcloud komplette Hadoop- oder auch HBase-Cluster aufzubauen. Dabei akquiriert Whirr selbsttätig die Cloud-Maschinen beim Anbieter Ihrer Wahl. Auch Ambari [7] aus dem Incubator kann Hadoop-Cluster installieren. Es nutzt dazu Puppet und bereits aktivierte Hardware, ob im eigenen Rechenzentrum oder in der Wolke. Über die Ambari-Weboberfläche kann man den Cluster administrieren und die über Ganglia bereitgestellten Vitalitätsdaten des Clusters einsehen.

Selbstverständlich heißt „Cluster“ nicht immer automatisch „Hadoop“. Um die Maschinen eines Rechenzentrums flexibel verschiedenen Cluster-Lösungen zur Verfügung zu stellen, wird derzeit Mesos im Apache Incubator entwickelt. Mesos [8] steht zwischen den Knoten und der eigentlichen Cluster-Software. Doch welcher Nutzer kann welche Maschinen verwenden? Teilen sich User die in einem Rechenzentrum zur Verfügung stehenden Computing-Ressourcen, sollte man einen Blick auf VCL [9] werfen, ebenfalls im Apache Incubator zu finden. Es funktioniert wie ein Reservierungssystem. Tashi [10] ist ähnlich gelagert. Es bietet sogar einen Image-Server, von dem die Rechner installiert werden können. Allerdings ist es auf der Developer-Liste von Tashi recht ruhig.

Wie man an der erklecklichen Liste von in Entwicklung befindlichen Projekten sieht, ist die Toollandschaft im Cloud-Management-Bereich noch sehr unübersichtlich. Jedes Werkzeug hat sein eigenes Einsatzfeld, aber es gibt auch einige Überschneidungen. Jedenfalls wird der Cluster mit jedem Tool ein kleines bisschen mehr zum Computer.

Bernd Fondermann (bernd@zillion-one.com) ist freiberuflicher Softwarearchitekt und Consultant in Frankfurt a. M. und Member der Apache Software Foundation. Er beschäftigt sich mit innovativen Open-Source-Technologien wie Apache Hadoop oder Lucene und bietet unter zillion-one.com einen Big-Data-Hosting-Service an.
Geschrieben von
Bernd Fondermann
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.