Cluster mit HA

Um High Availability (HA) mit einem Proxmox VE Cluster zu realisieren, müssen mehrere technische Voraussetzungen und Schritte beachtet werden. Ein HA-Cluster benötigt mindestens drei Proxmox-Nodes, um ein stabiles Quorum zu gewährleisten. Alle Nodes sollten identische Proxmox-Versionen nutzen, im selben Netzwerksegment liegen und synchronisierte Zeit (z.B. per NTP) aufweisen.

HA High Availibilty - Proxmox Help

Proxmox Documentation High Availibilty

Proxmox Documentation High Availibilty

Im nächsten Screenshot sieht man das Konzept mal in Aktion. Eine VM 3001 lief auf Node 3 - dieser fiel aus. HA hat die VM auf Node 1 gestartet und für geringe Ausfallzeiten gesorgt!

Erfolgreiches HA für VM 3001 (lag auf Node 3 der ausfiel)

Erfolgreiches HA für VM 3001 (lag auf Node 3 der ausfiel)

Die Kommunikation zwischen den Nodes erfolgt über Corosync, das eine konsistente Cluster-Konfiguration und zuverlässige Fehlererkennung ermöglicht.

Für die Netzwerkinfrastruktur empfiehlt sich eine redundante Auslegung! Man empfiehlt ebenfalls separate Netzwerke zur Erhögung der Ausfallsicherheit:

  • Cluster-Kommunikation

  • VM-Traffic

  • Storage

Für die Netzwerke wird Netzwerk-Bonding empfohlen, um Single Points of Failure in der Vernetzung zu vermeiden.

Ein weiterer zentraler Punkt ist der Einsatz von gemeinsam genutztem Storage, da nur so ein automatisches Verschieben und Starten von VMs und Containern auf andere Nodes bei Ausfall möglich ist. Die Storage-Lösung muss von allen Cluster-Nodes gleichzeitig nutzbar sein.

Hinweis

Ceph - hier liegen die Daten in einem solchen verteilten Storage!

Nach dem Aufbau des Clusters wird die HA-Funktion über die Weboberfläche oder CLI aktiviert. VMs oder Container, die hochverfügbar laufen sollen, werden explizit als HA-Ressourcen definiert und konfiguriert. Fällt ein Node aus, erkennt Corosync dies und der HA-Manager startet die betroffenen Ressourcen automatisch auf einem verbleibenden Node neu.

Wichtig ist zudem die Integration von Fencing-Mechanismen, um sicherzustellen, dass ausgefallene Nodes zuverlässig isoliert werden und keine Split-Brain- Situationen entstehen. Hier würden mehrere Nodes gleichzeitig und fälschlicherweise annehmen, das sie jetzt für die VM zuständig sind, deren Ausfall kompensiert werden soll. Dieser Betrieb kann zu Dateninkonsistenzen und Dateisystemfehlern führen.

Fencing

Hardware-Fencing - z. B. über IPMI oder redundante Stromversorgung, die Nodes stromlos schalten können - ist oft zwingend erforderlich. Mit Netzwerk-Fencing wird der Traffic zu Nodes komplett unterbrochen.

Zusammengefasst benötigt ein Proxmox HA-Cluster:

  • Mindestens drei Nodes mit identischer Proxmox-Version

  • Redundante Netzwerkinfrastruktur (Cluster, VM, Storage)

  • Zeit- und Namenssynchronisation

  • Gemeinsamen, von allen Nodes erreichbaren Storage (siehe Ceph)

  • Konfiguration von Corosync für Cluster-Kommunikation

  • Aktivierung und Zuweisung von HA-Ressourcen

  • Gewünscht: Zuverlässige Fencing-Technik zur Node-Isolation

Services für HA checken

Ich hatte in verschiedenen Testumgebungen Probleme mit HA. Wahrscheinlich eben auch wegen der virtualisierten / eher simulierten Umgebung und durch den Einsatz verschiedender Skripte. Die HA-Umgebung sollte im Dashboard so aussehen:

Mit laufenden HA-Services muss man einen solchen Status erhalten.

Mit laufenden HA-Services muss man einen solchen Status erhalten.

Tipps:

Die wichtigen HA-Dienste - bitte mit systemctl status ... checken

  • pve-ha-crm - Cluster Resource Manager

  • pve-ha-lrm - Local Resource Manager

  • corosync - checkt Erreichbarkeit und Datenaustausch der Cluster Nodes

  • pve-cluster - der Cluster Service halt ;-)

Und natürlich das Ganze bitte auf allen Nodes des Clusters checken bzw enablen!

Tipp

Auf PVE Single Nodes sollten diese Services nicht aktiviert sein, da sie erhebliche Datentransporte und Schreib- und Lesevorgänge erzeugen können.

Das Post-Install Helper-Script hat deswegen ja auch die HA- Deaktivierungen voreingestellt!