Am Anfang der Arbeit steht freilich die Installation von RADOS & Ceph. Ceph, das auf Linux-Systemen ein ganz normaler Dateisystem-Treiber ist, so wie beispielsweise auch Ext3 oder Ext4, ist seit Linux 2.6.34 fixer Bestandteil des Linux-Kernels und steht somit auf allen Distributionen mit diesem oder einem neueren Kernel zur Verfügung ( Abbildung 2 ). Mit RADOS sieht es etwas weniger rosig aus – in der Dokumentation [1] finden sich für alle gängigen Distributionen allerdings fertige Pakete oder zumindest Installationsanleitungen. Vorsicht: Obwohl jeweils von "ceph" die Rede ist, enthalten die entsprechenden Pakete auch alle für RADOS notwendigen Bestandteile. Sind die Pakete installiert, geht es mit den Vorbereitungen für RADOS weiter.
RADOS braucht OSDs – wie bereits erwähnt, kann jeder Ordner in einem Dateisystem als OSD fungieren. Allerdings muss das jeweilige Dateisystem Extended Attributes beherrschen. Die RADOS-Autoren selbst empfehlen Btrfs, erwähnen aber auch XFS als Alternative für alle, denen Btrfs noch zu heiß ist. Der Einfachheit halber geht dieses Beispiel im Folgenden davon aus, dass auf drei Servern jeweils ein Verzeichnis in
»/srv
«
namens
»osd.
ID
«
existiert, wobei
ID
jeweils durch den Hostname des Servers zu ersetzen ist. Heißen die drei Server
»alice
«
,
»bob
«
und
»charlie
«
, gäbe es auf
»alice
«
den Ordner
»/srv/osd.alice
«
und so weiter. Soll ein extra für diesen Zweck angelegtes lokales Dateisystem zum Einsatz kommen, so ist darauf zu achten, dass dieses unter
»/srv/osd.
ID
«
gemountet ist. Zu guter Letzt sollte auf jedem der Hosts in
»/srv
«
auch ein Ordner
»mon.
ID
«
vorhanden sein, wobei
ID
wie zuvor durch den tatsächlichen Hostname zu ersetzen ist.
Für dieses Beispielsetup könnte die zentrale RADOS-Konfiguration in
»/etc/ceph/ceph.conf
«
aussehen wie in
Listing 1
.
Listing 1
Beispielhafte /etc/ceph/ceph.conf
Die Konfigurationsdatei legt die folgenden Details fest: Jeder der drei Hosts stellt einen OSD sowie einen MON-Server zur Verfügung, auf Host
alice
läuft zusätzlich ein MDS, damit eventuelle Clients mit Ceph später die benötigten POSIX-kompatiblen Metadaten vorfinden. Die Authentifizierung zwischen den Knoten findet verschlüsselt statt, der passende Keyring liegt im Ordner
»/etc/ceph
«
und trägt im Beispiel den Namen
»
$name
.keyring
«
, wobei
»name
«
von RADOS später automatisch durch den tatsächlichen Wert ersetzt wird.
Wichtig ist, dass die Knoten des RADOS-Clusters sich untereinander jeweils über die in
»ceph.conf
«
verwendeten Hostnames direkt erreichen, sodass im Falle eines Falles
»/etc/hosts
«
um entsprechende Einträge zu erweitern ist. Außerdem muss für den Aufruf von
»mkcephfs
«
später der Login als
»root
«
auf allen RADOS-Knoten klappen und
»root
«
sollte
»sudo
«
ohne eine zusätzliche Passwortabfrage auf sämtlichen Knoten aufrufen können. Wenn das der Fall ist, folgt im nächsten Schritt das Anlegen des Keyrings, damit sich die RADOS-Knoten untereinander autentifizieren können:
»mkcephfs -a -c /etc/ceph/ceph.conf -k /etc/ceph/admin.keyring
«
.
Der nächste Schritt besteht darin, sicherzustellen, dass
»ceph.conf
«
auf allen Hosts vorhanden ist, die zum Cluster gehören (
Abbildung 3
). Ist das der Fall, ist auf sämtlichen Servern bloß noch RADOS selbst zu starten, was mittels
»/etc/init.d/ceph start
«
geschieht. Nach einigen Sekunden sollten sich die drei Knoten als Cluster zusammengefunden haben, überprüfen lässt sich das per
»ceph -k /etc/ceph/admin.keyring -c /etc/ceph/ceph.conf health
«
, das eine Ausgabe wie in
Abbildung 4
auf den Bildschirm befördern sollte.