Proxmox Node zum Cluster hinzufügen Drucken

  • proxmox node hinzufügen, Proxmox Cluster, proxmox cluster erweitern, proxmox add node, pvecm add, proxmox join cluster
  • 0

Ein bestehender Proxmox-Cluster lässt sich jederzeit um weitere Nodes erweitern. Das ist beispielsweise dann sinnvoll, wenn zusätzliche Rechenleistung benötigt wird, ein weiterer Server in Betrieb genommen werden soll oder ein bisheriger Zwei-Node-Cluster auf drei Nodes erweitert werden soll.

Proxmox VE bringt dafür bereits alle notwendigen Werkzeuge mit. Der neue Host kann entweder über die Weboberfläche oder mit wenigen Befehlen über die Kommandozeile eingebunden werden.

Ein paar Dinge sollte man allerdings vor dem Cluster-Beitritt überprüfen. Besonders wichtig ist, dass auf dem neuen Node noch keine virtuellen Maschinen oder Container vorhanden sind. Auch bei der Storage-Konfiguration gibt es eine Besonderheit, die leicht übersehen wird.

Wir zeigen in dieser Anleitung, wie ein zusätzlicher Proxmox-Node vorbereitet, einem bestehenden Cluster hinzugefügt und anschließend überprüft wird.

1. Voraussetzungen für den Cluster-Beitritt

Für unsere Anleitung gehen wir davon aus, dass bereits ein funktionsfähiger Proxmox-Cluster mit zwei Nodes existiert. Diesen erweitern wir um einen dritten Host.

Unsere Beispielumgebung sieht folgendermaßen aus:

Host Management-IP Corosync-IP Status
pve1 192.168.10.11 10.10.10.11 Cluster-Mitglied
pve2 192.168.10.12 10.10.10.12 Cluster-Mitglied
pve3 192.168.10.13 10.10.10.13 Neuer Node

Die zusätzlichen Corosync-IP-Adressen verwenden wir, weil unser Cluster über ein separates Netzwerk für die Cluster-Kommunikation verfügt. Bei kleineren Testumgebungen kann dafür auch das Management-Netzwerk genutzt werden.

Bevor wir pve3 hinzufügen, sollten einige Voraussetzungen erfüllt sein:

  • Proxmox VE ist auf dem neuen Host installiert.

  • Alle Nodes verwenden kompatible, möglichst identische Proxmox-Versionen.

  • Hostname und IP-Adressen sind korrekt und endgültig konfiguriert.

  • Die Netzwerkverbindungen zwischen den Nodes funktionieren.

  • Die Systemzeit ist synchronisiert.

  • Der bestehende Cluster ist erreichbar und besitzt Quorum.

  • Auf dem neuen Node befinden sich keine VMs oder Container.

Vor allem den letzten Punkt sollte man ernst nehmen.

Wichtig: Beim Beitritt übernimmt der neue Node die Cluster-Konfiguration des bestehenden Clusters. Seine bisherige Konfiguration unter /etc/pve wird dabei überschrieben. Deshalb darf der beitretende Host keine bestehenden Gäste enthalten.

Wer einen bereits produktiv genutzten Proxmox-Server integrieren möchte, sollte dessen virtuelle Maschinen vorher sichern und später kontrolliert im Cluster wiederherstellen.

2. Bestehenden Cluster überprüfen

Bevor wir Änderungen an unserem Cluster vornehmen, kontrollieren wir zunächst dessen aktuellen Zustand.

Dazu melden wir uns per SSH auf einem vorhandenen Cluster-Node an, beispielsweise auf pve1, und führen folgenden Befehl aus:

pvecm status

Die Ausgabe enthält unter anderem Informationen zur Anzahl der Nodes und zum Quorum.

In unserem Beispiel sollte der Cluster aktuell aus zwei Nodes bestehen.

Zusätzlich können wir die Mitglieder anzeigen lassen:

pvecm nodes

Hier sollten pve1 und pve2 auftauchen.

Falls der Cluster bereits Kommunikationsprobleme hat oder das Quorum fehlt, sollten diese Probleme zuerst behoben werden. Einen weiteren Node in einen instabilen Cluster aufzunehmen, macht die Fehlersuche nur unnötig kompliziert.

Besonderheit: Bestehendes QDevice

Falls unser Zwei-Node-Cluster ein QDevice verwendet, müssen wir dieses vor dem Hinzufügen des dritten Nodes entfernen.

Das erledigen wir auf einem vorhandenen Cluster-Node mit:

pvecm qdevice remove

Der Befehl sollte nur ausgeführt werden, wenn tatsächlich ein QDevice konfiguriert ist.

