ProxCLMC: Identifying the Maximum Safe CPU Model for Live Migration in Proxmox Clusters

ProxCLMC – What is it?
Live migration is one of the most powerful and frequently used features in a Proxmox VE cluster, but it relies on a prerequisite that is often underestimated: consistent CPU compatibility across all nodes. In real-world environments, clusters rarely consist of identical hardware where we could simply use the host type. Nodes are added over time, CPU generations differ, and feature sets evolve. While Proxmox VE allows flexible CPU configuration, determining a safe and optimal CPU baseline for the entire cluster is still largely a manual and experience-driven task.
ProxCLMC (Prox CPU Live Migration Checker) was created to close this gap in a simple, automated, and reproducible way. It inspects all nodes in a Proxmox VE cluster, analyzes their CPU capabilities, and calculates the highest possible CPU compatibility level that is supported by every node. Instead of relying on assumptions, spreadsheets, or trial and error, operators receive a clear and deterministic result that can directly be used when selecting VM CPU models.
In other virtualization ecosystems, comparable mechanisms already exist. Enterprise platforms often provide built-in tooling or automated guidance to detect compatible CPU baselines and prevent invalid live migration configurations. Proxmox VE, however, currently lacks such an automated detection mechanism, leaving administrators to manually compare CPU flags or rely on operational experience. ProxCLMC fills this missing piece by providing a cluster-wide CPU compatibility analysis that is tailored specifically for Proxmox environments.
How does ProxCLMC work?
ProxCLMC is designed to integrate seamlessly into existing Proxmox VE clusters without requiring additional services, agents, or configuration changes. Therefore, it is entirely written in Rust (fully open-source under GPLv3), compiled as a static binary and shipped as a Debian package for easy installations via the gyptazy repository. Its workflow follows a clear and transparent process that mirrors how operators reason about CPU compatibility, but automates it in a reliable and repeatable way.
Once started, the tool parses the local corosync.conf on the node where it is executed. This allows ProxCLMC to automatically discover all members of the cluster without relying on external inventories or manual input. As a result, the detected node list always reflects the actual cluster state.
Once all cluster nodes are identified, ProxCLMC establishes an SSH connection to each node. Through this connection, it reads the contents of /proc/cpuinfo remotely. This file provides a detailed and authoritative view of the CPU capabilities exposed by the host kernel, including the full set of supported CPU flags.
From the collected data, ProxCLMC extracts the relevant CPU flags and evaluates them against well-defined x86-64 CPU baseline definitions. These baselines are directly aligned with the CPU models supported by Proxmox VE and QEMU, including:
- x86-64-v1
- x86-64-v2-AES
- x86-64-v3
- x86-64-v4
By mapping each node’s CPU flags to these standardized baselines, ProxCLMC can determine which CPU levels are supported on a per-node basis. It then calculates the lowest common CPU type that is shared across all nodes in the cluster. This resulting baseline represents the maximum CPU compatibility level that can be safely used for virtual machines while still allowing unrestricted live migration between all nodes. To have a general idea about the output:
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-v3With this approach, ProxCLMC brings automated CPU compatibility validation to Proxmox VE based clusters. Similar concepts are already well known from other virtualization platforms, such as VMware’s EVC, where CPU compatibility is enforced cluster-wide to guarantee safe migrations. ProxCLMC applies the same fundamental idea to Proxmox environments, but in a lightweight, transparent, and fully open way that fits naturally into existing operational workflows.
Installation of ProxCLMC
ProxCLMC is designed to be easy to deploy and integrates cleanly into existing Proxmox VE environments. It can be used directly from source or installed as a packaged Debian binary, making it suitable for both development and production setups.
The complete source code is publicly available on GitHub and can be fetched from
https://github.com/gyptazy/ProxCLMC
This allows full transparency, auditing, and the ability to build or adapt the tool to individual requirements.
Requirements and Dependencies
Before installing ProxCLMC, the following prerequisites must be met:
- A Proxmox VE cluster
- SSH authentication between all Proxmox VE nodes
- Network connectivity between cluster members
ProxCLMC relies on SSH to remotely inspect each node and read CPU information. Passwordless SSH authentication is therefore recommended to allow smooth and automated execution.
Installation via Debian Repository
The recommended way to install ProxCLMC on Debian-based systems, including Proxmox VE, is via the Debian repository provided by gyptazy. This repository is also used to distribute the ProxLB project and integrates cleanly with standard package management workflows.
To add the repository and install ProxCLMC, run the following commands:
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 proxclmcUsing the repository ensures that ProxCLMC can be easily installed, updated, and managed alongside other system packages.
Installation via Debian Package
As an alternative, ProxCLMC can also be installed manually using a prebuilt Debian package. This is useful for environments without direct repository access or for offline installations.
The package can be downloaded directly from gyptazy’s CDN and installed using dpkg:
wget https://cdn.gyptazy.com/debian/proxclmc/proxclmc_1.0.0_amd64.deb
dpkg -i proxclmc_1.0.0_amd64.debThis method provides the same functionality as the repository-based installation, but without automatic updates.
Conclusion
ProxCLMC demonstrates how quickly gaps in the open-source virtualization ecosystem can be closed when real operational needs are addressed directly. Similar to the ProxLB project (Github), which adds advanced scheduling and balancing capabilities to Proxmox VE based clusters, ProxCLMC focuses on a very specific but critical area that was previously left to manual processes and experience.
By introducing automated CPU compatibility detection, ProxCLMC brings a capability to Proxmox VE clusters that is commonly expected in enterprise virtualization platforms but has not been available in an automated form so far. It shows that open-source solutions are not limited by missing features, but instead provide the freedom to build, extend, and adapt platforms exactly where it matters most.
With ProxCLMC, operators can now automatically evaluate the most suitable CPU type for virtual machines running in a Proxmox VE cluster, ensuring safe live migrations and consistent behavior across all nodes. Together with projects like ProxLB, this highlights the strength of the open-source model: missing enterprise features can be added transparently, tailored to real-world requirements, and shared with the community to continuously improve the Proxmox ecosystem.