iX 12/2018
S. 120
Praxis
Storage-Cluster
Aufmacherbild

Ceph mit Ansible-Playbooks ausrollen und betreiben

Durchgespielt

Wer einen Ceph-Cluster nicht nur experimentell betreiben will, kommt um ein geeignetes Management-Framework nicht herum. Red Hat hat dafür zum Shootingstar Ansible gegriffen und fertige Playbooks zum Verteilen und Verwalten der Ceph-Knoten erstellt.

Ceph, der hochverfügbare, verteilte und robuste De-facto-Standard für SDS (Software-defined Storage), wird heute in den unterschiedlichsten Größenordnungen eingesetzt. Unter den Anwendern sind große Forschungseinrichtungen wie das CERN oder Betreiber großer OpenStack-basierter Public Clouds wie die Deutsche Telekom.

Ceph basiert auf einem einheitlichen Object Storage und lässt sich als objekt-, block- oder dateibasierter Speicher nutzen. Das SDS-Konzept versucht vor allem drei Anforderungen Rechnung zu tragen, bei denen klassische Enterprise-Storage-Systeme an ihre Grenzen stoßen können: Das Storage-System soll insbesondere durch das bequeme Hinzufügen von Storage-Knoten in die Breite skalieren, die Software soll die Daten zudem flexibel und selbstständig auf dem Cluster verteilen sowie Single Points of Failure vermeiden.

Der Nachteil gegenüber klassischem Enterprise Storage liegt in dem Aufwand, den das Vorbereiten der beteiligten Knoten, das Bereitstellen, Verteilen und Konfigurieren der einzelnen Dienste sowie Erweiterungen und Wartungsarbeiten mit sich bringen. Hierfür hatte die von Red Hat übernommene Ceph-Entwicklerfirma Inktank ursprünglich das Werkzeug ceph-deploy ersonnen, mit dem sich die Komponenten des Ceph-Clusters automatisch ausrollen lassen [1].

Nicht geeignet ist ceph-deploy aber für das Verwalten von Langzeitinstallationen. So ist auch in der README-Datei von ceph-deploy zu lesen: „If you set up and tear down Ceph clusters a lot […] this is for you.“ Im Fokus von ceph-deploy stehen also Entwickler.

Rollen, in Drehbüchern niedergeschrieben

Für größere Installationen, die einen höheren Automatisierungsgrad voraussetzen, benötigt man deshalb unabhängige Werkzeuge [2]. Neben selbst erstellten Hilfsmitteln mit Automatisierungs-Frameworks wie Puppet, Chef und Ansible existieren mittlerweile etablierte Projekte, die vor allem die Ceph-Distributoren vorantreiben. Dazu zählt einerseits SUSEs Management-Framework DeepSea, das auf SaltStack aufsetzt, andererseits das von Red Hat für die Bereitstellung des Red Hat Ceph Storage genutzte Framework ceph-ansible, das den Shootingstar der Continuous-Integration-Werkzeuge Ansible verwendet [3]. Mit diesem Ansible Playbooks for Ceph will Red Hat das Bereitstellen und Pflegen von Ceph-Clustern komfortabler gestalten und damit auch beschleunigen.

ceph-ansible setzt sich aus einer Reihe aufeinander aufbauender Rollen für Ansible zusammen. Es eignet sich für paket- und containerbasierte Installationen eines Ceph-Clusters auf CentOS, Red Hat Enterprise Linux, Ubuntu und Debian. Ebenso kann es Updates und Upgrades durchführen, bestehende Cluster übernehmen, neue Nodes und neue Platten hinzufügen, außerdem mit mehreren Ceph- sowie Ansible-Releases sowie mit vielen OSD-Szenarien (Object Storage Daemons) umgehen, etwa Collocated und Non-collocated, Logical Volume Manager, Filestore oder BlueStore. ceph-ansible übernimmt dabei Verwaltungsaufgaben wie das Erstellen von Pools oder das Ausrollen der CRUSH Map. Zudem ist die Integration einzelner Rollen in andere Frameworks möglich.