Anschließend überprüfen wir den Cluster erneut mit:

pvecm status

Während der Erweiterung stehen dann vorübergehend nur die beiden regulären Nodes für das Quorum zur Verfügung. Deshalb sollten beide Hosts erreichbar bleiben.

Nach erfolgreicher Erweiterung auf drei reguläre Nodes benötigen wir normalerweise kein zusätzliches QDevice mehr.

Mehr zu diesem Thema erklären wir in unserem Artikel „Proxmox Cluster mit 2 Nodes: Quorum und QDevice“.

3. Neuen Proxmox-Node vorbereiten

Auf unserem neuen Host pve3 überprüfen wir zunächst die Netzwerkkonfiguration.

Den Hostnamen können wir mit folgendem Befehl kontrollieren:

hostname -f

Die konfigurierten IP-Adressen lassen sich mit folgendem Befehl anzeigen:

ip addr

Anschließend prüfen wir, ob die anderen Cluster-Nodes erreichbar sind.

Über das Management-Netzwerk:

ping -c 4 192.168.10.11
ping -c 4 192.168.10.12

Und über unser separates Corosync-Netzwerk:

ping -c 4 10.10.10.11
ping -c 4 10.10.10.12

Die Ping-Tests setzen natürlich voraus, dass ICMP im Netzwerk erlaubt ist.

Außerdem kontrollieren wir die Zeitsynchronisation:

timedatectl status

Zum Abschluss überprüfen wir noch die installierte Proxmox-Version:

pveversion

Die Version sollte zum bestehenden Cluster passen. Unterschiedliche Hauptversionen sollten nicht für den regulären Cluster-Betrieb gemischt werden.

Warum ist das Corosync-Netzwerk so wichtig?

Proxmox verwendet Corosync für die Kommunikation zwischen den Cluster-Mitgliedern.

Dabei werden keine besonders großen Datenmengen übertragen. Entscheidend ist vielmehr, dass die Verbindungen stabil sind und eine möglichst niedrige Latenz aufweisen.

Hohe Paketverluste oder schwankende Antwortzeiten können dazu führen, dass Nodes vorübergehend nicht mehr als erreichbar gelten.

Wer ein separates Corosync-Netzwerk betreibt, sollte deshalb vor dem Cluster-Beitritt überprüfen, ob auch der neue Host über dieses Netzwerk mit allen vorhandenen Nodes kommunizieren kann.

4. Proxmox Node über die Weboberfläche hinzufügen

Am einfachsten lässt sich unser neuer Node direkt über die Proxmox-Weboberfläche hinzufügen.

Wir beginnen auf einem bestehenden Cluster-Node.

Dazu öffnen wir beispielsweise:

https://192.168.10.11:8006

Nach der Anmeldung navigieren wir zu:

Datacenter → Cluster

Dort klicken wir auf Join Information.

Proxmox zeigt nun die Informationen an, die ein neuer Node für den Beitritt benötigt.

Mit Copy Information kopieren wir diese Daten in die Zwischenablage.

Anschließend öffnen wir die Weboberfläche unseres neuen Nodes:

https://192.168.10.13:8006

Auch hier navigieren wir zu:

Datacenter → Cluster

Diesmal wählen wir allerdings Join Cluster.

Im daraufhin geöffneten Dialog fügen wir die zuvor kopierten Join-Informationen ein.

Proxmox übernimmt automatisch die meisten benötigten Einstellungen. Das Passwort des bestehenden Cluster-Nodes müssen wir aus Sicherheitsgründen selbst eingeben.

Zusätzlich wählen wir unter Link 0 die Netzwerkadresse aus, über die unser neuer Node mit den übrigen Cluster-Mitgliedern kommunizieren soll.

In unserem Beispiel verwenden wir:

10.10.10.13

Falls weitere redundante Corosync-Links konfiguriert sind, müssen wir auch dafür passende lokale Adressen auswählen.

Nach einem Klick auf Join beginnt der Beitrittsvorgang.

Proxmox übernimmt nun die benötigte Cluster-Konfiguration und richtet die Kommunikation mit den anderen Nodes ein.

Die Weboberfläche wird während des Beitritts getrennt

Während des Beitritts kann es passieren, dass unsere aktuelle Sitzung unterbrochen wird.

Das ist zunächst kein Grund zur Sorge.

Proxmox ersetzt beim Cluster-Beitritt unter anderem das lokale Node-Zertifikat durch ein Zertifikat der Cluster-Zertifizierungsstelle.

Dadurch ist die bestehende Browser-Sitzung möglicherweise nicht mehr gültig.

