iX 1/2018
S. 126
Praxis
Storage-Verwaltung
Aufmacherbild

Mehr Komfort fürs Ceph-Deployment mit DeepSea

Tiefseetaucher

Ceph ist komplex und schon das Ausrollen eines einfachen Clusters eine schwierige Aufgabe. SUSEs DeepSea basiert auf SaltStack und erleichtert das automatische Ceph-Deployment spürbar.

Die Vorteile von Paketen wie Ceph im Vergleich zu klassischen Storage-Umgebungen wie SANs liegen auf der Hand: Wer Ceph installiert, nutzt Hardware von der Stange und kostenlose Software. Dem stehen jedoch auch Nachteile gegenüber: So ist das Installieren eines käuflichen SAN viel leichter als das von Ceph, weil es genügt, das Gerät ins Rack zu schrauben und mit dem lokalen Netz zu verbinden. Für alle weiteren Schritte stehen grafische Verwaltungswerkzeuge bereit.

Bei Ceph gestaltet sich das Setup deutlich komplizierter: Hier startet man im Normalfall mit einer Wagenladung von Servern und verschraubt diese im ersten Schritt in den Racks des RZ. Dann folgt das Aufspielen eines Betriebssystems, bevor der Cluster selbst an der Reihe ist. Ein Ceph-Cluster besteht aus vielen Komponenten: Die Monitoringserver (im Fachjargon als MONs bezeichnet) überwachen den Cluster, die „Objekt Storage Daemons“ (kurz OSDs) enthalten die Daten und die Metadatenserver liefern dem Ceph-Dateisystem CephFS die benötigten POSIX-Informationen. Folglich hat es der Administrator mit diversen „losen Enden“ zu tun: Für jede Festplatte im Cluster muss auf dem jeweiligen Host ein OSD-Daemon laufen. Zudem stellen viele Firmen für eine bessere Performance ihren Ceph-OSDs flotte SSDs zur Seite, die als Journal-Gerät dienen und zusätzliche Komplexität nach sich ziehen. Darüber hinaus sollten die MON- und Metadatenserver sinnvoll im Cluster verteilt sein.

Komplexe Ceph-Installation

Bis aus nacktem Blech ein sinnvoll konfigurierter Ceph-Cluster entsteht, ist einige Arbeit und Zeit nötig. Und mit der Erstinstallation ist das nicht vorbei: Möchte der Administrator zum Verwalten des Clusters im laufenden Betrieb ein schickes GUI haben, so muss er auch das selbst installieren. Obendrauf kommen regelmäßige Wartungsarbeiten wie der Austausch von OSDs oder das Hinzufügen zusätzlicher Knoten – eben das Skalieren, was ja ein Hauptgrund ist, sich für Software-defined Storage zu entscheiden. Ein Ceph-Cluster lässt sich „zu Fuß“ kaum verwalten: Ein effizienter Betrieb des Clusters erfordert Automatisierung.

Innerhalb der Community und gerade auch bei der hinter der Ceph-Entwicklung stehenden Firma Inktank ist das bekannt. Der Hersteller bietet deshalb seit einigen Jahren ein auf den Namen ceph-deploy getauftes Python-Skript an, mit dem sich ein Ceph-Cluster automatisch ausrollen lässt – zumindest die unmittelbar zu Ceph gehörenden Komponenten, also OSDs, MONs und Co. Leider trifft automatisch in diesem Fall aber nur bedingt zu: Zwar lässt sich mit mehreren ceph-deploy-Aufrufen tatsächlich ein funktionierender Ceph-Cluster starten, jedoch fehlt ein Framework, wie man es von typischen Automatisierungsprogrammen wie Ansible kennt. Um das Einrichten von ceph-deploy etwa muss sich der Administrator selbst darum kümmern, und verschiedene Zusatzdienste wie das Ceph-Frontend openATTIC lassen sich damit erst gar nicht ausrollen. Zwar existieren im Internet diverse Ansätze, ceph-deploy mit Ansible, Puppet oder Chef zu paaren – wie aus einem Guss wirken diese aber nicht. Hinzu kommt, dass eine solche Bastelei das Verwalten der Ceph-Konfigurationsdateien nur für die Erstinstallation übernimmt: ceph-deploy schreibt sein Ergebnis zwar nach /etc/ceph/ceph.conf, verändert diese Konfiguration im weiteren Verlauf jedoch nicht mehr. Will oder muss der Administrator etwas ändern, darf er sich selbst dieses Problems annehmen.

Nürnberger Konfigurationshilfe

Bereits gegen Ende 2016 kündigte SUSE an, sich intensiv mit dem Thema Ceph-Deployment auseinanderzusetzen. Kein Wunder: Noch zu Zeiten, als Inktank eine eigenständige Firma war, kursierten regelmäßig Gerüchte, SUSE habe ein Auge auf den Ceph-Hersteller geworfen. Bekanntlich war Red Hat schneller beziehungsweise großzügiger, was die Nürnberger jedoch nicht daran gehindert hat, Ceph zur zentralen Komponente des eigenen SUSE Enterprise Storage (SES) zu machen. Wenn SUSE also das Thema Ceph-Automation auf die To-do-Liste setzt, dann hat das in erster Linie mit der Notwendigkeit zu tun, für die eigenen Produkte ein gutes und robustes Ceph-Deployment-Framework zu bauen. Ein knappes Jahr später gibt es nun in Form des „DeepSea“-Projektes handfeste Resultate. Dessen Benennung ist freilich ein Wink mit dem Zaunpfahl: Der Name Ceph rührt bekanntlich von der Tierfamilie der Cephalopoden her, also der Kopffüßler oder Oktopusse, die gerade in der Tiefsee zu Hause sind.

Erste Tests zeigen: Tatsächlich lässt sich mit DeepSea ein Ceph-Cluster nicht nur schnell, sondern auch komfortabel ausrollen. Anders als viele Bastellösungen auf Basis von Ansible & Co. ist DeepSea tatsächlich komplett in die üblichen SUSE-Abläufe integriert. Und es bietet echten Mehrwert: Per Klick etwa liefert es selbst openATTIC aus, SUSEs hauseigene Verwaltungssoftware für Storage-Systeme. Der weitere Artikel zeigt auf der Basis von openSUSE, wie sich mit DeepSea in kürzester Zeit ein kompletter Ceph-Cluster inklusive aller Verwaltungsfunktionen installieren lässt – einschließlich openATTIC.