NAS-Speicher mit einer Kapazität von einigen Dutzend Terabyte, wie sie sich für mittelständische Anwender eignen, nimmt die ADMIN-Redaktion in der Ausgabe ... (mehr)

Die Software besorgen

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.

Abbildung 2: Nach dem Laden des

OSDs vorbereiten

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.

Abbildung 4: Ob der RADOS-Paxos-Cluster funktioniert, lässt sich mittels der Ceph-eigenen "health"-Option herausfinden.
Abbildung 3: Welche Ceph-Dienste auf einem Host laufen, lässt sich mittels
comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019