Ceph ist ein verteiltes Speichersystem, das sich nahtlos in Proxmox integrieren lässt und eine hochverfügbare und ausfallsichere Storage-Lösung bietet. In dieser Anleitung erfahren Sie Schritt für Schritt, wie Sie auf Ihrem Proxmox-Server ein Ceph-Cluster installieren.

Schritt 1: Voraussetzungen prüfen

Bevor Sie mit der Proxmox-Installation von Ceph beginnen, sollten Sie sicherstellen, dass Ihre Umgebung die grundlegenden Anforderungen erfüllt. Ceph ist ein Speichersystem, das Daten über mehrere Server hinweg repliziert. Damit diese Redundanz zuverlässig funktioniert, benötigen Sie mindestens drei Proxmox-Knoten. So kann das System auch dann weiterarbeiten, wenn ein Knoten ausfällt.

Achten Sie außerdem darauf, dass die Bare-Metal-Installation von Proxmox auf allen Servern abgeschlossen und Proxmox auf dem neuesten Stand ist. Jeder Knoten sollte über eine eigene, ungenutzte Festplatte verfügen, die ausschließlich für Ceph-OSDs vorgesehen ist. Diese Laufwerke bilden später den eigentlichen Speicher Ihres Clusters. Ebenso wichtig ist eine schnelle und stabile Netzwerkverbindung zwischen den Knoten, um Latenzen gering zu halten. Außerdem benötigen Sie auf allen Hosts Root-Zugriff, da die Installation Systemänderungen erfordert.

Überprüfen Sie mit folgendem Befehl, welche Version von Proxmox aktuell auf Ihrem System installiert ist:

pveversion
bash

Vergleichen Sie die Versionsnummern auf allen Knoten. Wenn Unterschiede bestehen oder Ihre Installation nicht mehr aktuell ist, führen Sie ein Update durch, um alle Systeme auf denselben Stand zu bringen:

apt update && apt full-upgrade -y
reboot
bash

Sobald alle Knoten aktualisiert und erreichbar sind, ist Ihre Umgebung bereit für die Installation von Ceph.

Hinweis

Obwohl es sich hierbei um keine zwingend notwendige Voraussetzung handelt, sollten Sie für den produktiven Einsatz von Proxmox und Ceph SSDs verwenden. Ceph profitiert stark von schnellen Schreib- und Lesezugriffen, da jeder Datensatz mehrfach repliziert und über mehrere Knoten verteilt wird.

Dedicated Server
Dedizierte Server mit modernsten Prozessoren
  • 100 % Enterprise-Hardware
  • Minutengenaue Abrechnung
  • Nur bei uns: Cloud-Funktionen

Schritt 2: Ceph-Repository aktivieren

Damit Sie Ceph bequem über die Paketverwaltung installieren können, müssen Sie zunächst das passende Repository auf jedem Ihrer Proxmox-Knoten aktivieren. Dieses Repository enthält alle notwendigen Ceph-Pakete, die von Proxmox speziell angepasst und getestet wurden. Melden Sie sich dazu als Root-User auf jedem Host an und führen Sie den folgenden Befehl aus:

pveceph install
bash

Dieser Befehl richtet automatisch das offizielle Ceph-Repository von Proxmox ein und installiert die grundlegenden Ceph-Komponenten. Damit die neuen Paketquellen auch aktiv werden, aktualisieren Sie Ihre Paketliste mit:

apt update
bash

Schritt 3: Ceph auf dem ersten Knoten initialisieren

Im dritten Schritt wird das eigentliche Ceph-Cluster auf Ihrem ersten Proxmox-Knoten vorbereitet. Sie legen das Netzwerk fest, über das die Cluster-Kommunikation läuft, und richten den ersten sogenannten Monitor ein. Dieser Monitor ist ein zentraler Bestandteil von Ceph: Er überwacht den Zustand des Clusters, verwaltet die Cluster-Mitglieder und stellt sicher, dass alle Komponenten stets denselben Informationsstand haben.

Starten Sie die Initialisierung auf dem ersten Proxmox-Host mit folgendem Befehl:

pveceph init --network 10.0.0.0/24
bash

