Bei diesen beiden Begriffen herrscht sehr häufig Verwirrung. HA ist doch Hochverfügbarkeit und ein Cluster bietet doch genau das. Also muss es doch das Gleiche sein, oder?
Bei Proxmox ist das aber Unterschiedlich, beziehungsweise baut aufeinander auf:
Der Cluster ist der Zusammenschluss von mindestens 3 Proxmox VE Servern. Dieser reine Cluster erhöht erst einmal nicht die Verfügbarkeit, weder von einem einzelnen Proxmox VE noch von einer VM oder von einem Container.
Was macht der Cluster jetzt genau?
Mit dem ersten PVE wird der Cluster definiert, also die Grundlagen gelegt. Das Haupt-Konfigurationsverzeichnis unter /etc/pve wird auf ein Cluster-Filesystem verlegt und es werden zusätzliche Prozesse für corosync gestartet. Das corosync (genauer Corosync Cluster Engine) ist ein Linux-Projekt, welches die Verwaltung für einen Cluster übernimmt. Die Kommunikation erfolgt über das Netzwerk und sollte redundant ausgeführt werden.
Dann folgen die weiteren Member (also PVE Server), die jeweils dem bestehenden Cluster hinzugefügt werden. Wichtig ist bei jedem weiteren Server, das er keine VMs oder Container verwaltet. Warum das? Die Konfiguration liegt unter /etc/pve und die hat unser erster Cluster-Member ja schon mit einer Konfiguration gefüllt. Es kann also nicht einfach eine weitere Konfiguration da hinzugefügt werden. Warum? Einfaches Beispiel: Auf jedem PVE läuft schon eine VM mit der ID 100. Und die ID muss im Cluster immer eindeutig sein. Der erste hat die 100 eingetragen und alle weiteren können das nicht mehr. Daher die Vorgabe: Alle weiteren Member dürfen keine Konfiguration haben.
Tipp: Hier liegt genau das Problem, falls man sich beim Start keinen Cluster aufbauen möchte, sondern 3 unabhängige Maschinen. Wenn dann alle 3 PVE schon produktive VMs nutzen, wird eine Migration von Standalone auf Cluster extrem schwierig. VMs müssen offline umgelagert werden, die IDs ändern sich, Jobs passend zur ID müssen angepasst werden, Backups sind nicht mehr gültig.
Fällt jetzt zum Beispiel ein PVE im Cluster aus, so passiert erst einmal nichts. Keine VM wird neu gestartet, kein Container oder was auch immer. Klar der Cluster merkt, das ein Member ausgefallen ist und schaut sich an, ob noch eine Mehrheit vorhanden ist. Solange das der Fall ist, passiert quasi nichts. Ist die Mehrheit nicht mehr vorhanden, dann werden Änderungen an der Konfiguration (also die auf dem Cluster-Filesystem unter /etc/pve liegt) verboten. Hört sich erst Mal nicht so schlimm an, aber auch das Starten von VMs wird dort eingetragen.
Tipp: Der Cluster hat die Mehrheit verloren und Sie möchten VMs Starten: Über die Console ein pvecm expected 1 ansetzen und der Cluster braucht nur noch einen aktiven Member um Änderungen zu akzeptieren.
Also bisher haben wir noch keine Hochverfügbarkeit. Das kommt mit HA und wirkt sich auf VMs und Container aus. Die muss man aber manuell der HA-Konfiguration im Rechenzentrum hinzufügen. Und zwar jede VM „einzeln“ und auch jede neue VM, wenn sie angelegt wird.
Tipp: Es sollte überwacht werden, das es für jede VM auch eine HA-Konfiguration gibt. Damit niemand vergisst, eine neue VM auch dort einzutragen.
Also der Cluster muss nicht unbedingt HA aktiviert haben, HA benötigt aber einen aktiven Cluster für die Funktion.