08 Januar 2026

Ermittlung des maximalen CPU-Modells für Live-Migrationen in Proxmox Clustern mit ProxCLMC

ProxCLMC – Was ist das?

Live-Migration ist eine der leistungsfähigsten und am häufigsten genutzten Funktionen in einem Proxmox VE Cluster. Sie setzt jedoch eine Voraussetzung voraus, die oft unterschätzt wird: eine konsistente CPU-Kompatibilität über alle Nodes hinweg. In realen Umgebungen bestehen Cluster selten aus identischer Hardware, bei der man einfach den CPU-Typ host verwenden könnte. Nodes werden über die Zeit hinweg hinzugefügt, CPU-Generationen unterscheiden sich und Funktionsumfänge entwickeln sich weiter. Obwohl Proxmox VE eine flexible CPU-Konfiguration erlaubt, ist die Ermittlung einer sicheren und zugleich optimalen CPU-Baseline für den gesamten Cluster bislang weitgehend eine manuelle und erfahrungsbasierte Aufgabe.

ProxCLMC (Prox CPU Live Migration Checker) wurde von unserem Kollegen Florian Paul Azim Hoberg (auch bekannt als gyptazy) in Rust als Open-Source Lösung unter der GPLv3 Lizenz entwickelt, um diese Lücke auf einfache, automatisierte und reproduzierbare Weise zu schließen. Das Tool untersucht alle Nodes eines Proxmox-VE-Clusters, analysiert nachfolgend deren CPU-Fähigkeiten und berechnet das höchstmögliche CPU-Kompatibilitätsniveau, das von jedem Node unterstützt wird. Anstatt sich auf Annahmen, Tabellenkalkulationen oder Versuch und Irrtum zu verlassen, erhalten Administratoren ein klares und deterministisches Ergebnis, das direkt bei der Auswahl von VM-CPU-Modellen verwendet werden kann.

In anderen Virtualisierungsökosystemen existieren vergleichbare Mechanismen bereits. Enterprise-Plattformen bieten häufig integrierte Werkzeuge oder automatische Hilfestellungen, um kompatible CPU-Baselines zu erkennen und ungültige Live-Migrationskonfigurationen zu verhindern. Proxmox VE verfügt derzeit jedoch über keinen solchen automatisierten Erkennungsmechanismus, sodass Administratoren CPU-Flags manuell vergleichen oder sich auf Betriebserfahrung verlassen müssen. ProxCLMC schließt diese Lücke, indem es eine clusterweite CPU-Kompatibilitätsanalyse bereitstellt, die speziell auf Proxmox-Umgebungen zugeschnitten ist.

Wie funktioniert ProxCLMC?

ProxCLMC ist so konzipiert, dass es sich nahtlos in bestehende Proxmox-VE-Cluster integrieren lässt, ohne zusätzliche Dienste, Agents oder Konfigurationsänderungen zu erfordern. Es ist vollständig in Rust geschrieben (vollständig Open Source unter GPLv3), wird als statisches Binary kompiliert und als Debian-Paket über das gyptazy-Repository bereitgestellt, um eine einfache Installation zu ermöglichen. Der Arbeitsablauf folgt einem klaren und transparenten Prozess, der widerspiegelt, wie Administratoren über CPU-Kompatibilität nachdenken, diesen jedoch zuverlässig und reproduzierbar automatisiert.

Nach dem Start parst das Tool die lokale corosync.conf auf dem Node, auf dem es ausgeführt wird. Dadurch kann ProxCLMC automatisch alle Mitglieder des Clusters erkennen, ohne auf externe Inventare oder manuelle Eingaben angewiesen zu sein. Die ermittelte Node-Liste entspricht somit stets dem tatsächlichen Zustand des Clusters.

Sobald alle Cluster-Nodes identifiziert sind, baut ProxCLMC eine SSH-Verbindung zu jedem Node auf. Über diese Verbindung liest es remote den Inhalt von /proc/cpuinfo. Diese Datei liefert eine detaillierte und maßgebliche Sicht auf die vom Host-Kernel bereitgestellten CPU-Fähigkeiten, einschließlich des vollständigen Satzes unterstützter CPU-Flags.