Das Subnetz 10.0.0.0/24 ist nur ein Beispiel. Verwenden Sie das interne Netzwerk, über das Ihre Proxmox-Knoten direkt miteinander verbunden sind. Mit pveceph init wird die grundlegende Ceph-Konfiguration auf Ihrem ersten Knoten angelegt. Dabei erstellt Proxmox unter anderem die zentrale Cluster-Konfigurationsdatei, den Ceph-Keyring, der für die Authentifizierung innerhalb des Clusters benötigt wird, sowie die notwendigen Systemverzeichnisse für Ceph-Dienste.

Sobald die Initialisierung abgeschlossen ist, können Sie den ersten Monitor-Dienst einrichten:

pveceph createmon
bash

Dieser Befehl startet den Monitor-Prozess und registriert ihn im Cluster. Ab diesem Moment existiert ein funktionsfähiger, aber noch alleinstehender Ceph-Knoten. Der Monitor beginnt, Statusinformationen zu sammeln und legt damit die Grundlage für die spätere Kommunikation mit weiteren Knoten.

Hinweis

In einem Ceph-Cluster werden in der Regel mindestens drei Monitore verwendet. Das hat den Vorteil, dass der Cluster auch dann weiterarbeiten kann, wenn ein Monitor ausfällt. Erst wenn mehrere Monitore vorhanden sind, kann Ceph einen sogenannten Quorum-Zustand erreichen. Hierbei handelt es sich um eine Mehrheit, die Entscheidungen über den Cluster-Zustand treffen kann.

Schritt 4: Weitere Knoten zum Cluster hinzufügen

Damit Ceph die gewünschte Ausfallsicherheit bietet, müssen Sie nun die weiteren Proxmox-Knoten in das Ceph-Cluster aufnehmen. Jeder zusätzliche Knoten bringt Redundanz und Speicherkapazität. Melden Sie sich hierzu auf den anderen Knoten an und führen Sie dort nacheinander die folgenden Befehle aus:

pveceph install
pveceph createmon
bash

Auf diese Weise richten Sie auch auf den anderen Hosts Monitore ein. Sobald alle Monitore aktiv sind, können Sie den Status Ihres Clusters auf einem beliebigen Knoten überprüfen, indem Sie folgenden Befehl nutzen:

ceph -s
bash

Die Ausgabe zeigt Ihnen, welche Monitore und Dienste aktuell laufen. Wenn dort mehrere Monitore aufgelistet sind, haben Sie erfolgreich alle Knoten eingebunden.

Schritt 5: OSDs erstellen

Die OSDs (Object Storage Daemons) sind das Herzstück Ihres Ceph-Clusters. Jede Festplatte, die Sie für Ceph verwenden, wird zu einer eigenen OSD-Einheit. Diese Daemons sind dafür verantwortlich, Ihre Daten auf die Laufwerke zu schreiben, zu replizieren und wieder bereitzustellen, wenn sie von einem anderen Knoten oder einer virtuellen Maschine angefordert werden. Je mehr OSDs Ihr Cluster besitzt, desto höher sind sowohl Speicherkapazität als auch Leistung. Bevor Sie mit der Einrichtung beginnen, sollten Sie prüfen, welche Laufwerke auf Ihrem Knoten verfügbar sind. Das geht mit dem folgenden Befehl:

lsblk
bash

Die Ausgabe zeigt Ihnen alle im System erkannten Festplatten und Partitionen. Achten Sie darauf, nur ungenutzte Laufwerke für Ceph zu verwenden. Greifen Sie nur auf die Laufwerke zurück, die nicht das Betriebssystem enthalten und nicht gemountet sind. Sobald Sie ein geeignetes Laufwerk, in unserem Falle /dev/sdb gefunden haben, können Sie es als OSD initialisieren:

pveceph createosd /dev/sdb
bash

Dabei wird das Laufwerk automatisch formatiert und Ceph richtet die benötigte Struktur ein. Anschließend wird der OSD-Daemon gestartet und in das Cluster integriert. Alle vorhandenen Daten auf dem ausgewählten Laufwerk werden gelöscht. Vergewissern Sie sich daher unbedingt, dass die Festplatte wirklich nur für Ceph vorgesehen ist.

