Der Proxmox VE cluster manager „pvecm“ ist ein Werkzeug, mit dem du eine Gruppe von physischen Servern erstellen kannst. Eine solche Gruppe wird als Cluster bezeichnet. Mit Proxmox kann man hier schnell einen Proxmox Test-Cluster anlegen.
Proxmox verwendet dabei die Corosync Cluster Engine. Es gibt dabei keine explizite Grenze für die Anzahl der Knoten in einem Cluster. In der Praxis kann die tatsächlich mögliche Knotenanzahl durch die Leistung des Hosts und des Netzwerks begrenzt sein. Laut Proxmox Webseite gibt aus 2021 Berichte von Clustern (mit High-End-Unternehmenshardware) mit über 50 Knoten in der Produktion.
In dem Beispiel heute nutzen wir die bestehende Systeme auf Fujitsu Q556/2 und NUC Basis für den Aufbau eines Clusters. Die Installation vom Fujitsu Q556/2 haben wir hier gezeigt und die vom Intel NUC wurde hier dokumentiert.
Warum kann unsere Hardware nur ein Proxmox Test-Cluster sein?
Wichtig ist hierbei anzumerken, dass dies wirklich nur aus Spass an der Technik und zu Testzwecken mit dieser Hardware Sinn macht. Für ein Cluster empfehlen sich immer einige Basisanforderungen, die wir hier nicht erfüllen:
- Dediziertes Netzwerk (LAN Karte und segmentiertes Subnetz) für die Storage Komponenten
- Dediziertes Netzwerk (LAN Karte und segmentiertes Subnetz) für die Cluster Kommunikation
- Identische Hardware (CPU besonders wichtig)
- Mindestens 3 Knoten und bevorzugt immer eine ungerade Anzahl, damit die Systeme bei einem „Split Brain“ entscheiden können, welche Systeme aktiv bleiben. Dazu braucht es ein Quorum.
Proxmox hat dies selbst auch gut in ihrer eigenen Dokumentation zusammengefasst.
Mindestanforderungen für ein Proxmox Test-Cluster
- Alle Knoten müssen sich über die UDP-Ports 5405-5412 miteinander verbinden können, damit corosync funktioniert.
- Datum und Uhrzeit müssen synchronisiert werden.
- Ein SSH-Tunnel auf TCP-Port 22 zwischen den Knoten ist erforderlich.
- Alle Knoten sollten die gleiche Version haben.
- Das Root-Passwort eines Clusterknotens ist für das Hinzufügen von Knoten erforderlich.
- Optional – Die Online-Migration virtueller Maschinen wird nur unterstützt, wenn die Knoten über CPUs desselben Herstellers verfügen. Andernfalls kann es funktionieren, aber das ist nie garantiert.
Einrichtung des Proxmox Test-Clusters per WebGUI
Im Webinterface einer der bestehenden Proxmox VE Hosts unter Datacenter -> Cluster auf „Create Cluster“ clicken und einen Namen auswählen, sowie die gewünschte Netzwerkkarte für die Cluster Kommunikation (NUC und Q556/2 haben jeweils nur eine).
Die Ausführung sollte sehr schnell passieren und wie folgt aussehen.
Nun wurde das Cluster angelegt und wir können uns über den „Join Infomation“ Knopf die notwendigen Informationen kopieren. Dazu in der Datacenter – Cluster – Cluster Information Ansicht die „Copy Information“ Funktion nutzen.
Nun melden wir uns an dem Proxmox Knoten (Node) an, die wir installiert haben, aber die noch nicht im Cluster ist.
Hier clicken wir nun auf „Join Cluster“ und nutzen die vorher kopierten Informationen (copy Information) zum Beitritt zum Cluster. Bis auf das Passwort sollten nun die Informationen automatisch befüllt werden.
Das Passwort von eurem „primären Knoten“, auf dem ihr eben euren Cluster angelegt habt, tragt ihr in das Feld „Password“ ein und clickt auf „Join Test Cluster“.
Limitierung der Umgebung ohne „Shared Storage“
Mit Proxmox kann man hier schnell einen Proxmox Test-Cluster anlegen, aber ohne „shared Storage“, d.h. eine gemeinsam und parallel von mehreren Proxmox Host nutzbare „Festplatte“, wie eine SAN Umgebung oder die installierte CEPH Lösung von Proxmox, ist ein Cluster nur bedingt nützlich. Der Umzug einer virtuellen Maschine von einer Cluster Node auf die andere, geht dann nur, wenn man die virtuelle Maschine anschaltet. Da alle Daten von der aktiven virtuellen Maschine auf die anderen über das Netzwerk kopiert werden müssen, kann dies sehr sehr lange dauern.
Beispiel eines Umzugs einer virtuellen Maschine ohne shared storage
Zum Testzwecke schieben wir trotzdem eine virtuelle Maschine im Cluster von Host 1 auf Host 2. Dazu muss die virtuelle Maschine angeschaltet (online) sein und auf dem 2ten Host genug Festplattenplatz vorhanden sein.
Nun kann man per rechtslick auf die Test VM zum Umzug „migrate“ clicken und den Ziel Host und das Ziel Storage auswählen.
Die Migration kann dann wie folgt ablaufen und der Fortschritt verfolgt werden.
Wie man am weißen und am schwarzen Hintergrund erahnen kann, kann man den Fortschritt aus dem Webinterface jeder Node sehen und öffnen.
Empfehlung für ein Cluster – CEPH Storage
Mit Proxmox kann man hier schnell einen Proxmox Test-Cluster anlegen. Wer aber sinnvoll einen Cluster betreiben will, der benötigt eine Shared Storgae Lösung. Dies kann klassich eine LUN von einer NetApp, QNAP oder anderen Storages Lösung sein, eine „Software Lösung“ wie CEPH oder eine Plattform wie Nutanix.
Test Cluster entfernen
Das entfernen des Clusters ist relativ einfach durchzuführen. Dazu die VMs alle auf den weiterhin bestehenden Knoten umziehen und den „zu entfernenden Knoten“ herunterfahren.
Dann per Putty auf den weiter bestehenden Knoten verbinden und folgende Befehle ausführen.
systemctl stop pve-cluster
systemctl stop corosync
Start the cluster filesystem again in local mode:
pmxcfs -l
Delete the corosync configuration files:
rm /etc/pve/corosync.conf
rm /etc/corosync/*
You can now start the filesystem again as normal service:
killall pmxcfs
systemctl start pve-cluster
Sollte beim rm /etc/corosync/* eine Fehlermeldung kommen, so ist der Befehl zum löschen von Unterverzeichnissen rm -d „Pfad / Verzeichnisname“.
Auf der Proxmosseite ist dies im Detail hier beschrieben.