iX 5/2018
S. 126
Praxis
Storage
Aufmacherbild

Per Ceph Object Gateway Amazon S3 imitieren

Verwandlungskünstler

Zum Speichern einzelner Dateien in der Cloud ist Amazons S3-Protokoll weit verbreitet. Ceph kann zusammen mit dem Ceph Object Gateway zu einer lokalen S3-Installation mutieren, die alle wichtigen Funktionen des Originals beherrscht.

Object Stores sind in Mode. Während sich Dropbox, Google und Apple eher an Privatanwender richten, hat Amazon mit S3 IT-Profis im Visier.

Hören sie das Wort Cloud, denken die meisten Admins intuitiv zunächst an IaaS und Virtualisierung. Tatsächlich gibt es aber noch einen zweiten Dienst in der Cloud, der sich stetig zunehmender Beliebtheit erfreut – Object Storage. Das Konzept begegnet Anwendern gleich in mehreren verschiedenen Formen: Dropbox, Google Drive oder Apple iCloud etwa erlauben es Nutzern, Dateien komfortabel in der Wolke abzulegen. Maßgeblich ist hier die Integration in die gängigen Betriebssysteme stationärer wie mobiler Art, die bei allen drei genannten Ansätzen besonders gut ist.

Auch im professionellen IT-Umfeld hat das Speichern von Daten in der Cloud in der jüngeren Vergangenheit an Bedeutung gewonnen. Hier dominiert Platzhirsch Amazon mit seinem S3-Angebot den Markt. Verschiedene Backup-Programme bieten etwa ab Werk die Möglichkeit, angelegte Backups nicht nur auf einem lokalen Backup-Medium zu speichern, sondern diese gleich in Richtung S3 und damit in die Cloud hochzuladen. Oft kommt S3 heute sogar dort zum Einsatz, wo früher komplizierte Konstrukte auf Basis von NFS & Co. die Regel waren. Betreibt ein Anbieter etwa einen Onlineshop, der viele statische Dateien wie Produktbilder nutzt, muss er diese nicht mehr selbst hosten. Stattdessen lädt er diese „Assets“ nach S3 hoch und verweist in seiner Website bloß noch darauf. Am Ende zahlt er Amazon dafür zwar Traffic, doch viele Unternehmen nehmen das gerne in Kauf: Oft kann S3 entsprechende Inhalte schneller und zuverlässiger und trotzdem günstiger liefern als die eigene IT.

Dabei bezieht sich die Verbreitung von S3 nicht nur auf das Amazon-Produkt, sondern auch auf das zugehörige Protokoll. Viele Unternehmen, die Speicher in S3-Manier anbieten möchten, setzen auf S3-Nachbauten, die mit dem offiziellen Amazon-Dienst zumindest bei den Basisbefehlen weitgehend kompatibel sind. Davon existieren mittlerweile so einige – zum Teil auf Basis von Open Source, oft jedoch in kommerzieller Form. Dieser Artikel stellt das Ceph Object Gateway vor, mit dem Admins aus ihrem Ceph-Storage einen S3-kompatiblen Speicherdienst machen können, und zeigt, welche Hürden sie beim Setup besser umschiffen.

Eine Frage der Kompatibilität

Im Prinzip ist das Ceph Object Gateway ein weiterer Dienst, den Administratoren zusätzlich zu einem bestehenden Ceph-Cluster ausrollen. Vereinfacht handelt es sich um einen Daemon, der auf der einen Seite Befehle in S3-Syntax entgegennimmt und sie übersetzt, damit der Ceph-Cluster auf der anderen Seite sie versteht. S3 basiert auf dem RESTful-Prinzip, das genutzte Protokoll ist also durch die Bank HTTP(S). Operationen sind mit verschiedenen Kommandos assoziiert: Schickt ein Client etwa einen „Put Object“-Befehl, weiß das Ceph Object Gateway, dass nun der Upload einer Datei ansteht. Es nimmt die Datei des Clients entgegen und lädt sie per Ceph-Protokoll in den Cluster, wo sie schließlich permanent gespeichert ist.

Allerdings steckt der Teufel hier im Detail. Das Ceph Object Gateway rühmt sich damit, immerhin 21 verschiedene Befehle des S3-Protokolls zu beherrschen. Klingt nach einer ganzen Menge, doch wie viel Prozent der S3-Funktionen Ceph tatsächlich mit dem Object Gateway abbildet, lässt sich nicht sicher sagen. Zwar bekommt man ob der allgegenwärtigen S3-Nutzung und der Tatsache, dass es mittlerweile mehrere quelloffene S3-Nachbauten gibt, das Gefühl, einen offenen Standard zu verwenden. Tatsächlich ist das S3-Protokoll aber eben kein freier Standard und Amazon hat den verschiedenen S3-Nachbauten auch bis heute keinen offiziellen Segen erteilt. Praktisch alle heute im Markt existierenden und nicht von Amazon stammenden S3-Implementationen basieren auf einer Mischung aus Reverse Engineering und von Amazon bereitgestellten Informationen. Die zentrale Quelle hierbei ist die API-Dokumentation, die hat Amazon wenigstens veröffentlicht.

Für Admins bedeutet das, dass sie mit einem Eigenbau-S3 an das Amazon-Original nicht herankommen können. Immerhin: Das Ceph Object Gateway bietet bei den 21 unterstützten Operationen alle grundlegenden Befehle, die für das Speichern und das Abrufen von Dateien relevant sind. Wer als Admin ein S3 auf Basis von Ceph nachbaut, muss sich jedenfalls im Klaren darüber sein, dass dieser Clone nicht alle Funktionen des Originals bietet und Clients eventuell eine Fehlermeldung erhalten, wenn sie etwas exotischere S3-Funktionen verwenden wollen.

Anforderungen an die Hardware

Ein Amazon-S3-Clone erfordert im ersten Schritt die Planung der benötigten Hardware. iX hat bereits in mehreren Artikeln ausführlich die Installation und Konfiguration eines Ceph-Clusters sowie die grundsätzliche Funktionsweise von Ceph beschrieben [1–3]. Der weitere Artikel geht deshalb davon aus, dass ein fertig konfiguriertes Ceph samt genügend freiem Speicher zur Verfügung steht. Will man in ein bestehendes Ceph ein Ceph Object Gateway integrieren, gibt es zwei Optionen: Entweder man installiert das Programm auf den schon vorhandenen Knoten der Ceph-Installation oder man spendiert dem Ceph Object Gateway eigene Hardware, wobei letztere Variante mehrere Vorteile bietet.

Kommentieren