Open Source im professionellen Einsatz
Linux-Magazin 05/2015
© dotshock, 123RF

© dotshock, 123RF

Compute-Cluster für Rechenzentren

Datacenter im Griff

Neben möglichst schlanken Betriebssystemen für die Cloud wecken auch umfassendere Ansätze das Interesse der Admins. So etwa das freie Cluster-Framework Mesos, das Rechenzentren antreibt.

938

Es gibt Bewegung auf dem Feld der Betriebssysteme. Kürzlich stellte das Linux Magazin schlanke quelloffene Varianten für die Cloud vor [1]. Doch auch für traditionelle Rechenzentren warten neue Ideen. Eine prominente heißt DCOS (Datacenter Operating System) und kommt von Mesosphere [2]. Wesentliche Komponente ist hier das Cluster-Framework Mesos von Apache [3], das seit etwa 2009 existiert und mittlerweile einige Fans zählt. Dazu gehören Schwergewichte wie Ebay [4], Netflix [5], Paypal [6] oder Twitter [7].

Grob betrachtet ist Mesos ein Gerüst, um alle Ressourcen eines Rechenzentrums möglichst effizient zu nutzen. Es entwickelt gewissermaßen die klassischen Berechnungscluster aus dem HPC-Umfeld weiter und fasst CPU, Speicher, Plattenplatz oder andere Ressourcen zu einem einzigen – verteilten – Konstrukt zusammen. Das sind genau die Aufgaben, die auf einem Einzelcomputer der Betriebssystemkern übernimmt. Der Anschaulichkeit halber bezeichnet das Projekt Mesos daher auch gern als verteilten Kernel für das Rechenzentrum.

Was bisher geschah

Wie viele Open-Source-Projekte entstand auch Mesos im universitären Umfeld. Konkret wirkten die Doktoranden Benjamin Hindman, Andy Konwinski, Matei Zaharia und ihr Professor Ion Stoica von der renommierten University of California, Berkeley, daran mit. Im Jahr 2009 erfolgte die öffentliche Vorstellung [8], zu jenem Zeitpunkt lautete der Codename des Projektes Nexus ([9], [10]). Damit die Anwender das Projekt nicht mit einem gleichnamigen anderen verwechseln, benannte es sich in Mesos um.

Mesos ist in C++ geschrieben, steht unter der Apache-Lizenz, aktuell ist Version 0.21. Das Projekt will es Admins ermöglichen, alle im Rechenzentrum verfügbaren Ressourcen einfach zu nutzen. Mesos ist ein Toplevel-Projekt der Apache-Foundation in der Kategorie Cloud.

Zwei Jahre nach der Erstveröffentlichung zeigten die Entwickler auf der Usenix-Konferenz 2011 [11] eine viel fortgeschrittenere Variante [12]. Zu diesem Zeitpunkt betrieben die Ingenieure von Twitter Mesos bereits seit einem Jahr in ihrer eigenen IT-Infrastruktur [13]. Manche von ihnen hatten zuvor bei Google gearbeitet und kannten dessen Pendant, das heute auf den Namen Omega ([14], [15]) hört. Inzwischen nutzen viele prominente Firmen Mesos, Ebay und Netflix sind nur die bekanntesten.

Mesos stellt ein Gerüst bereit, über das Admins die Ressourcen der IT-Landschaft nutzen. Damit dies effizient geschieht, müssen entsprechende Schnittstellen (APIs) vorhanden und hinreichend dokumentiert sein. Wer sich Mesos von dieser Seite nähert, findet unter [16] einen guten Einstieg. Dabei spielt es keine Rolle, ob der Entwickler eher C, C++, Java, Go oder Python bevorzugt.

Als Scheduler dient Mesos einer Reihe anderer Softwareprojekte im Rechenzentrum als Unterbau, Tabelle 1 listet einige auf, unter [17] gibt es auch eine sehr schöne Darstellung. In der Mesos-Sprache heißen diese "Nutznießer" verwirrenderweise Frameworks. Eine alternative Bezeichnung ist Mesos-Anwendung. Sie ergibt mehr Sinn, betrachtet man den anfänglichen Vergleich mit einem verteilten Betriebssystemkern (Abbildung 1). Der Artikel verwendet beide Begriffe synonym und geht auch auf Marathon und Chronos ein.