Aus den gesammelten Daten extrahiert ProxCLMC die relevanten CPU-Flags und wertet sie anhand klar definierter x86-64-CPU-Baseline-Definitionen aus. Diese Baselines sind direkt an die von Proxmox VE und QEMU unterstützten CPU-Modelle angelehnt, darunter:

  • x86-64-v1
  • x86-64-v2-AES
  • x86-64-v3
  • x86-64-v4

Durch die Zuordnung der CPU-Flags jedes Nodes zu diesen standardisierten Baselines kann ProxCLMC bestimmen, welche CPU-Level pro Node unterstützt werden. Anschließend berechnet das Tool den niedrigsten gemeinsamen CPU-Typ, der von allen Nodes im Cluster geteilt wird. Diese resultierende Baseline stellt das maximale CPU-Kompatibilitätsniveau dar, das sicher für virtuelle Maschinen verwendet werden kann und dennoch uneingeschränkte Live-Migrationen zwischen allen Nodes ermöglicht. Um eine allgemeine Vorstellung von der Ausgabe zu bekommen:


test-pmx01 | 10.10.10.21 | x86-64-v3
test-pmx02 | 10.10.10.22 | x86-64-v3
test-pmx03 | 10.10.10.23 | x86-64-v4
Cluster CPU type: x86-64-v3

Mit diesem Ansatz bringt ProxCLMC eine automatisierte CPU-Kompatibilitätsprüfung in Proxmox-VE-basierte Cluster. Vergleichbare Konzepte sind aus anderen Virtualisierungsplattformen bereits bekannt, etwa VMware EVC, bei dem die CPU-Kompatibilität clusterweit erzwungen wird, um sichere Migrationen zu gewährleisten. ProxCLMC überträgt diese grundlegende Idee auf Proxmox-Umgebungen, setzt sie jedoch leichtgewichtig, transparent und vollständig offen um und fügt sich damit nahtlos in bestehende Betriebs- und Arbeitsabläufe ein.

Installation von ProxCLMC

ProxCLMC wurde mit dem Ziel entwickelt, eine einfache Bereitstellung zu ermöglichen und sich sauber in bestehende Proxmox-VE-Umgebungen zu integrieren. Es kann direkt aus dem Quellcode genutzt oder als paketiertes Debian-Binary installiert werden und eignet sich damit sowohl für Entwicklungs- als auch für Produktionsumgebungen.

Der vollständige Quellcode ist öffentlich auf GitHub verfügbar und kann unter folgender Adresse abgerufen werden:
https://github.com/gyptazy/ProxCLMC

Dies ermöglicht vollständige Transparenz, Auditierbarkeit sowie die Möglichkeit, das Tool an individuelle Anforderungen anzupassen oder selbst zu bauen.

Voraussetzungen und Abhängigkeiten

Vor der Installation von ProxCLMC müssen folgende Voraussetzungen erfüllt sein:

  • Ein Proxmox-VE-Cluster
  • SSH-Authentifizierung zwischen allen Proxmox-VE-Nodes
  • Netzwerkverbindung zwischen allen Cluster-Mitgliedern

ProxCLMC nutzt SSH, um jeden Node remote zu untersuchen und CPU-Informationen auszulesen. Eine passwortlose SSH-Authentifizierung wird daher empfohlen, um eine reibungslose und automatisierte Ausführung zu gewährleisten.

Installation über das Debian-Repository

Der empfohlene Weg zur Installation von ProxCLMC auf Debian-basierten Systemen, einschließlich Proxmox VE, ist über das von gyptazy bereitgestellte Debian-Repository. Dieses Repository wird auch zur Distribution des ProxLB-Projekts genutzt und fügt sich nahtlos in die üblichen Paketmanagement-Workflows ein.

