Proxmox: Konfigurieren eines Clusters mit Ceph-Speicher

In diesem Tutorial werde ich Ihnen erklären, wie Sie mit Proxmox einen Cluster einrichten, um eine hohe Verfügbarkeit zu gewährleisten, und wie die Speicherverwaltung mit Ceph erfolgt, um eine hyperkonvergente Virtualisierungsumgebung zu schaffen.

Einführung

Bevor wir mit dem Tutorial beginnen, möchte ich einige Punkte für Neulinge ansprechen.

Beginnen wir mit der Hyperkonvergenz: Traditionell erfolgte die Clusterbildung von Hypervisoren mit einem 3-Tier-System. Auf der einen Seite standen die Rechenleistung (CPU + RAM) der Server und der Speicher auf einem Array in einer SAN-Architektur (Storage Area Network). Bei der Hyperkonvergenz gibt es kein SAN mehr, stattdessen wird der lokale Speicher der Server zum Speichern der virtuellen Maschinen genutzt.

Zum besseren Verständnis hier zwei Schemata:

Ich möchte hier nicht darüber diskutieren, welche Architektur die bessere ist. Bei einer hyperkonvergenten Architektur werden die virtuellen Maschinen auf mehreren Servern gespeichert, um im Falle eines Ausfalls eines physischen Servers eine hohe Verfügbarkeit zu gewährleisten.

Das Schema ist recht vereinfacht dargestellt; wenn wir einen vierten Server im hyperkonvergenten Bereich hätten, gäbe es nicht unbedingt eine vierte Kopie der virtuellen Maschinen.

Meiner Erfahrung nach haben beide Architekturtypen ihre Vor- und Nachteile; für mich ergänzen sie sich und stehen nicht im Widerspruch zueinander.

Auf dem Papier bietet Hyperkonvergenz hohe Leistung, da sie oft auf High-End-Servern eingesetzt wird, was eine Voraussetzung ist, und mit einem Full-Flash-Speicher vom Typ NVMe oder SSD ist sie ideal für Anwendungen und Datenbanken, die viel Rechenleistung und hohe Verfügbarkeit erfordern.

Es wäre völlig kontraproduktiv, beispielsweise Dateiserver mit mehreren Terabyte oder Exchange-Server zu betreiben, die große Mengen an „Cold Data“ speichern.

Nehmen wir das Beispiel eines Dateiservers mit einem Volumen von 10 TB: In einer hyperkonvergenten Architektur würde die Maschine 30 TB Speicherplatz auf Flash-Laufwerken beanspruchen.

Um eine hyperkonvergente Architektur zu betreiben, sind mindestens 3 identische Knoten (Server) erforderlich, was eine Grundvoraussetzung für alle Lösungen auf dem Markt ist.

Um auf dieses Proxmox-Tutorial zurückzukommen: Wir werden sehen, wie man einen Cluster in Proxmox einrichtet und anschließend Ceph konfiguriert, das den Speicher zwischen den Servern verwaltet.

Da mir keine drei identischen physischen Server zur Verfügung standen, habe ich dieses Tutorial mit zwei Servern durchgeführt.

Für den produktiven Einsatz sind jedoch unbedingt drei Server erforderlich, da sonst die Hochverfügbarkeit nicht gewährleistet ist.

Bevor Sie mit der Konfiguration beginnen, empfehle ich Ihnen, diesen Artikel zu lesen, um Ceph zu verstehen: Die Grundlagen der Ceph-Architektur verstehen

Erstellen des Clusters in Proxmox und Hinzufügen der Server

Der erste Schritt dieses Tutorials ist die Erstellung des Clusters in Proxmox und das Hinzufügen der anderen Server.

Bevor wir mit der Erstellung des Clusters beginnen, möchte ich eine kleine Vorbemerkung für diejenigen machen, die mit Hyper-V vertraut sind.

Wenn man von Clustern spricht, denkt man oft sofort an Hochverfügbarkeit. In Proxmox ermöglicht die Cluster-Konfiguration zunächst, Proxmox-Server im selben Rechenzentrum hinzuzufügen und alle Proxmox-Server über dieselbe Weboberfläche zu verwalten sowie beispielsweise Maschinen von einem Server auf einen anderen zu verschieben (Migrate), ohne dass diese dabei hochverfügbar sind.

Damit Hochverfügbarkeit möglich ist, benötigt man einen gemeinsamen Speicher (SAN / Ceph), muss eine HA-Gruppe erstellen und die virtuellen Maschinen in dieser Gruppe konfigurieren.

Ein weiterer zu beachtender Punkt bei Proxmox für den korrekten Betrieb der Hochverfügbarkeit ist, dass Proxmox drei Server benötigt.