Wiederholen Sie diesen Vorgang auf allen Knoten und für alle Laufwerke, die Sie in Ihren Proxmox-Ceph-Speicher einbinden möchten. Je nach Clustergröße und Hardware kann es einige Minuten dauern, bis alle OSDs vollständig eingebunden sind.

Überprüfen Sie anschließend, ob Ihre soeben eingerichteten OSDs korrekt erkannt wurden und aktiv sind. Verwenden Sie dazu den folgenden Befehl:

ceph osd tree
bash

Dank der übersichtlichen Baumstruktur können Sie leicht erkennen, wie Ihre Speichergeräte im Cluster verteilt sind und ob sie fehlerfrei laufen.

Schritt 6: Ceph-Manager und Dashboard aktivieren

Damit Sie Ihr Proxmox-Ceph-Cluster bequem überwachen und verwalten können, installieren Sie nun den Ceph-Manager (kurz MGR). Dieser Dienst sammelt Leistungsdaten, überwacht alle aktiven Komponenten und stellt über verschiedene Module zusätzliche Funktionen bereit. Eine dieser Funktionen ist auch das integrierte Web-Dashboard. Installieren Sie den Manager-Dienst auf Ihrem Proxmox-Knoten mit untenstehendem Terminalbefehl:

pveceph createmgr
bash

Sobald der Manager aktiv ist, können Sie das Dashboard-Modul einschalten. Es wird automatisch vom MGR-Dienst bereitgestellt und muss lediglich aktiviert werden:

ceph mgr module enable dashboard
bash

Das Dashboard bietet Ihnen eine benutzerfreundliche Oberfläche, über die Sie den Status Ihres Clusters einsehen, die Auslastung der OSDs und Monitore verfolgen sowie Warnmeldungen direkt erkennen können. Rufen Sie es über Ihren Browser und den Standardport 8443 auf:

https://<PROXMOX_IP>:8443

Ersetzen Sie hierbei PROXMOX_IP durch die IP-Adresse des Proxmox-Knotens, auf dem der Ceph-Manager installiert wurde.

Schritt 7: Ceph-Pools anlegen und testen

Nachdem Ihr Ceph-Cluster erfolgreich eingerichtet und alle OSDs aktiv sind, können Sie nun den eigentlichen Speicherbereich anlegen, in dem Ihre Daten später abgelegt werden können. Ceph organisiert seine Daten in Pools. Ein Pool ist eine logische Einheit, in der Ceph Ihre Dateien, Festplatten-Images oder Container-Volumes ablegt. Jeder Pool besteht aus vielen sogenannten Placement Groups, die die Daten auf die einzelnen OSDs verteilen und für eine gleichmäßige Lastverteilung sorgen. Mit den Pools bestimmen Sie also, wie und wo Ceph Ihre Daten speichert. So können Sie ganz nach Ihrem individuellen Bedarf beispielsweise einen Pool für virtuelle Maschinen und einen anderen für Backups oder Container-Images anlegen.

Um einen neuen Pool zu erstellen, führen Sie auf einem Ihrer Proxmox-Knoten den folgenden Befehl aus:

pveceph pool create cephpool --size 3 --min_size 2 --pg_num 128
bash

In unserem Beispiel wird ein Pool mit dem Namen cephpool angelegt. Die Parameter geben an, wie Ceph mit Ihren Daten umgehen soll:

  • --size 3 bedeutet, dass jede Datei dreifach repliziert wird. Das sorgt für Ausfallsicherheit: Fällt ein OSD aus, sind immer noch zwei Kopien vorhanden.
  • --min_size 2 legt fest, dass mindestens zwei Kopien aktiv sein müssen, damit der Pool als funktionsfähig gilt. Dadurch wird verhindert, dass Ceph mit unvollständigen Daten arbeitet.
  • --pg_num 128 definiert die Anzahl der Placement Groups, also der logischen Datencontainer, in die Ceph Ihre Daten intern aufteilt. Je mehr OSDs Sie haben, desto höher kann dieser Wert sein, um die Daten gleichmäßig zu verteilen.
Hinweis