In diesem Fall laden wir die Weboberfläche neu und melden uns erneut an.

Nach erfolgreichem Beitritt sollte pve3 in der gemeinsamen Cluster-Übersicht erscheinen.

5. Proxmox Node über die Kommandozeile hinzufügen

Alternativ können wir den Cluster-Beitritt direkt über die Kommandozeile durchführen.

Gerade bei der Administration mehrerer Hosts ist das häufig der schnellere Weg.

Dieser Abschnitt ist eine Alternative zur Weboberfläche. Wer pve3 bereits über die GUI hinzugefügt hat, muss die folgenden Befehle nicht erneut ausführen.

Wir melden uns per SSH auf unserem neuen Node an:

ssh root@192.168.10.13

Anschließend führen wir folgenden Befehl aus:

pvecm add 192.168.10.11 --link0 10.10.10.13

Dabei bezeichnet:

  • 192.168.10.11 einen bereits vorhandenen Cluster-Node.

  • --link0 10.10.10.13 die lokale Corosync-Adresse unseres neuen Nodes.

Proxmox fordert die notwendigen Zugangsdaten und gegebenenfalls die Bestätigung des Zertifikats-Fingerabdrucks an.

Den Fingerabdruck sollten wir vor der Bestätigung mit dem erwarteten Zertifikat des bestehenden Nodes vergleichen.

Danach führt Proxmox den Cluster-Beitritt durch.

Cluster ohne separates Corosync-Netzwerk

Wenn wir kein eigenes Corosync-Netzwerk verwenden, genügt normalerweise:

pvecm add 192.168.10.11

Proxmox verwendet dann die entsprechend ermittelte lokale Netzwerkadresse.

Die explizite Angabe von --link0 ist besonders dann sinnvoll, wenn mehrere Netzwerkschnittstellen vorhanden sind und wir genau festlegen möchten, welche Verbindung Corosync verwendet.

6. Cluster-Beitritt überprüfen

Nachdem der Beitritt abgeschlossen wurde, sollten wir kontrollieren, ob alle Nodes korrekt erkannt werden.

Dazu führen wir auf einem Cluster-Mitglied aus:

pvecm status

Für unseren Drei-Node-Cluster erwarten wir nun beispielsweise folgende Werte:

Nodes:            3
Quorate:          Yes

Expected votes:   3
Total votes:      3
Quorum:           2

Die genaue Darstellung kann je nach Proxmox-Version abweichen.

Entscheidend ist, dass alle drei Nodes sichtbar sind und der Cluster weiterhin Quorum besitzt.

Zusätzlich überprüfen wir die Mitgliederliste:

pvecm nodes

Dort sollten jetzt folgende Hosts auftauchen:

pve1
pve2
pve3

Auch in der Weboberfläche sollten alle drei Nodes unter Datacenter angezeigt werden.

Falls der neue Node nicht korrekt erscheint, lohnt sich ein Blick auf den Corosync-Dienst:

systemctl status corosync

Und bei Problemen auf dessen Logausgabe:

journalctl -u corosync -n 100 --no-pager

Damit lassen sich häufig bereits Probleme mit der Netzwerkverbindung oder Cluster-Mitgliedschaft erkennen.

7. Storage-Konfiguration nach dem Beitritt prüfen

Ein Punkt wird beim Hinzufügen neuer Nodes besonders leicht übersehen: die Storage-Konfiguration.

Proxmox speichert diese clusterweit in:

/etc/pve/storage.cfg

Beim Cluster-Beitritt übernimmt der neue Node die Storage-Konfiguration des bestehenden Clusters.

Das bedeutet jedoch nicht, dass alle dort eingetragenen Datenspeicher auch tatsächlich auf dem neuen Host vorhanden sind.

Ein Beispiel:

Unsere bisherigen Nodes verwenden local-zfs für virtuelle Festplatten.

Der neue Node wurde allerdings mit einer anderen Storage-Aufteilung installiert und verfügt möglicherweise gar nicht über den erwarteten ZFS-Pool.

Nach dem Beitritt erscheint die clusterweite Storage-Konfiguration trotzdem auch auf diesem Node.

Der entsprechende Speicher kann dann als nicht verfügbar angezeigt werden.

Mit folgendem Befehl überprüfen wir die Storage-Konfiguration:

pvesm status

Alternativ navigieren wir in der Weboberfläche zu:

Datacenter → Storage

Dort prüfen wir, welche Storage-Einträge vorhanden sind und auf welchen Nodes sie verwendet werden sollen.