Erstellen eines Clusters in Proxmox

Die Erstellung des Clusters kann auf jedem Server erfolgen, der Mitglied des Clusters sein soll.

Wir erstellen den Cluster vom Server s-pve-1 aus.

Gehen Sie zu Datacenter 1, Cluster 2 und klicken Sie dann auf die Schaltfläche Create Cluster 1.

Benennen Sie den Cluster 1, konfigurieren Sie das Cluster-Netzwerk 2 und klicken Sie dann auf „Create“ 3.

Create Cluster in Proxmox

Warten Sie, während der Cluster erstellt wird …

Der Cluster ist erstellt, schließen Sie das Fenster.

Der Cluster ist in der Weboberfläche sichtbar, und man kann sehen, dass der Server, mit dem wir den Cluster erstellt haben, Mitglied ist.

Einen Proxmox-Server zu einem Cluster hinzufügen

Wir fügen nun den Server s-pve-2 zum Cluster hinzu.

Klicken Sie auf dem Server s-pve-1 in den Cluster-Einstellungen auf „Join Information“ 1.

Klicken Sie auf die Schaltfläche „Copy Information“ 1.

Gehen Sie in der Web-Verwaltungsoberfläche des Servers zur Cluster-Konfiguration: Datacenter / Cluster und klicken Sie auf die Schaltfläche „Join Cluster“ 1.

Fügen Sie die Informationen 1 zum Beitritt zum Cluster ein, geben Sie das Root-Passwort 2 des Cluster-Mitglieds ein, wählen Sie die Netzwerkkarte 3 für die Cluster-Kommunikation aus und klicken Sie auf die Schaltfläche „Join ‚Cluster-name’“ 4.

Warten Sie, während der Beitritt zum Cluster erfolgt …

Während des Beitritts zum Cluster werden Sie von der Weboberfläche getrennt, daher können Sie nicht sehen, wann der Beitritt abgeschlossen ist.

Überprüfen Sie auf dem Server s-pve-1 in der Weboberfläche, ob der Server dem Cluster hinzugefügt wurde 1 und ob dieser in der Verwaltungsoberfläche sichtbar ist.

Wiederholen Sie den Vorgang für die anderen Server, die dem Cluster hinzugefügt werden sollen.

Einrichtung des Ceph-Speichers

Installieren Sie Ceph auf den Proxmox-Servern

Standardmäßig ist Ceph nicht auf den Proxmox-Servern installiert. Wählen Sie den Server aus, gehen Sie zu Ceph und klicken Sie auf die Schaltfläche „Install Ceph“ 1.

Da ich keine Lizenz habe, habe ich das Repository „No-Subscription“ 1 ausgewählt und auf „Start reef installation“ 2 geklickt.

Bestätigen Sie die Installation der zusätzlichen Pakete…

Warten Sie während der Installation …

Nach Abschluss der Installation klicken Sie auf „Next“ 1, um zur Konfiguration zu gelangen.

Wählen Sie die Netzwerkadresse 1, die für den Ceph-Cluster verwendet werden soll, und klicken Sie auf „Next“ 2.

Die Installation ist abgeschlossen. Klicken Sie auf „Finish“ 1, um den Assistenten zu schließen.

Die Installation von Ceph ist auf dem ersten Server abgeschlossen. Wiederholen Sie diesen Vorgang auf den anderen Servern des Clusters.

Konfiguration von Ceph

Wir fahren nun mit der Konfiguration von Ceph fort.

Ich werde in diesem Tutorial nicht auf technische Details eingehen; für weitere Informationen empfehle ich Ihnen, die Dokumentation hier zu lesen.

Monitor und Manager konfigurieren

Wir werden jeden Knoten als Monitor und Manager des Ceph-Clusters hinzufügen

Gehen Sie von einem der Knoten des Clusters aus zu Ceph 1 und dann zu Monitor 2.

Wir beginnen mit den Monitoren und klicken auf die Schaltfläche „Create“ 1.

Wählen Sie den Server aus, den Sie hinzufügen möchten 1.

Nachdem der Server ausgewählt ist, klicken Sie auf die Schaltfläche „Create“ 1.

Der zweite Server wurde hinzugefügt.

Fügen Sie die anderen Server hinzu und verfahren Sie bei den Managern genauso.

OSD hinzufügen: physische Festplatte

Nun fügen wir Ceph die physischen Festplatten hinzu, die als OSD bezeichnet werden.

Nachfolgend die physischen Festplatten, die ich für jeden Server hinzufügen kann:

Für einen korrekten Betrieb muss für jeden Server die gleiche Anzahl an Festplatten hinzugefügt werden.

