Proxmox VE bietet umfassende Hochverfügbarkeit sowohl auf Ebene virtueller Instanzen als auch für verteilten Speicher über Ceph. Der Weg zum Erfolg führt über das Einrichten eines redundanten Ceph-Clusters zum Ausrollen des Proxmox-Cluster-Managers und seiner Konfiguration. Wie genau das funktioniert und welche Hürden dabei zu umschiffen sind, verrät dieser Vorabartikel aus dem kommenden IT-Administrator Sonderheft "Lokal virtualisieren".
Nach den theoretischen Hintergründe in Sachen Proxmox-HA für virtuelle Instanzen und virtuellen Speicher aus dem vorangegangenen Workshop steht nun die Praxis im Vordergrund. Zunächst bauen wir einen Ceph-Cluster, der mit Proxmox-Bordmitteln hochverfügbaren Speicher bietet. Dann geht es an die Einrichtung des Cluster-Managers für Proxmox, der – anders als bei Linux üblich – nicht Pacemaker ist, sondern die Eigenentwicklung "ha-manager".
Unser Beispielsetup stammt aus einem Projekt des Autors mit drei Servern, die jeweils mit zwei AMD-EPYC-9554-CPUs und jeweils 64 Kernen ausgestattet sind und 768 GByte RAM aufweisen. Dazu gesellen sich zwei NVMe-Laufwerke mit 1 TByte in einer RAID-1-Konfiguration mit Hardware-RAID und jeweils sechs 12,8-TByte-NVMes für die Daten der Installation. Ein derartiger Server kostet rund 35.000 Euro, zu bedenken gilt es aber, dass hier eine hyperkonvergente Installation im Fokus steht, die sowohl den Speicher anbietet als auch auf denselben Systemen virtuelle Instanzen betreibt. Zusätzlich ist jeder Server mit einer separaten NIC mit jeweils zwei 100-GBit-Ports ausgestattet, um genug Bandbreite für den Traffic der VMs und Ceph bereitzustellen.
Die Umgebung aufbauen
Der erste Schritt der Installation besteht in der Konfiguration der Hardware sowie der Installation des Betriebssystems. Achten Sie darauf, dass die beiden kleinen NVMe-Laufwerke als Hardware-RAID-1 eingerichtet sind und im installierten Betriebssystem als ein logisches Laufwerk erscheinen. Die übrigen, großen NVMe-Laufwerke sollten Sie im JBOD-Modus konfigurieren. Ceph kümmert sich um die Redundanz der Daten später selbst. Erfahrungsgemäß ist es nicht sinnvoll, dem Speichersystem dabei durch RAID und andere Redundanzmaßnahmen ins Handwerk zu pfuschen.
Nach den theoretischen Hintergründe in Sachen Proxmox-HA für virtuelle Instanzen und virtuellen Speicher aus dem vorangegangenen Workshop steht nun die Praxis im Vordergrund. Zunächst bauen wir einen Ceph-Cluster, der mit Proxmox-Bordmitteln hochverfügbaren Speicher bietet. Dann geht es an die Einrichtung des Cluster-Managers für Proxmox, der – anders als bei Linux üblich – nicht Pacemaker ist, sondern die Eigenentwicklung "ha-manager".
Unser Beispielsetup stammt aus einem Projekt des Autors mit drei Servern, die jeweils mit zwei AMD-EPYC-9554-CPUs und jeweils 64 Kernen ausgestattet sind und 768 GByte RAM aufweisen. Dazu gesellen sich zwei NVMe-Laufwerke mit 1 TByte in einer RAID-1-Konfiguration mit Hardware-RAID und jeweils sechs 12,8-TByte-NVMes für die Daten der Installation. Ein derartiger Server kostet rund 35.000 Euro, zu bedenken gilt es aber, dass hier eine hyperkonvergente Installation im Fokus steht, die sowohl den Speicher anbietet als auch auf denselben Systemen virtuelle Instanzen betreibt. Zusätzlich ist jeder Server mit einer separaten NIC mit jeweils zwei 100-GBit-Ports ausgestattet, um genug Bandbreite für den Traffic der VMs und Ceph bereitzustellen.
Die Umgebung aufbauen
Der erste Schritt der Installation besteht in der Konfiguration der Hardware sowie der Installation des Betriebssystems. Achten Sie darauf, dass die beiden kleinen NVMe-Laufwerke als Hardware-RAID-1 eingerichtet sind und im installierten Betriebssystem als ein logisches Laufwerk erscheinen. Die übrigen, großen NVMe-Laufwerke sollten Sie im JBOD-Modus konfigurieren. Ceph kümmert sich um die Redundanz der Daten später selbst. Erfahrungsgemäß ist es nicht sinnvoll, dem Speichersystem dabei durch RAID und andere Redundanzmaßnahmen ins Handwerk zu pfuschen.
Ob Sie zunächst Debian GNU/Linux 12 installieren und im Anschluss die Proxmox-Pakete darauf einrichten oder ob die Installation mittels ISO-Datei direkt von Proxmox stattfindet, ist letztlich eine Geschmacksfrage. Ein vollständiges Lifecycle-Management der Systeme mit automatisierter Installation erreichen Sie mit der ersten Option jedoch leichter. Denn dann lässt sich zunächst Debian installieren und dieses erledigt den Rest – für Ansible beispielsweise steht eine fast vollständige Proxmox-Integration zur Verfügung. Ohne ein derartiges Lifecycle- Management kommen Sie mit der händischen Installation vermutlich schneller zu Ergebnissen. Letztlich geht es in unserem Beispiel nur um einen Cluster aus drei Knoten – da ist der zeitliche Aufwand für die händische Installation von drei Systemen verschmerzbar. Während der Installation sollten Sie allerdings darauf achten, dass Proxmox die für Ceph vorgesehenen NVMe-Laufwerke nicht für sich selbst in Beschlag nimmt. Hier kommt es je nach Hardware vor, dass der Installationsassistent sich diese einverleiben möchte – dagegen hilft nur Ihr wachsames Auge.
Ist Proxmox installiert, steht im nächsten Schritt dessen grundlegende Konfiguration auf dem Programm. Wir gehen dabei davon aus, dass für die vorhandene Netzwerkkarte eine Bonding-Schnittstelle angelegt ist und darauf eine Netzwerkbrücke. An diese docken später die VMs an. Auch sollte in Proxmox VE ein gültiger Subskriptionsschlüssel hinterlegt sein, damit das System Pakete herunterladen kann. Weitere Dienste wie NTP- oder DNS-Server richten Sie ebenfalls mittels Proxmox-GUI ein. Gerade NTP ist übrigens im Ceph-Kontext von erheblicher Relevanz, denn Ceph beschwert sich bereits bei der kleinsten Asynchronität hinsichtlich der Systemzeit aller beteiligten Systeme.
Den Cluster konfigurieren
Ist Proxmox VE auf allen drei Systemen am Start, verbinden Sie diese zunächst zu einem Proxmox-Cluster. Dabei geht es zunächst noch gar nicht um das Thema HA, vielmehr steht hier die Handhabung der Systeme im Vordergrund. Über den Punkt "Datacenter" ganz links oben im Web-UI müssen Sie die Proxmox-Instanzen als Cluster konfigurieren. Dazu loggen Sie sich im Web-UI aller drei Proxmox-Systeme ein, navigieren zu "Datacenter" und wählen in der linken Menüleiste im rechten Teil des Fensters den Punkt "Cluster" aus.
Klicken Sie auf dem ersten der drei Knoten auf "Create Cluster". Nun geben Sie das IP-Netzwerk an, über das die Cluster-Knoten kommunizieren, zum Beispiel "10.42.0.0/24". Je nach Proxmox-Version ist hier nicht die Netzwerkadresse anzugeben, sondern die IP-Adresse mit richtigem CIDR-Suffix des jeweiligen Systems. Proxmox VE zeigt Ihnen aber eine entsprechende Liste an, was die Auswahl erheblich erleichtert. Falls zwischen den Systemen mehrere, voneinander unabhängige Netzwerkpfade zur Verfügung stehen, achten Sie darauf, diese allesamt anzugeben. Denn so sichern Sie den Proxmox-Cluster gegen den Ausfall von Netzwerkkomponenten ab und verhindern falsche Reaktionen durch defekte Switches und ähnliche Geräte.
Wundern Sie sich nicht, falls das Erstellen des Clusters auf dem ersten System nicht viel Ausgabe produziert. Im Anschluss ist jedoch oben der Button "Join Information" nicht länger ausgegraut. Klicken Sie darauf, zeigt Proxmox Ihnen einen Textblock an. Diesen benötigen Sie, um die anderen beiden Systeme in den Cluster aufzunehmen. Auf diesen navigieren Sie im Anschluss ebenfalls zur Cluster-Ansicht des Datacenters, klicken oben links allerdings auf "Join Cluster". Fügen Sie die "Join Information" des ersten Systems dort in das Textfeld ein und klicken auf "Join Cluster". Dann installiert das Web-UI auch auf diesen Systemen Corosync für die Cluster-Kommunikation. Schließlich sollten auf allen drei Systemen in der Cluster-Ansicht alle drei Cluster-Knoten auftauchen – dann hat das Einrichten des Clusters funktioniert.
Bild 1: Ceph integriert sich in Proxmox VE, um virtuelle Instanzen mit redundantem Speicher zu versorgen.
Ceph einrichten
Nun steht die Installation von Ceph und dessen Einrichtung auf dem Programm. Praktisch: Weil Proxmox sämtliche offiziellen Werkzeuge zur Installation und Konfiguration von Ceph ignoriert und stattdessen eine eigene Integration gebaut hat, geht die Installation leicht von der Hand. Zudem bietet Proxmox im GUI bereits die Option zur Ceph-Installation. Dazu klicken Sie zunächst wieder in der Datacenter-Ansicht des ersten Systems Ihrer Umgebung auf den Punkt "Ceph" und im Anschluss auf "Install Ceph". Dann erscheint ein Assistent, der Sie durch die weiteren Schritte der Installation führt. Achten Sie darauf, beim Punkt "Ceph version to install" die Version 19.2 alias "Squid" auszuwählen. Das ist zum Zeitpunkt des Redaktionsschlusses die aktuellste, als stabil deklarierte Ceph-Version. Klicken Sie dann auf "Start squid installation".
Wechseln Sie jetzt zum Reiter "Installation" des Assistenten. Hier stehen nun Geduld und etwas Handarbeit auf dem Plan. Denn im Hintergrund installiert Proxmox VE auf dem System einige Pakete und fragt gelegentlich nach, ob Sie mit der Installation zusätzlicher Pakete einverstanden sind. Dokumentieren Sie Ihr Einverständnis jeweils durch Drücken von "Y" und "Return". Ist dieser Vorgang abgeschlossen, ist der Menüpunkt "Configuration" des Assistenten nutzbar. Hier geben Sie zumindest das "Public Network" an. Das ist das Netzwerk, mittels dessen Clients mit den Ceph-Diensten kommunizieren und im Normalfall identisch mit dem, das Sie zuvor für die Cluster-Anlage festgelegt haben – in unserem Beispiel also "10.42.0.0/ 24". Falls es eine separate Netzwerkschnittstelle gibt, mittels derer die Ceph-Dienste untereinander kommunizieren, tragen Sie dieses bei "Cluster Network" ein und klicken dann auf "Next".
Die Ceph-Konfiguration ist in Proxmox VE Bestandteil der Cluster-Konfiguration ("pmxcfs"). Weil Ihre drei Proxmox-Systeme bereits zu einem Cluster zusammengeschlossen sind, haben also auch die anderen beiden Knoten alle Informationen zum Cluster bereits lokal vorliegen. Auf diesen fehlt aber noch Ceph: Wiederholen Sie deshalb die Ceph-Installation auf diesen Systemen wie zuvor beschrieben. Dort unterscheidet sich der Assistent vom Durchlauf auf dem ersten Knoten insofern, als dass er nicht mehr nach der Erst-einrichtung eines Ceph-Knotens fragt, sondern den bereits laufenden Cluster als solchen erkennt und nutzt. Nutzen Sie den Assistenten, um auch auf den anderen beiden Systemen Ceph auszurollen, installiert dieser Schritt dort wirklich nur die benötigten Pakete.
Einsatzbereit ist der Ceph-Cluster jedoch noch nicht, denn am Ende des ersten Abschnitts der Ceph-Installation besteht der Cluster aus genau einem Monitoringserver (MON) – sonst nichts. MON-Server erzwingen in RADOS, dem Objektspeicher im Herzen von Ceph, das Quorum und dienen als erster Anlaufpunkt für Clients. Daten lassen sich zu diesem Zeitpunkt aber noch nicht ablegen, denn es sind noch keine nutzbaren Festplatten hinterlegt und keine OSDs eingerichtet. Unter OSD firmieren in RADOS die "Object Storage Daemons", die jeweils ein Speicherlaufwerk in Beschlag nehmen und es für RADOS nutzbar machen.
Bild 2: Beim Ceph-Deployment ist es wichtig, das öffentliche sowie das private Cluster-Netzwerk richtig anzugeben. Auch ist die Nummer der Replikas steuerbar.
MONs und OSDs anlegen
Nehmen Sie zunächst die Installation von Ceph auf den beiden anderen Systemen vor, um dort die Ceph-Dienste einzuspielen. Klicken Sie dann im Web-UI des ersten Systems Ihrer Installation links auf den Datacenter-Eintrag für dieses System. Wählen Sie in der Liste den Eintrag "Ceph / Monitor" aus. Klicken Sie oben auf "Create" und richten Sie für die beiden anderen Systeme jeweils einen MON-Server ein. Ein produktiver Ceph-Cluster muss mindestens drei davon haben, um ein Quorum zu erreichen, das den Ausfall eines Systems toleriert.
Lassen Sie sich vor diesem Hintergrund auch nicht davon irritieren, dass nach der Ceph-Installation auf dem ersten System für dieses der Eintrag "Quorum" auf "Yes" in der Ceph-Ansicht im Proxmox-UI steht. Denn wenn der Cluster nur einen MON-Server hat und dieser online ist, sind 100 Prozent aller bekannten Knoten online und damit ein hypothetisches Quorum erreicht. Nur hochverfügbar ist das Setup auf diese Weise natürlich nicht. HA auf der Ceph-Ebene erreichen Sie erst, in dem Sie Ceph auch auf den anderen beiden Systemen in Betrieb nehmen. Klicken Sie dazu im unteren Abschnitt des Fensters bei "Manager" auf "Create" – und zwar für die beiden noch nicht bearbeiteten Systeme. Manager-Daemons gehören zu Ceph-Manager, dem seitens des Herstellers eigens für Ceph entwickelten Management-Framework.
Ein Ceph-Cluster mit drei MONs und drei Manager-Knoten ist theoretisch bereits nutzbar, praktisch fehlen allerdings noch die Object Storage Daemons für die eigentlichen Nutzdaten. Klicken Sie in der Ansicht Ihres ersten Knotens im Web-UI auf "Ceph" und dann auf "OSD". Wählen Sie das Laufwerk aus, das Sie zu einem OSD machen möchten. Lassen Sie die Einträge bei "DB Disk" und "DB Size" unverändert. Klicken Sie auf "Create" und wiederholen Sie den Vorgang so lange, bis alle verfügbaren NVMe-Laufwerke des ersten Systems als OSD in Ceph erscheinen. Gleiches ist dann für die anderen beiden Systeme erforderlich. Beim Setup in diesem Beispiel ist die Arbeit getan, wenn in der Ceph-Ansicht im Proxmox-GUI insgesamt 18 OSDs zu sehen sind. Am Ende des Vorgangs ist ein vollständiger, aus Proxmox heraus nutzbarer und verwalteter RADOS-Cluster entstanden.
Bild 3: Ein einsatzfähiger Ceph-Cluster benötigt mindestens drei MON- und drei Manager-Server.
Laufwerke anlegen
Virtuelle Instanzen ließen sich auf diesem Cluster allerdings noch nicht beheimaten, denn dafür fehlt noch ein Detail. RADOS bietet grundsätzlich drei Benutzerschnittstellen: Das POSIX-kompatible Dateisystem CephFS, die S3-kompatible REST-Schnittstelle "RADOS Gateway" sowie das "RADOS Block Device" (RDB). Für den Betrieb virtueller Instanzen ist vor allem RDB von Interesse, denn KVM nutzt unter Linux als Emulator üblicherweise Qemu mit einer nativen RBD-Schnittstelle. Das Gespann aus RBD und Qemu benötigt also keinen Umweg über den Kernel des Betriebssystems, um auf virtuelle Laufwerke zuzugreifen. Stattdessen redet Qemu im Hintergrund direkt mit RADOS.
Damit RBD in Ceph nutzbar ist, obliegt es Ihnen allerdings, sogenannte RBD-Images anzulegen. Dies ist im Ceph-Ökosystem eine einzelne virtuelle Festplatte, die als Backendspeicher für eine Instanz dient. Und Proxmox nimmt Ihnen das Ablegen der eigentlichen RBD-Abbilder ab, wenn Sie eine virtuelle Instanz erstellen. Damit das klappt, müssen Sie in Ceph allerdings einen Pool anlegen, die in RADOS so eine Art Namensschild für einen logisch abgetrennten Bereich der Installation darstellen. Weil Pools immer clusterweit angelegt sind, genügt es, den folgenden Schritt nur auf dem ersten System Ihrer Installation auszuführen.
Klicken Sie in der Knotenansicht auf "Ceph / Pools" und dann "Create". Stellen Sie sicher, dass der Haken bei "Add as Storage" gesetzt ist und geben Sie dem Pool einen möglichst aussagekräftigen Namen. Klicken Sie auf "Create" und kurze Zeit später erscheint der Pool in Ceph als Speicherlaufwerk in der Ansicht des Knotens ganz links im Proxmox-GUI. Sobald der Eintrag dort – und zwar auf allen drei Knoten – zu sehen ist, ist die grundlegende Installation und Konfiguration von Ceph erledigt.
Optional haben Sie jetzt Gelegenheit, den Ceph-Cluster noch ein Stück weit zu tunen. Als besonders hilfreich hat sich erwiesen, Jumbo-Frames auf den beteiligten Switches für die betroffenen Netzwerkkarten zu aktivieren, also die MTU-Größe auf 9000 zu setzen. Das sollte dann aber für wirklich alle NICs in allen Systemen ebenso wie auf allen Netzwerk-Switches des Datenpfades erfolgen. Denn ansonsten kann es zu unerwünschten Verbindungsabbrüchen und ähnlichen Problemen kommen. Auch mittels der Sysctl-Variablen des Linux-Kernels lässt die Situation sich womöglich verbessern, was den Durchsatz angeht – hier hat es sich als sinnvoll erwiesen, die Puffergrößen für die Sende- und Empfangspuffer der Netzwerkkarten zu vergrößern.
Cluster testen
Bevor es mit der HA-Konfiguration weitergeht, empfiehlt es sich, zunächst Ceph und sein Zusammenspiel mit Proxmox zu testen. Legen Sie dazu eine neue VM an. Achten Sie im Abschnitt "Hard Disk" des Assistenten jedoch darauf, dass bei "Storage" der eben angelegte Ceph-Pool ausgewählt ist. Dadurch erreichen Sie, dass Proxmox im Hintergrund automatisch für die neue Instanz ein passendes RBD-Abbild in Ceph erstellt und dieses über Qemu als virtuelles Laufwerk für die neue Instanz verwendet. Der Rest des Aufsetzens des Instanz läuft wie gehabt. Stellen Sie allerdings sicher, dass Sie der virtuellen Instanz kein virtuelles CD-Laufwerk anhängen – oder dass auf den anderen beiden Systemen das jeweilige ISO-Abbild an derselben Stelle liegt wie auf jenem Host, auf dem Sie die Instanz zuerst angelegt haben.
Läuft die Instanz, starten Sie ein Konsolenfenster und führen einen Ping auf die IP-Adresse der virtuellen Instanz aus. Klicken Sie im Proxmox-GUI links auf den zugehörigen Eintrag und dann oben rechts auf den Button "Migrate". Wählen Sie eines der anderen beiden Systeme aus und dann "Migrate". Proxmox nutzt standardmäßig Livemigration. Wenn alles klappt, läuft die Instanz kurze Zeit später auf dem zuvor angegebenen System und im laufenden Ping-Prozess ist idealerweise kein einziges Paket verloren gegangen. Während der Migration hält Proxmox Sie zudem detailliert über seine Aktionen per Logmeldung auf dem Laufenden.
Der Vollständigkeit halber sei darauf hingewiesen, dass diese Form der kontrollierten Livemigration nur in einem funktionierenden Cluster möglich ist. VMs eines abgestürzten Cluster-Knotens lassen sich nicht auf diese Weise bewegen. Hier startet Proxmox später stets die betroffenen VMs auf einem anderen System neu. Klappt die Livemigration, ist die Ceph-Einrichtung ebenso abgeschlossen wie die Konfiguration des Proxmox-Clusters. Tatsächlich fehlt damit nur noch die HA-Funktion für einzelne Instanzen.
Die zunehmende gesetzliche Regulierung wie auch die sich verschärfende Sicherheits- und Datenschutzproblematik der Cloud, bringt IT-Verantwortliche zunehmend dazu, über neue Ansätze der On-Premises-Virtualisierung nachzudenken. Die massiven Umwälzungen in Sachen vSphere-Lizenzierung seit der Übernahme durch Broadcom verschärfen diese Situation weiter. Das neue IT-Administrator Sonderheft "Lokal virtualisieren" setzt sich daher mit den Virtualisierungsumgebungen Proxmox VE, Hyper-V und Nutanix auseinander. Denn diese drei Systeme sind die wichtigsten Kandidaten, wenn kleine, mittlere und große Organisationen eine Transformation in Sachen virtueller Infrastruktur anstreben.So zeigt das Autorenteam für Proxmox VE, Hyper-V und Nutanix zunächst jeweils auf, welche Technologien die drei Plattformen jeweils mitbringen und welche Anforderungen sie an ihre Umgebung haben. Anschließend zeigen wir das Einrichten der Systeme und die Konfiguration zentraler Dienste wie die Storage-Anbindung, die Hochverfügbarkeit, das Verwalten virtueller Instanzen und mehr. Fehlen dürfen natürlich ebenfalls nicht das Betrachten der notwendigen Security-Maßnahmen und -Konfiguration und das übergeordnete Management der Gesamtstruktur.Das Sonderheft ist ab 30. Oktober 2025 verfügbar und kostet für Abonnenten des IT-Administrator 24,90 Euro, für Nicht-Abonnenten werden 29,90 Euro fällig.
HA für Instanzen
Hochverfügbarkeit ist nur nutzbar, wenn in Proxmox eine sogenannte "HA Group" existiert. Denn anhand dieser Gruppen lässt sich pro Instanz durch Zugehörigkeit bestimmen, dass HA-Fähigkeiten für die jeweilige VM aktiv sein sollen. Klicken Sie im Proxmox-UI links zunächst oben auf "Datacenter", in der mittleren Auswahlliste dann auf "HA", wählen Sie den Unterpunkt "Groups" aus und dann "Create". Geben Sie Ihrer Gruppe eine ID, etwa "Produktion".
Wenn ein Cluster-Knoten ausfällt und später wieder verfügbar ist, ziehen die zuvor per Failover verschobenen Instanzen normalerweise zurück auf ihren ursprünglichen Host. Damit diese Instanzen stattdessen auf den jeweils aktuellen Hosts verbleiben, setzen Sie den Haken bei "nofailback". Ob das automatische Failback sinnvoll ist oder nicht, darüber streiten die Experten. Fakt ist jedoch, dass es zu einem weiteren, unnötigen Ausfall führen kann. Wählen Sie die drei Systeme Ihrer Installation aus und klicken auf "Create".
Der letzte Schritt besteht darin, Ihre virtuellen Instanzen dieser HA-Gruppe zuzuweisen. Dazu wählen Sie die jeweilige Instanz in der entsprechenden Liste im linken Teil des Proxmox-GUIs aus und klicken oben rechts auf "More / Manage HA". Wählen Sie im Feld "Group" die eben angelegte HA-Gruppe und stellen Sie sicher, dass der "Requested State" auf "started" steht. Jetzt klicken Sie auf "Add". Öffnen Sie nun die Übersicht der jeweiligen Instanz ("Summary"), erscheint dort beim "HA State" der Eintrag "started" in Verbindung mit der Angabe der HA-Gruppe, zu der die Instanz gehört.
Nun ist es an der Zeit für einen Failover-Test: Verbinden Sie sich mittels SSH mit dem System, auf dem Ihre eben angelegte Instanz läuft. Das ist zumindest dann sinnvoll, wenn Sie auf die Hardware keinen unmittelbaren, physischen Zugriff haben. Denn dann würde es freilich genügen, der aktuell beheimatenden Maschine den Stromstecker zu ziehen. Aus der Ferne lässt sich ein Ausfall eines Systems mittels reboot -f simulieren. Das Kommando startet das betroffene System unmittelbar neu. Alternativ sind auch ein Kaltstart mittels iDRAC oder iLO oder über IPMI Optionen möglich. Im Web-UI von Proxmox sollte jedenfalls emsiges Treiben im Anschluss zu erkennen sein. Der Cluster-Manager benötigt ein paar Sekunden, bis er den Ausfall eines Knotens erkennt und Gegenmaßnahmen einleitet. Nach kurzer Zeit allerdings sollte der Spuk vorbei sein. Die mit HA ausgerüstete Maschine erwacht dann auf einem der verbliebenen Cluster-Knoten zu neuem Leben.
Wartungsaufgaben erldigen
Ceph-Wartungsaufgaben erledigen Sie komfortabel über das Proxmox-GUI. Dazu gehören das Hinzufügen zusätzlicher OSDs oder das Ersetzen defekter Laufwerke. Auch ganze Knoten entfernen und ersetzen Sie aus dem RADOS-Cluster auf diesem Weg. Dabei verbirgt Proxmox allerdings die Komplexität von RADOS vor dem Systemverwalter. Und das kann insbesondere dann ins Auge gehen, wenn Ceph so aus dem Tritt gerät, dass seine – sehr umfangreichen – Selbstheilungsfähigkeiten nicht mehr funktionieren.
Per Default ist Ceph so konfiguriert, dass jede Information im Cluster ("Objekt"), dreimal vorhanden ist. Ein Objekt entspricht dabei jedoch nicht einer Datei, die ein Benutzer irgendwann in den Cluster geladen hat. Die Aufteilung von Daten in Objekte geschieht in Ceph pseudozufällig und ist ohne den CRUSH-Algorithmus nicht zu dekodieren. Die Replikationseinstellungen sorgen dafür, dass zu jedem Zeitpunkt mindestens ein Speicherlaufwerk ausfallen kann, ohne dass es zu Datenverlust kommt. Es kann dann auch ein zweites Laufwerk ohne Datenverlust ausfallen, allerdings blockiert RADOS dann in der Standardkonfiguration den Zugriff auf das verbliebene Objekt, bis wieder mindestens eine zweite Kopie davon vorhanden ist. Dies steuern Sie über die Einstellung "min_size" des Pools.
Darüber hinaus schadet es nicht, sich mit den grundlegenden CLI-Werkzeugen von RADOS vertraut zu machen. Auf jedem der drei Proxmox-Knoten im Beispiel liefert das Kommando ceph -w den aktuellen Zustand des Clusters sowie fortlaufend eingehende Statusmeldungen zurück. Dies ist ein erster wichtiger Indikator für den Zustand des Systems. Mit ceph health detail gelangen Sie an tiefergehende Details zum Gesundheitszustand des Objektspeichers. Übrigens bietet der Ceph-Manager zudem eine Schnittstelle für Prometheus an, sodass ein Metrikdaten-basiertes Monitoring möglich ist. Diese Funktion ist allerdings separat zu aktivieren, Proxmox bietet dafür in den Einstellungen des Clusters eine entsprechende Option.
CLI-Werkzeuge für den Cluster
Auch die Cluster-Werkzeuge von Proxmox kommen mit einigen CLI-Befehlen daher. Um etwa HA für eine Instanz per Shell zu aktivieren, nutzen Sie den Befehl
ha-manager add vm:<100>
Den Parameter "100" ersetzen Sie dabei durch die ID der jeweiligen Instanz. Um eine im HA-Modus betriebene Instanz zu stoppen, etwa für Wartungsarbeiten, eignet sich das Kommando
ha-manager set vm:<100> --state stopped
Nach der erfolgreichen Wartung belebt dasselbe Kommando die Instanz wieder, wenn Sie "stopped" durch "started" ersetzen. Über ha-manager config gelangen Sie zur aktuellen Ressourcenkonfiguration und ha-manager status zeigt den tatsächlichen Zustand des Clusters an.
Wollen Sie eine Instanz von einem auf ein anderes System verschieben, klappt das mittels
ha-manager migrate vm:<100> <bob>
Wobei Sie wieder die ID der Instanz nutzen und "bob" durch den tatsächlichen Namen des Knotens ersetzen. Anstelle von "migrate" kommt auch "relocate" infrage; dieses nutzt aber nicht die Livemigration sondern hält die Instanz auf ihrem aktuellen Host an und startet sie danach woanders neu. Um eine Instanz aus den Fängen des Cluster-Managers zu befreien, eignet sich der Befehl ha-manager renove vm:100. Sämtliche hier vorgestellte Befehle lassen sich auch in Shell-Skripten verwenden.
Fazit
Die Hochverfügbarkeit ist in Proxmox VE bemerkenswert leicht einzurichten. Keine Spur vom Unbill und den Konfigurationsorgien, die andernorts Pacemaker bedingt: Das Erstellen eines Clusters sowie die anschließende Aktivierung der HA-Funktion in Proxmox sind sinnvoll implementiert und kommen hinter der Oberfläche eines gut strukturierten GUIs daher. Aber auch über die Shell unterwegs lassen sich alle Aufgaben gut erledigen.
Anmerken möchten wir noch, dass unser Beispiel den Handlungsspielraum des Administrators im Hinblick auf den nutzbaren Speicher zugegeben einengt. Infrage kommt alternativ ZFS-Replikation oder NAS mit iSCSI oder NVMe-oF. Letzteres erzwingt jedoch einen Ausflug auf die Shell, weil das GUI dafür keine Optionen anbietet.