Falls sich die lokalen Storage-Konfigurationen unterscheiden, können wir die Einträge anpassen oder zusätzliche lokale Datenspeicher konfigurieren.

Dabei sollten wir besonders darauf achten, ob ein Speicher tatsächlich gemeinsam von mehreren Nodes genutzt wird oder nur lokal auf einem bestimmten Host existiert.

Wichtig: Ein gemeinsamer Storage-Name macht aus lokalen Datenträgern noch keinen Shared Storage.

Wenn beispielsweise local-lvm auf allen drei Nodes vorhanden ist, handelt es sich trotzdem um drei voneinander unabhängige Datenspeicher.

Für bestimmte Migrations- und HA-Szenarien spielt dieser Unterschied eine entscheidende Rolle.

8. Was passiert mit bereits vorhandenen VMs?

Hier ist Vorsicht geboten.

Ein Node, der einem bestehenden Cluster beitreten soll, darf keine vorhandenen virtuellen Maschinen oder Container besitzen.

Der Grund liegt in der gemeinsamen Cluster-Konfiguration.

Proxmox verwaltet VM- und Container-Konfigurationen clusterweit. Dabei müssen beispielsweise die VM-IDs eindeutig sein.

Würden wir zwei bereits produktiv genutzte Proxmox-Installationen ohne Vorbereitung zusammenführen, könnten bestehende Konfigurationen miteinander kollidieren.

Beim Cluster-Beitritt wird außerdem die bisherige Konfiguration des neuen Nodes unter /etc/pve überschrieben.

Wie können bestehende VMs trotzdem übernommen werden?

Wenn unser neuer Node bereits VMs enthält, sollten wir diese zunächst mit den Proxmox-Backup-Funktionen sichern.

Für die Übernahme bietet sich folgender Ablauf an:

  1. Alle betroffenen VMs und Container vollständig sichern.

  2. Backups außerhalb des beitretenden Nodes aufbewahren.

  3. Sicherstellen, dass sich die Backups tatsächlich wiederherstellen lassen.

  4. Den neuen Node ohne vorhandene Gäste auf den Cluster-Beitritt vorbereiten.

  5. Node zum bestehenden Cluster hinzufügen.

  6. Storage-Konfiguration kontrollieren.

  7. VMs und Container aus den Backups wiederherstellen.

Bei der Wiederherstellung müssen wir darauf achten, dass die verwendeten VM-IDs im Cluster noch nicht vergeben sind.

Gegebenenfalls vergeben wir deshalb neue IDs.

Auch die Zuordnung von Storage und Netzwerkschnittstellen sollte überprüft werden.

Beispielsweise kann es vorkommen, dass eine VM ursprünglich eine Bridge mit dem Namen vmbr1 verwendet hat, die auf dem neuen Cluster-Node nicht vorhanden ist.

Solche Unterschiede sollten vor dem ersten Start der wiederhergestellten VM berücksichtigt werden.

Wer produktive Systeme übernehmen möchte, sollte den Vorgang außerdem in einem geeigneten Wartungsfenster durchführen.

9. Typische Fehler beim Hinzufügen eines Nodes

„This host already contains virtual guests“

Diese Meldung erscheint, wenn auf dem beitretenden Node noch virtuelle Maschinen oder Container konfiguriert sind.

Proxmox verhindert den Beitritt in diesem Zustand.

Die richtige Lösung besteht darin, die vorhandenen Gäste kontrolliert zu sichern und anschließend den Node für den Cluster-Beitritt vorzubereiten.

Von manuellen Änderungen an Cluster-Konfigurationsdateien, nur um diese Prüfung zu umgehen, würde ich abraten.

Der neue Node kann den Cluster nicht erreichen

In diesem Fall sollten wir zunächst die Netzwerkkonfiguration kontrollieren.

Besonders relevant sind:

  • IP-Adressen und Routing

  • Firewall-Regeln

  • Namensauflösung

  • Erreichbarkeit der vorhandenen Cluster-Nodes

  • Corosync-Netzwerkverbindungen

Für Corosync müssen die benötigten UDP-Ports zwischen den Nodes erreichbar sein. Proxmox dokumentiert hierfür insbesondere den Bereich UDP 5405–5412.

SSH- oder Authentifizierungsfehler

Wenn die Anmeldung am bestehenden Cluster fehlschlägt, sollten die verwendeten Zugangsdaten und die Erreichbarkeit des API-Dienstes überprüft werden.

Neuere Proxmox-Versionen können den Cluster-Beitritt standardmäßig über die API des vorhandenen Nodes abwickeln. Eine Anmeldung per SSH-Passwort ist deshalb nicht bei jeder Variante erforderlich.