Um das Repository hinzuzufügen und ProxCLMC zu installieren, führen Sie die folgenden Befehle aus:

echo "deb https://repo.gyptazy.com/stable /" > /etc/apt/sources.list.d/proxlb.list
wget -O /etc/apt/trusted.gpg.d/proxlb.asc https://repo.gyptazy.com/repository.gpg
apt-get update && apt-get -y install proxclmc

Die Nutzung des Repositories stellt sicher, dass ProxCLMC einfach installiert, aktualisiert und gemeinsam mit anderen Systempaketen verwaltet werden kann.

Installation über ein Debian-Paket

Alternativ kann ProxCLMC auch manuell über ein vorgebautes Debian-Paket installiert werden. Dies ist besonders nützlich für Umgebungen ohne direkten Repository-Zugriff oder für Offline-Installationen.

Das Paket kann direkt über das CDN von gyptazy heruntergeladen und mit dpkg installiert werden:

wget https://cdn.gyptazy.com/debian/proxclmc/proxclmc_1.0.0_amd64.deb
dpkg -i proxclmc_1.0.0_amd64.deb

Diese Methode bietet den gleichen Funktionsumfang wie die Installation über das Repository, jedoch ohne automatische Updates.

Fazit

ProxCLMC zeigt exemplarisch, wie schnell Lücken im Open-Source-Virtualisierungsökosystem geschlossen werden können, wenn reale betriebliche Anforderungen direkt adressiert werden. Ähnlich wie das ProxLB-Projekt (GitHub), das erweiterte Scheduling- und Balancing-Funktionen für Proxmox-VE-basierte Cluster bereitstellt, konzentriert sich ProxCLMC auf einen sehr spezifischen, aber kritischen Bereich, der zuvor weitgehend manuellen Prozessen und Erfahrungswerten überlassen war.

Durch die Einführung einer automatisierten CPU-Kompatibilitätserkennung bringt ProxCLMC eine Funktionalität in Proxmox-VE-Cluster, die in Enterprise-Virtualisierungsplattformen üblicherweise erwartet wird, bislang jedoch nicht in automatisierter Form verfügbar war. Es zeigt, dass Open-Source-Lösungen nicht durch fehlende Funktionen begrenzt sind, sondern vielmehr die Freiheit bieten, Plattformen genau dort zu erweitern und anzupassen, wo es am wichtigsten ist.

Mit ProxCLMC können Betreiber nun automatisch den am besten geeigneten CPU-Typ für virtuelle Maschinen in einem Proxmox-VE-Cluster ermitteln und so sichere Live-Migrationen sowie ein konsistentes Verhalten über alle Nodes hinweg gewährleisten. Zusammen mit Projekten wie ProxLB unterstreicht dies die Stärke des Open-Source-Modells: fehlende Enterprise-Funktionen können transparent ergänzt, an reale Anforderungen angepasst und mit der Community geteilt werden, um das Proxmox-Ökosystem kontinuierlich zu verbessern. Sollte Sie ebenfalls Bedarf an weiteren Anpassungen oder Entwicklungen Rund um oder für Proxmox VE benötigen, so unterstützten wir Sie gerne bei der Realisierung! Zögern Sie nicht mit uns Kontakt aufzunehmen – gerne beraten wir Sie zu Ihrem Vorhaben!

Kategorien: HowTos Proxmox Virtualisierung
Tags: howto ProxCLMC proxmox Proxmox VE

über den Autor

gyptazy

Senior DevOps Consultant

zur Person

In my tech repertoire, FreeBSD and federated services stand not just as a personal preference but as a symbol of a commitment to the ethos of open-source. I am a fervent believer in the symbiotic relationship between developers including DevOps, SysOps and the open source community. As I continue to lead teams in the ever-evolving landscape of technology, their dedication to open-source contributions and advocacy for decentralized and federated services echoes not only in the code they write but in the ethos they instill within the teams.

Beiträge ansehen


Beitrag teilen: