Zum Hauptinhalt springen

Ceph

Um einen Ceph-Speicher zu erstellen, sollten alle Nodes in dasselbe Cluster eingebunden sein. Für weitere Informationen zu Ceph besuchen Sie die Webseite ceph.io.

Installation

Wenn Sie im Node-Menü den Punkt Ceph öffnen und Ceph nicht installiert ist, erscheint ein Dialogfenster.

Ceph: Not installed

Ein Klick auf die Schaltfläche Install startet den Setup-Assistenten, um Ceph zu installieren und eine Basiskonfiguration zu erstellen.

Ceph: Info

Ceph: Installation start

Auf der nächsten Seite muss das Netzwerk des Clusters angegeben werden. Der Button Next startet daraufhin die Konfiguration und zeigt die letzte Seite des Assistenten an.

Ceph: Installation finish

Ceph: Configuration

Nach dem Schließen des Ceph-Setup-Assistenten zeigt die Ceph-Statusseite den aktuellen Zustand von Ceph an. Der Status sollte HEALTH OK mit einem Monitor und ohne OSDs sein.

Ceph: Setup -- finish

Ceph: After installation

Auf allen anderen Nodes muss die Installation von Ceph auf die gleiche Weise wie auf dem ersten Node gestartet werden. Die Installation der Pakete verläuft identisch, jedoch muss Ceph nicht wie im nächsten Bild gezeigt konfiguriert werden, da die Konfiguration vom ersten Node übernommen wird.

Ceph: Setup -- configuration on 2nd node

Monitor

Ein Ceph-Storage kann mit nur einem Monitor betrieben werden, es wird jedoch dringend empfohlen, mehr als einen Monitor für Redundanz einzurichten. Öffnen Sie im Node-Menü unter Ceph den Menüpunkt Monitor und erstellen Sie Monitore auf den anderen Nodes, sodass auf allen Nodes ein Monitor läuft. Dadurch ist es möglich, einen Cluster-Node zu stoppen, ohne Ceph anzuhalten.

Ceph: Create monitor

Ceph: Create List of monitor

Beginnend mit Proxmox Version 6 ermöglicht die WebUI das Starten eines Managers neben den Monitor-Daemons. Es ist nicht zwingend erforderlich, die Manager-Daemons auf denselben Nodes wie die Monitor-Daemons zu platzieren, es ist jedoch in den meisten Fällen sinnvoll. Sie finden den Manager-Abschnitt unterhalb des Monitor-Abschnitts auf derselben Seite in der WebUI.

OSD

Bis jetzt läuft der Ceph-Storage ohne Speichermedien. Um Daten in Ceph zu speichern, müssen einige Speicherdisketten, sogenannte OSD1, hinzugefügt werden. Im Menüpunkt OSD gibt es eine Schaltfläche Create, die einen Dialog zum Erstellen von OSDs öffnet. Dieser Dialog muss auf jedem Node aufgerufen werden, da er die freien Festplatten auf dem Node überprüft und sie in einer Dropdown-Liste anbietet. Wenn keine Festplatte angezeigt wird, müssen Sie eine neue Festplatte hinzufügen oder eine Festplatte freigeben. Die Abbildung zeigt die erstellten OSDs aller Nodes, nachdem der Menüpunkt OSD geöffnet wurde (die Erstellung eines OSD kann einige Sekunden dauern, sodass gegebenenfalls die Schaltfläche Reload mehrmals verwendet werden muss, um alle OSDs anzuzeigen).

Ceph: Create OSD

Ceph: List of OSDs

Pools

Bevor ein Storage für Proxmox erstellt werden kann, wird ein Ceph-Pool benötigt, der das Proxmox-Storage enthält. Im Menüpunkt Pools können Pools verwaltet werden. Fügen Sie einen neuen Pool hinzu, indem Sie auf die Schaltfläche Create klicken und einen Namen für den neuen Pool festlegen. Der Wert für pg_num hängt vom Inhalt und der Anzahl der OSDs ab. Weitere Informationen zur Berechnung finden Sie auf der Website Ceph pgcalc.

Ceph: Create pool

Storage

Jetzt ist es an der Zeit, ein neues Storage für Proxmox zu erstellen, das zum Speichern von VM-Images verwendet werden kann. Öffnen Sie das Menü Datacenter und klicken Sie auf den Menüpunkt Storage. Alle verfügbaren Storages werden angezeigt. Klicken Sie auf die Schaltfläche Add und wählen Sie RBD aus. Geben Sie im Dialogfenster einen Namen für Ihr Storage (ID) ein, wählen Sie den zu verwendenden Pool (falls mehrere vorhanden sind) und klicken Sie auf Add. Nach einigen Minuten ist das Storage erstellt und unter jedem Node im Cluster verfügbar, da es gemeinsam genutzt wird. VMs, die ein gemeinsames Storage verwenden, können ohne Ausfallzeiten (Live-Migration) von einem Node auf einen anderen verschoben werden.

Ceph: Select RBD

Ceph: Add RBD

Ceph: Storage

VM

Neue Virtual Machines können dieses Storage für ihre Festplatten-Images verwenden. Die Abbildung zeigt, wie Sie im Dialog zur VM-Erstellung das neue Storage auswählen.

Ceph: Storage in VM creation

Wiederherstellen eines Clusternodes mit Ceph

