Website-Icon adminForge

Ceph Cluster unter Debian Wheezy installieren

Eine flexible Storage-Lösung wird in der heutigen Zeit immer wichtiger. Ich möchte euch in einem Quick-Guide die einfache Installation von Ceph unter Debian Wheezy vorstellen.

CephFS ist ein verteiltes Dateisystem, welches Teil der Software Ceph ist. Zusammen mit RADOS (englisch reliable autonomic distributed object store) handelt es sich um einen über beliebig viele Server redundant verteilbaren Objektspeicher (object store). Objekte sind beispielsweise Binärdateien, die Ceph zu einem über mehrere Geräte verteilten Blockgerät zusammenfassen kann.

Die Objekte werden repliziert gespeichert. Ceph kann den Ausfall von jeder Komponente auffangen und sich selbst heilen, das heißt, zerstörte Daten aus Replikaten auf anderen Speichermedien wiederherstellen.

Punkt 1: Vorbereitung der Umgebung

In diesem Tutorial verwende ich 3 virtuelle KVM Maschinen, wobei /dev/vda für das Betriebssystem und /dev/vdb für Ceph vorgesehen wird.
Die drei VM’s erhalten die Namen test1, test2 und test3. Dies hinterlegen wir zuallererst in der /etc/hosts.

Nun installieren wir den NTP Dienst auf allen Nodes, damit das Cluster synchron in der Zeit läuft.

Um im nachfolgenden Schritt mit ceph-deploy arbeiten zu können, erstellen wir einen SSH-Key ohne Passphrase und verteilen diesen auf allen Nodes.
WICHTIG: Ceph-Deploy wird immer von einer Administrator Node und einem Ordner aus installiert und verwaltet. In meinem Fall ist es die Node test1 und der Ordner /root/.

Ich hatte mich der Aktualität halber mit Ceph Version 0.88 beschäftigt. Damit wir CephFS und RBD später einwandfrei nutzen können, brauchen wir mindestens den Linux Kernel 3.15. Diesen installieren wir über die Debian-Backports.

Installieren den Kernel und rebooten alle Nodes.

Punkt 2: Installation von ceph-deploy

Nun sind alle 3 Nodes vorbereitet und per SSH untereinander ohne Passwortabfrage erreichbar. Die Installation von dem Ceph Admin-Tool kann beginnen.

Punkt 3: Ceph Cluster anlegen

Auf unserer ersten Node test1 im Ordner /root/ beginnen wir nun mit der Erstellung unseres Ceph-Clusters.

Es befindet sich nun die Master Konfigurationsdatei ceph.conf im Ordner /root/, die wir auch gleich um folgende Zeilen erweitern.

Das public_network ist für den Traffic vom Clienten zu den OSD’s und zurück, in meinem Fall das interne Netz 10.10.20.0/24. Das cluster_network ist alleine für die Kommunikation unter den OSD’s, MON’s und MDS’s zuständig. In diesem Tutorial ebenfalls das selbe interne Netz. Mehr könnt ihr in der offiziellen Dokumantion nachlesen.

Die osd pool default size von 3 bestimmt die Anzahl der Replicas, also wie oft ein Object in einem Cluster vorhanden sein soll. Default ist 3.
Die osd pool default min_size von 1 bestimmt die Anzahl von minimalen Rplicas die im Cluster vorhanden sein müssen. Sollte dieser Wert erreicht sein ist der Storage im Schutzmodus und nicht mehr beschreibbar. Default ist 2.

Die Kalkulation von Placement Groups ist ein etwas längeres Thema, wird hier jedoch gut beschrieben. Da wir ein Cluster von 3 OSD’s (je Node eine Festplatte = eine OSD) haben, stellen wir den pg_num Wert default auf 128.

Punkt 4: Ceph Installation

Jetzt kann Ceph auf allen 3 Nodes installiert werden, wieder über die Admin-Node test1.

Der Zusatz –testing damit wir auf Version 0.88 kommen – ACHTUNG das könnte bei eurem Versuch eine andere Version sein.

Punkt 5: MON Installation

In einem Rutsch installieren wir den MON Dienst auf allen 3 Nodes.

Fügen die zwei IP-Adressen der Nodes test2 und test3 der /root/ceph.conf hinzu.

Und verteilen die Konfiguration auf allen 3 Nodes.

Punkt 6: OSD erstellen

Jetzt geht es an die Festplatten. Dies übernimmt praktischerweise auch ceph-deploy vollautomatisch für uns.
ACHTUNG: Es werden alle Daten auf /dev/vdb gelöscht!

Auf allen 3 Nodes sollten nun jeweils ein MON und ein OSD Dienst laufen.

Der Cluster Status sollte ebenfalls OK sein.

Punkt 7: MDS installieren, CephFS mounten

Um CephFS nutzen zu können, benötigen wir einen MDS Dienst in unserem Cluster. Wir nehmen unsere Admin-Node test1 für diese Zwecke.

Das Filesystem benötigt ebenfalls einen Pool und eine kleine Vorbereitung. Das erledigen wir mit diesen wenigen Befehlen.

Wir benötigen den Admin Key um das Filesystem mounten zu können. Alles nach ‚key =‚ wird benötigt.

Wir erstellen das Verzeichnis /cephfs

… und editieren unsere /etc/fstab. Die IP-Adresse muss eine der 3 Monitoring Server sein, in diesem Beispiel ist es test1.

Zu guter Letzt mounten wir unser CephFS, die Fehlermeldung kann dabei ignoriert werden.

Webinterface und Sonstiges

Als kleines Schmankerl könnt ihr ein kleines Webinterface namens Kraken installieren. Dies bietet eine kleine visuelle Darstellung eures Ceph Clusters.

https://github.com/krakendash/krakendash

Folgende Unterseiten der Dokumentation von Ceph könnten euch interessieren.

Alles über die Placement Groups: http://ceph.com/docs/master/rados/operations/placement-groups/
RBD Block Device erstellen: http://ceph.com/docs/master/start/quick-rbd/

Deinstallation

Wer Ceph entfernen möchte kann wie folgt vorgehen.

Ceph auf nur einer Node

Damit Ceph auf einer Node agieren kann müssen wir den folgenden Wert vor Cluster-Erstellung in der ceph.conf hinzufügen.

Dieser Wert bewirkt, dass Ceph zwischen den OSD’s der lokalen Node repliziert und nicht auf remote Nodes.

1
Die mobile Version verlassen