Falls ein Zertifikats-Fingerabdruck angezeigt wird, sollte dieser nicht ungeprüft bestätigt werden.

Der Node erscheint, aber Storage ist nicht erreichbar

Hier liegt die Ursache häufig in einer unterschiedlichen lokalen Storage-Konfiguration.

Besonders bei Clustern, deren Nodes nicht identisch installiert wurden, kann das auftreten.

Dann sollten wir überprüfen, ob die benötigten Storage-Pools auf dem neuen Host tatsächlich existieren und korrekt eingebunden sind.

Unterschiedliche Netzwerkkonfigurationen verhindern Migrationen

Ein erfolgreicher Cluster-Beitritt bedeutet noch nicht, dass jede VM ohne Anpassungen zwischen allen Nodes migriert werden kann.

Neben den CPU-Eigenschaften müssen unter anderem auch Storage-Verfügbarkeit, Netzwerk-Bridges und eventuell verwendete Hardware-Passthrough-Geräte berücksichtigt werden.

Bevor wir produktive VMs verschieben, empfiehlt sich deshalb eine Testmigration mit einer unkritischen VM.

10. Was ändert sich durch den dritten Node?

Mit unserem zusätzlichen Node stehen dem Cluster zunächst mehr CPU-Leistung, Arbeitsspeicher und gegebenenfalls zusätzliche lokale Datenträger zur Verfügung.

Gleichzeitig verändert sich das Quorum-Verhalten.

Ein Cluster mit drei regulären Nodes besitzt standardmäßig drei Stimmen und benötigt zwei davon für das Quorum.

Damit bleibt der Cluster auch dann noch quorate, wenn einer der drei Nodes ausfällt und die beiden übrigen weiterhin miteinander kommunizieren können.

Das ist ein wichtiger Vorteil gegenüber einem Zwei-Node-Cluster ohne QDevice.

Allerdings bedeutet die zusätzliche Cluster-Mitgliedschaft noch nicht automatisch, dass VMs hochverfügbar sind.

Dafür müssen weitere Voraussetzungen erfüllt sein, beispielsweise die Erreichbarkeit der VM-Daten auf einem alternativen Node und die korrekte Einrichtung von Proxmox HA.

Wer den neuen Node nicht nur für zusätzliche Kapazität, sondern auch für Hochverfügbarkeit nutzen möchte, sollte sich deshalb anschließend mit Storage und HA beschäftigen.

11. Cluster-Erweiterung praktisch ausprobieren

Gerade das Hinzufügen und Entfernen von Nodes gehört zu den Dingen, die man am besten in einer Testumgebung ausprobiert.

Der eigentliche Beitritt ist schnell erledigt. Interessant wird es vor allem dann, wenn unterschiedliche Netzwerkkonfigurationen, Storage-Systeme oder Cluster-Größen ins Spiel kommen.

In einer isolierten Umgebung lassen sich solche Szenarien testen, ohne bestehende Produktivsysteme zu gefährden.

Mit unserer Proxmox-Schulungsumgebung stellen wir dafür mehrere Proxmox-Nodes und einen Jumphost für einen frei wählbaren Nutzungszeitraum bereit.

Die Umgebung eignet sich unter anderem dazu, einen Cluster zunächst mit zwei Nodes aufzubauen, ihn später um einen dritten Node zu erweitern und anschließend das veränderte Quorum-Verhalten zu beobachten.

Auch weitere Übungen wie VM-Migrationen oder die Einrichtung von Ceph lassen sich darauf aufbauen.

Fazit

Einen zusätzlichen Proxmox-Node in einen bestehenden Cluster aufzunehmen, ist mit wenigen Schritten möglich. Sowohl die Weboberfläche als auch das Werkzeug pvecm bieten dafür einen unkomplizierten Weg.

Die meiste Aufmerksamkeit verdient die Vorbereitung.

Insbesondere sollten wir überprüfen, ob der neue Node die richtige Netzwerk- und Proxmox-Konfiguration besitzt, keine vorhandenen VMs enthält und die benötigten Storage-Systeme verfügbar sind.

Nach dem Beitritt lohnt sich außerdem ein kurzer Funktionstest. Erst wenn alle Nodes zuverlässig miteinander kommunizieren und der Cluster Quorum besitzt, sollten wir zusätzliche Workloads auf dem neuen Host betreiben.

Wer diese Punkte berücksichtigt, kann einen bestehenden Proxmox-Cluster problemlos schrittweise erweitern.

Weiterführende Artikel

Offizielle Dokumentation: Proxmox VE – Cluster Manager


War diese Antwort hilfreich?

« Zurück