Tabelle 1

Bekannte Mesos-Frameworks

Kategorie

Framework, URL

Continuous Integration

Jenkins http://jenkins-ci.org, Gitlab http://gitlab.com

Big Data

Hadoop http://hadoop.apache.org, Cassandra http://cassandra.apache.org, Spark http://spark.apache.org, Storm http://storm.apache.org

Meta/Hochverfügbarkeit

Aurora http://aurora.incubator.apache.org, Marathon http://mesosphere.github.io/marathon/

Verteilter Cron

Chronos http://github.com/mesos/chronos

Abbildung 1: Apache Mesos dient gewissermaßen als ein über das Rechenzentrum verteilter Betriebssystemkern für eine Reihe verschiedener Frameworks, die Tabelle 1 auflistet.

Meister und Sklaven

Die Architektur hinter Mesos [18] ist gleichermaßen einfach und komplex. Ganz grob formuliert gibt es zwei Rollen: Master und Slaves. Master heißt der Hauptprozess. Er nimmt die Anfragen der Frameworks entgegen und gibt sie an andere Mitglieder im Mesos-Verbund weiter. Das sind die Slaves oder Worker, sie verrichten die eigentliche Arbeit. Was genau sie tun, hängt vom verwendeten Framework beziehungsweise der Mesos-Anwendung ab.

Der Master übernimmt den ersten Schritt einer zweistufigen Aufgabenplanung. Tritt ein Slave oder Worker dem Mesos-Verbund bei, teilt er dem Mesos-Chef mit, welche Ressourcen er in welcher Menge mitbringt. Der Master protokolliert diese und bietet sie den Frameworks an.

Im zweiten Schritt der Aufgabenplanung entscheidet die Mesos-Anwendung, welche konkreten Jobs sie den angebotenen Ressourcen zuordnet. Der Master nimmt diese Anforderung entgegen und verteilt sie auf die Slaves. Es gibt also zwei Scheduler: den Master und die Mesos-Anwendung (Abbildung 2).

Abbildung 2: Das Zusammenspiel zwischen Mesos-Anwendung (Framework) und Mesos (Master und Slave) beim Abarbeiten von Aufgaben.

So genannte Exekutoren führen den Job anschließend aus. Etwas abstrakt gesprochen handelt es sich dabei um Framework-verwandte Prozesse, die auf den Slaves ihre Arbeit verrichten. Im einfachsten Fall handelt es sich um schlichte (Shell-)Kommandos. Für die in Tabelle 1 gelisteten Frameworks dienen die jeweiligen Laufzeitumgebungen beziehungsweise abgespeckte Versionen des Framework selbst als Exekutoren.

Der Master bestimmt, wann ein Job beginnt und endet. Allerdings kümmert sich der Slave oder Worker wiederum um die Details. Er verwaltet die Ressourcen für den Prozess und überwachte das Ganze. In der Mesos-Sprache entspricht ein Framework-Job einer Slave- oder Executor-Task (Abbildung 2). In dem Analogon eines Betriebssystems wäre es ein Thread.

Wie erwähnt protokolliert der Mesos-Master, welche Ressourcen jeder Slave in den Verbund einbringt beziehungsweise zur Laufzeit noch zur Verfügung hat. Im Auslieferungszustand sind die Anzahl der Prozessoren, der Hauptspeicher sowie der Plattenplatz und die freien Netzwerkports vordefiniert. Ohne Zusatzkonfiguration gibt der Slave also einfach weiter, was er zum gegenwärtigen Zeitpunkt parat hat. Typischerweise legt der Admin fest, welche Ressourcen er dem Mesos-Verbund in welchem Umfang spendiert [19].

Die Anzahl der Prozessoren und der freie Hauptspeicher nehmen dabei eine gewisse Sonderposition ein. Mangelt es einem Slave an einem von beiden, kann er keine anderen Ressourcen in den Mesos-Cluster einbringen [20]. Beide sind jedoch notwendig, um auch nur ein einfaches Kommando auszuführen – unabhängig vom benötigten Plattenplatz oder den notwendigen Netzwerkports. Selbstverständlich lassen sich weitere – selbst erfundene – Ressourcen definieren, weitere Details dazu finden Interessierte unter [20].

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

comments powered by Disqus

Ausgabe 10/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.