Verteiltes Storage

Schritt-für-Schritt-Integration des Ceph Cluster Storage ins Netzwerk

| Autor / Redakteur: Thomas Joos / Rainer Graefen

Ceph wird mit dem Tool "ceph-deploy" bereitgestellt.
Ceph wird mit dem Tool "ceph-deploy" bereitgestellt. (Bild: Thomas Joos)

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.

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 wird mit dem Tool "ceph-deploy" bereitgestellt.
Ceph wird mit dem Tool "ceph-deploy" bereitgestellt. (Bild: Thomas Joos)

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

Was meinen Sie zu diesem Thema?

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45090634 / Software)