Verteiltes Storage Schritt-für-Schritt-Integration des Ceph Cluster Storage ins Netzwerk
Um „Ceph“-Speicher im Netzwerk zu integrieren, sind drei Voraussetzungen zu erfüllen: Bereitstellung aller Ressourcen, der Storage-Cluster muss erstellt sein und die Clients erhalten Zugriff auf den Cluster. Autor Thomas Joos zeigt, wie dabei vorzugehen ist.
Anbieter zum Thema

Will man Ceph im Netzwerk auf einem Cluster zur Verfügung stellen, müssen die Cluster-Knoten (Ceph Nodes) und die Clients (Ceph Clients) vorbereitet werden.
Die Installation von Ceph im Netzwerk vorbereiten
Vor allem auf den Ceph-Nodes sind Vorbereitungen notwendig, bevor Ceph installiert werden kann. Dazu gehört die Installation und Einrichtung von „NTP“, einem SSH-Server und einem Benutzer mit dem Ceph im Cluster bereitgestellt werden kann.
Auch die notwendigen Ports für den Zugriff auf Ceph im Netzwerk müssen freigeschaltet werden. Dazu gehört zum Beispiel der Port TCP 6789. Die entsprechenden Anleitungen für die verschiedenen Distributionen sind in der Ceph-Dokumentation zu finden.
Ein Ceph-Cluster besteht aus mehreren Rollen. Die Monitoring-Nodes verwalten den Cluster und haben den Überblick über die einzelnen Knoten. Die Object Storage Nodes, auch „Object Storage Devices“, OSDs genannt, stellen den Speicher dar.
Cluster einrichten
Wenn die Vorbereitungen laut der Ceph-Dokumentation abgeschlossen sind, besteht der nächste Schritt darin, den Ceph-Cluster bereitzustellen. Ein Ceph-Cluster besteht aus mehreren Ceph-Knoten. Dazu steht auf den Knoten der Befehl ceph-deploy zur Verfügung.
Ceph-Knoten werden auf diesem Weg mit der Syntax ceph-deploy new node1 erstellt. Anschließend erfolgt die Bereitstellung und Konfiguration der weiteren Knoten sowie die Anbindung an das Netzwerk. Auch diese Schritte werden in der Ceph-Deploy-Dokumentation beschrieben.
Ceph-Clients und Ceph Block Devices
Die meisten Benutzer speichern die Daten nicht direkt im Ceph-Cluster, sondern nutzen ein Ceph-Block-Device, das Ceph-Filesystem und Ceph-Object-Storage. Auch diese müssen entsprechend konfiguriert werden. Damit ein Block-Device installiert werden kann, ist der Ceph-Client notwendig.
Dieser wird zum Beispiel über ceph-deploy install ceph-client installiert. Um ein Block Device zu konfigurieren, muss ein Block Device Image erstellt werden, zum Beispiel mit:
rbd create foo --size 4096 [-m {mon-IP}] [-k /path/to/ceph.client.admin.keyring]
Anschließend kann das Image auf dem Client gemapped werden:
sudo rbd map foo --name client.admin [-m {mon-IP}] [-k /path/to/ceph.client.admin.keyring]
Im nächsten Schritt kann das Dateisystem erstellt werden:
sudo mkfs.ext4 -m0 /dev/rbd/rbd/foo
Um das Dateisystem auf dem Knoten bereitzustellen, werden die folgenden Befehle verwendet:
sudo mkdir /mnt/ceph-block-device
sudo mount /dev/rbd/rbd/foo /mnt/ceph-block-device
cd /mnt/ceph-block-device
Diese Befehle sind nicht zwingend, eignen sich aber als Beispiel für den ersten Einstieg. Ceph lässt sich sehr flexibel und umfassend konfigurieren. In der „kraken-Dokumentation von Ceph befinden sich auch umfassende Anleitungen für das Anlegen eines Ceph Block Devices.
Ceph-Filesystem nutzen
Das Ceph-Filesystem (CephFS) kann genutzt werden, wenn der Ceph-Cluster fehlerfrei funktioniert und die Ceph-Knoten aktiv sind. Um ein Dateisystem zu erstellen, sind einige Befehle notwendig, die in der Ceph-Dokumentation http://docs.ceph.com/docs/kraken/cephfs/createfs genauer beschrieben sind.
Für das Erstellen werden zunächst Pools erstellt und danach das eigentliche Dateisystem:
ceph osd pool create cephfs_data <pg_num>
ceph osd pool create cephfs_metadata <pg_num>
ceph fs new <fs_name> cephfs_metadata cephfs_data
Auch das Bereitstellen des Dateisystems wird in der Dokumentation beschrieben (http://docs.ceph.com/docs/kraken/cephfs/kernel). Die Bereitstellung wird zum Beispiel mit den folgenden Befehlen durchgeführt:
sudo mkdir /mnt/mycephfs
sudo mount -t ceph 192.168.0.1:6789:/ /mnt/mycephfs
Mit dem neuen Storage-Backend „Blue Store“ ist Ceph auch ohne Dateisystem nutzbar. Dadurch lassen sich Private-Cloud-Umgebungen performanter betreiben. Blue Store kann die Speicherknoten im Cluster-Knoten. Neben dem Dateisystem CephFS kann auch „XFS“, „Etx4“ oder „btrfs“ verwendet werden.
Ceph-Object-Gateway verwenden
Mit einem Ceph-Object-Gateway kann die Bereitstellung von Ceph wesentlich einfacher durchgeführt werden. Das Gateway stellt einen Webzugriff zur Verfügung, so dass die Konfiguration eines Webservers oder von „FastCGI“ entfällt.
Die Bereitstellung kann über ceph-deploy durchgeführt werden. Die Entwickler zeigen die einzelnen Schritte zur Bereitstellung eines Ceph-Object-Gateway ebenfalls in der Ceph-Dokumentation. Der Port, der bei der Bereitstellung angegeben wird, muss durch die Linux-Firewall des Ceph-Knotens erlaubt werden.
Bei der Verwendung des Ports 80 werden zum Beispiel folgende Befehle verwendet:
sudo firewall-cmd --list-all sudo firewall-cmd --zone=public --add-port
80/tcp --permanent
sudo firewall-cmd --reload
Der Zugriff kann von einem Browser aus mit der Adresse http://<Ceph-Knoten>:<Port> getestet werden.
*Thomas Joos ist frei Autor, schreibt IT-Fachbücher und -artikel. Auf DataCenter-Insider finden sich seine Tipps und Tricks für Administratoren in „Toms Admin-Blog“
(ID:45090634)