In einigen Situationen (z. B. Hardware-Ausfall) kann ein Node ausfallen und ist nicht mehr verfügbar. In diesem Fall muss der Node durch einen neuen ersetzt werden. In der Proxmox WebUI ist der alte Node weiterhin sichtbar, aber alle Ressourcen des Nodes sind verschwunden und daher nicht mehr nutzbar.

Ceph: Cluster with failed node

Die Ersetzungs-/Wiederherstellungsprozedur erfordert einige Schritte, die in den folgenden Abschnitten beschrieben werden.

Node installieren

Ersetzen Sie die Appliance und installieren Sie Proxmox mithilfe von SDR mit der neuesten Backup-Datei des ausgefallenen Nodes (configuration.dat), einschließlich Ceph-Konfiguration. Starten Sie nach dem SDR-Vorgang den Node mit allen Netzwerkkabeln. Der Node stellt seine Konfiguration wieder her und tritt nach einigen Minuten dem Cluster bei. Die Abbildung zeigt den frisch gestarteten Node in der Proxmox WebUI.

Ceph: Fresh installed replacement node

Achten Sie darauf, dass die neuesten Updates auf dem Node installiert sind, und starten Sie den Node bei Aufforderung neu.

Ceph installieren

Die Auswahl des Menüpunkts Ceph im Node-Menü des neuen Nodes zeigt die Meldung, dass Ceph nicht installiert ist. Der nächste Schritt ist daher, Ceph auf dem Node zu installieren, indem Sie den Installations-Assistenten über die Schaltfläche im Meldungsfeld starten. Die Konfiguration für Ceph wird von den anderen Nodes im Cluster übernommen.

Der Ceph-Status zeigt weiterhin HEALTH_WARN, da OSDs und Monitore nicht vollständig sind. Daher ist die Datenredundanz nicht vorhanden.

Ceph: Node after Ceph installation

OSD ersetzen

Das alte OSD ist verschwunden und nicht mehr verfügbar. Alle darauf gespeicherten Daten sind verloren. Um es durch ein neues zu ersetzen, müssen die alten Konfigurationen der fehlenden OSDs entfernt werden. Öffnen Sie dazu im Node-Menü des neuen Nodes den Menüpunkt OSD. Wählen Sie das alte OSD aus und klicken Sie auf die Schaltfläche Destroy, um das OSD aus der Konfiguration zu entfernen.

Anschließend fügen Sie ein neues OSD hinzu, indem Sie auf die Schaltfläche Create: OSD klicken. Eine ungenutzte Festplatte wird angeboten, um sie für das neuen OSD zu verwenden. Laden Sie die Seite neu, um zu prüfen, ob das neue OSD erstellt wurde.

Nach diesem Schritt ist Ceph weiterhin im Degraded-Zustand.

Monitor ersetzen

Die Liste unter dem Menüpunkt Monitor im Node-Menü enthält weiterhin den alten Monitor des ausgefallenen Nodes. Ein Entfernen über die WebUI ist nicht möglich, da die Anfrage mit einem Fehler endet. Ebenso kann kein neuer Monitor erstellt werden, da bereits ein Monitor für den Node konfiguriert ist. Das Entfernen des alten Monitors kann manuell über die Kommandozeile erfolgen.

Bevor Sie den alten Monitor entfernen, müssen alle Monitore im Cluster gestoppt werden. Wählen Sie dazu einen Monitor in der Liste aus und klicken Sie auf die Schaltfläche Stop. Führen Sie dies für alle Monitore durch, bis in der Spalte Quorum bei jedem Eintrag No angezeigt wird.

Öffnen Sie nun die Kommandozeile eines anderen Nodes (nicht des neuen Nodes!). Führen Sie als Benutzer root die folgenden Befehle aus (in diesem Beispiel soll der Monitor des Nodes tc1 entfernt werden – ersetzen Sie tc1 durch den korrekten Hostnamen des Nodes!):

root@tc2:/etc# ceph-mon -i $(hostname) --extract-monmap /tmp/monmap
2019-08-15 12:43:49.546358 7f5d5b384100 -1 wrote monmap to /tmp/monmap

root@tc2:/etc# # Replace tc1 by hostname of new node
root@tc2:/etc# monmaptool /tmp/monmap --rm tc1
monmaptool: monmap file /tmp/monmap
monmaptool: removing tc1
monmaptool: writing epoch 5 to /tmp/monmap (2 monitors)

root@tc2:/etc# ceph-mon -i $(hostname) --inject-monmap /tmp/monmap

root@tc2:/etc# # Replace tc1 by hostname of new node
root@tc2:/etc# sed -i -e '/mon.tc1/,+3d' /etc/pve/ceph.conf

Starten Sie anschließend alle Monitore der anderen Nodes in der Proxmox WebUI, indem Sie sie in der Monitor-Liste auswählen und auf die Schaltfläche Start klicken. Der Ceph-Status sollte nun auf HEALTH_OK gewechselt sein, und der Monitor des alten Nodes wird nicht mehr angezeigt.

Anschließend kann zumindest ein neuer Monitor für den Ersatz-Node erstellt werden. Gehen Sie zum Menüpunkt Monitor im Node-Menü und klicken Sie auf die Schaltfläche Create, um einen neuen Monitor zu erstellen.

Footnotes

  1. Object Storage Daemon