Die Anzahl der Placement Groups, die Sie beim Erstellen eines Ceph-Pools festlegen, lässt sich nachträglich nicht mehr reduzieren. Sie können sie erhöhen, wenn Ihr Cluster wächst, aber eine Verringerung ist technisch nicht vorgesehen, da diese zu einem Verlust von Daten führen kann. Planen Sie daher von Anfang an ausreichend PGs. Als Faustregel gilt hierbei: 100 PGs pro OSD im Pool sind ein guter Ausgangswert für kleine bis mittlere Umgebungen.

Nachdem Sie den Pool erstellt haben, können Sie überprüfen, ob alles korrekt funktioniert.

ceph -s
bash

In der Ausgabe sehen Sie den aktuellen Status Ihres Ceph-Clusters. Wenn dort der Hinweis HEALTH_OK erscheint, bedeutet das, dass Ihr Pool korrekt eingerichtet wurde und Ihr Proxmox-Ceph-Cluster stabil läuft.

Tipp

Ein Ceph-Cluster sorgt zwar für Redundanz, ersetzt aber keine regelmäßigen Backups. Für echte Datensicherung in Proxmox-Umgebungen empfiehlt sich ein Proxmox Backup Server. Er ermöglicht deduplizierte, verschlüsselte Backups Ihrer VMs und Container – auch, wenn diese auf Ceph-Speicher liegen.

Intel® Server
High-Performance für Ihre Workloads
  • Intel Xeon E Raptor Lake
  • 100 % Enterprise-Hardware
  • Konfigurierbare Hardware-Ausstattung
  • ISO-zertifizierte Rechenzentren

Schritt 8: Ceph-Speicher in Proxmox einbinden

Nachdem Ihr Ceph-Cluster eingerichtet und der erste Pool erstellt wurde, müssen Sie diese in einem letzten Schritt in Proxmox einbinden, damit Ihre virtuellen Maschinen und Container den Speicher nutzen können. Proxmox verwendet hierfür das RBD-Protokoll. Am einfachsten gelingt die Einbindung über die grafische Oberfläche von Proxmox. Öffnen Sie dazu das Webinterface und navigieren Sie im Menü zum Punkt „Rechenzentrum > Speicher > Hinzufügen > RBD (Ceph)“.

Im folgenden Dialog tragen Sie die notwendigen Verbindungsdaten zu Ihrem Ceph-Cluster ein.

  • Geben Sie unter ID einen eindeutigen Namen für das neue Speicherziel ein.
  • Im Bereich Monitore tragen Sie die IP-Adressen Ihrer Ceph-MONs ein. Hierbei handelt es sich um die Adressen der Knoten, auf denen die Monitor-Dienste laufen. Mehrere Adressen trennen Sie dabei durch Kommata, etwa 10.0.0.11,10.0.0.12,10.0.0.13.
  • Im Feld Pool geben Sie den Namen des zuvor erstellten Ceph-Pools an, z. B. cephpool.
  • Als User können Sie in der Regel admin verwenden.
  • Der Keyring wird automatisch befüllt, indem Proxmox den benötigten Authentifizierungsschlüssel aus Ihrer Ceph-Konfiguration ausliest.
Hinweis

Wenn Sie lieber über die Kommandozeile arbeiten, können Sie den gleichen Vorgang auch mit einem einzigen Befehl durchführen:

pvesm add rbd ceph-storage --monhost <mon1,mon2,mon3> --pool cephpool --content images
bash

Ersetzen Sie <mon1,mon2,mon3> dabei durch die IP-Adressen Ihrer Monitor-Knoten.

Sobald der Speicher hinzugefügt ist, erscheint er in der Proxmox-Oberfläche. Sie können ihn nun direkt als Ziel für virtuelle Maschinen auswählen. Ab diesem Moment nutzt Proxmox Ceph als Speicher. Das bedeutet, dass alle VMs, die Sie auf diesem Storage anlegen, automatisch von der Redundanz und Ausfallsicherheit des Ceph-Clusters profitieren.

Tipp

Wenn Sie später ein Kubernetes Cluster auf Proxmox betreiben möchten, zahlt sich die Integration von Ceph besonders aus. Ceph kann nämlich nahtlos als persistenter Speicher für Kubernetes genutzt werden. So profitieren Ihre Container von derselben Redundanz und Hochverfügbarkeit wie Ihre virtuellen Maschinen.

War dieser Artikel hilfreich?
Zum Hauptmenü