Wählen Sie einen Server aus, gehen Sie dann zu Ceph / OSD und klicken Sie auf die Schaltfläche „Create“: OSD 1.

Wählen Sie die Festplatte 1 aus und klicken Sie auf „Create“ 2.

Die Festplatte wird für den Server s-pve-1 hinzugefügt.

Fügen Sie bei Bedarf weitere Festplatten für den Server hinzu und wiederholen Sie den Vorgang für jeden Server im Ceph-Cluster.

Die Festplatten wurden für beide Server hinzugefügt.

Sie können jederzeit OSDs hinzufügen, achten Sie jedoch darauf, jeweils nur ein OSD pro Server hinzuzufügen.

Erstellen eines Pools

Ein Pool ist ein Speicher, der in Proxmox für die Speicherung virtueller Maschinen verwendet werden kann.

Gehen Sie zu Ceph / Pools und klicken Sie auf die Schaltfläche Create 1.

Ich habe bewusst die erweiterte Ansicht aktiviert; normalerweise müssen Sie den Pool nur benennen 1 und auf „Create“ 2 klicken.

Einige Erläuterungen: Der Wert „Size“ entspricht der Anzahl der Datenkopien auf dem Ceph-Cluster; standardmäßig ist dieser Wert auf 3 gesetzt und darf nicht höher sein als die Anzahl der Knoten im Ceph-Cluster. Der Wert „Min. Size“ entspricht der Mindestanzahl an Knoten, die online sein müssen; standardmäßig sind dies 2. Wenn diese Grenze unterschritten wird, wird der Zugriff auf den Pool gesperrt.

Der Pool wird hinzugefügt, und der Speicher „ceph-1“ ist nun auf beiden Servern verfügbar.

Verwendung des Ceph-Speicherpools

Wählen Sie beim Erstellen einer virtuellen Maschine oder eines Containers den Speicher „ceph-1“ aus.

Man sieht, dass sich die Festplatte der virtuellen Maschine auf dem Speicher ceph-1 befindet.

Konfiguration der Hochverfügbarkeit (HA) auf einem Proxmox-Cluster

Wir werden nun sehen, wie man HA in Proxmox konfiguriert. Damit dies funktioniert, muss der Speicher der virtuellen Maschinen auf einem gemeinsamen Speicher liegen, der von den Servern der HA-Gruppe gemeinsam genutzt wird.

Hochverfügbarkeit in Proxmox wird über Hochverfügbarkeitsgruppen verwaltet, denen die Server angehören. Dies ermöglicht es beispielsweise, verschiedene Servertypen in einem Cluster zu haben und Server desselben Typs in einer Gruppe zusammenzufassen.

Diese Konfiguration bietet große Flexibilität und ermöglicht es beispielsweise, innerhalb desselben Rechenzentrums Server zu verwalten, die auf einer 2-Tier-Architektur basieren, sowie Server in einer hyperkonvergenten Umgebung.

Um eine Gruppe zu erstellen, gehen Sie zu Datacenter / HA / Groups und klicken Sie auf die Schaltfläche Create 1.

Benennen Sie 1 die Gruppe, wählen Sie die Mitgliedsserver 2 aus und klicken Sie dann auf die Schaltfläche „Create“ 3.

Die Gruppe ist erstellt.

Nun müssen die Ressourcen (VMs und CTs) hinzugefügt werden, die in der HA-Gruppe enthalten sein sollen.

Gehen Sie zu „Datacenter / HA“ und klicken Sie auf die Schaltfläche „Add“ 1.

Wählen Sie die VM 1 aus.

Wählen Sie die Gruppe 1 aus und klicken Sie auf „Add“ 2.

Die Ressourcen sind nun für Hochverfügbarkeit konfiguriert.

In der Übersicht der virtuellen Maschine ist der HA-Status zu sehen.

Failover-Test

Um das Failover der VM 100 auf s-pve-2 zu testen, werde ich den Server herunterfahren.

Über die Shell starte ich einen Server-Shutdown.

Der Server ist offline.

Die VM mit der ID 100 wird auf s-pve-1 umgeschaltet und gestartet.


Sie wissen nun, wie Sie mit Proxmox und Ceph eine hochverfügbare Umgebung einrichten.

Romain Drouche
Romain Drouche
Systemarchitekt | MCSE: Kerninfrastruktur
IT-Infrastrukturexperte mit über 15 Jahren Berufserfahrung. Aktuell tätig als Projektmanager für Systeme und Netzwerke sowie als Experte für Informationssystemsicherheit (ISS), nutze ich mein Fachwissen, um die Zuverlässigkeit und Sicherheit technologischer Umgebungen zu gewährleisten.

Schreibe einen Kommentar