If your homelab runs Proxmox VE, May 21, 2026 marks a major release: Proxmox VE 9.2 ships with QEMU 11.0, LXC 7.0, ZFS 2.4, the Linux 7.0 kernel, and a brand-new Dynamic Load Balancer for automated cluster resource optimization.
This guide covers the full upgrade from Proxmox VE 8.4 to 9.2 — including the new features worth enabling after the reboot, known pitfalls like LXC containers failing to start on kernel 7.0, and the config changes you need to make for a clean upgrade on a homelab cluster.
Why Upgrade to Proxmox VE 9.2?
Proxmox VE 9.2 bundles several major updates under the hood:
| Component | Proxmox 8.x | Proxmox 9.2 |
|---|---|---|
| Base OS | Debian 12 Bookworm | Debian 13 Trixie |
| Kernel | 6.8 (default) | 7.0 (Linux 7.0) |
| QEMU | 8.x | 11.0 |
| LXC | 5.x | 7.0 |
| ZFS | 2.1.x | 2.4 |
| Ceph | Squid 19 (optional) | Tentacle 20.2 (default) |
The headline feature is the Dynamic Load Balancer, which automatically redistributes VMs and containers across cluster nodes based on CPU and memory utilization — similar to VMware DRS. Other notable additions include:
- SDN WireGuard fabrics — encrypted overlay networks between cluster nodes without dedicated VPN hardware.
- BGP/EVPN route maps and prefix lists — fine-grained control for advanced SDN setups.
- Custom CPU profiles in the web UI — create, edit, and remove CPU profiles per VM from Datacenter → Options.
- HA rules replacing HA groups — more flexible scheduling policies.
Prerequisites
Before touching the upgrade, verify these prerequisites:
1. Run the Latest Proxmox VE 8.4
|
|
If your version is older, update first:
|
|
2. Run the Pre-Upgrade Checklist
The pve8to9 script validates your system before the upgrade.
It is included in the latest Proxmox VE 8.4 packages:
|
|
Run it now. It will flag:
- LVM volumes with autoactivation enabled (common on LVM-thin storages)
- Third-party repositories that might conflict with Trixie
- Packages that will be removed during the dist-upgrade
Fix each warning before proceeding. Re-run pve8to9 --full
after each fix.
3. Backup Everything
Do not skip this. Back up all VMs and containers to external or NFS/SMB storage via the GUI or:
|
|
Also back up critical host config:
|
|
4. Ensure Enough Disk Space
|
|
The dist-upgrade downloads hundreds of packages. The apt cache alone can reach 1-2 GB during the process.
5. Use tmux or screen
If connecting via SSH (not IPMI/iKVM), wrap the session:
|
|
This protects against connection drops mid-upgrade.
Step-by-Step: In-Place Upgrade to Proxmox VE 9.2
Step 1: Update Repositories to Debian Trixie
Switch Debian base and Proxmox repositories from Bookworm to Trixie:
|
|
Step 2: Add Proxmox VE 9 Repositories (deb822 Format)
Replace the old .list files with the new deb822 .sources
format. For the no-subscription repository (most homelabs):
|
|
If you have an enterprise subscription:
|
|
Remove the old .list files after verifying the new ones work:
|
|
Step 3: Run the Dist-Upgrade
|
|
This upgrades the entire system from Debian 12 → 13 and Proxmox VE 8 → 9 in one pass. Expect 5-60 minutes depending on disk speed.
During the process you will be prompted about config file changes. Recommended choices:
| File | Recommendation |
|---|---|
/etc/issue |
Keep current (cosmetic only) |
/etc/lvm/lvm.conf |
Install maintainer version |
/etc/ssh/sshd_config |
Install maintainer version |
/etc/default/grub |
Keep current (review diffs first) |
/etc/chrony/chrony.conf |
Install maintainer version |
Step 4: Reboot
|
|
After reboot, verify the kernel:
|
|
Step 5: Clean Up apt Repositories (Optional)
Modernize remaining .list files to deb822 format:
|
|
This creates .sources files and renames old .list files to
.list.bak. Verify everything works and delete the .bak
files once confirmed.
Post-Upgrade: What to Fix First
LVM Autoactivation Migration
Upgrading from PVE 8, your existing LVM guest volumes may still have autoactivation enabled. This causes issues on shared LVM storages in clusters. Run the migration script:
|
|
Re-run pve8to9 --full to confirm the warning is gone.
LXC Containers Not Starting on Kernel 7.0
A common issue reported on kernel 7.0 is LXC containers failing to start with errors like:
lxc_map_ids: newuidmap failed to write mapping
This is caused by systemd-tmpfiles not creating /run/pve
early enough. Fix:
|
|
For persistent issues, ensure pve-container and
pve-guests services are enabled:
|
|
Disable Audit Noise (Optional)
Debian Trixie enables kernel audit logging by default. To suppress excessive audit messages during normal operation:
|
|
Configuring the Dynamic Load Balancer
The Dynamic Load Balancer is the standout feature in 9.2. It automatically rebalances VMs and containers across cluster nodes based on resource utilization — no more manually deciding where to place guests.
Prerequisites
- All cluster nodes must be on Proxmox VE 9.2.
- HA must be enabled on the cluster (Datacenter → HA).
- A valid quorum (at least 3 nodes or a QDevice).
Enable Dynamic Load Balancing
Navigate to Datacenter → Options and set:
- HA Scheduling:
Dynamic Load - Re-balance method:
Default (bruteforce)orTOPSIS - Automatically re-balance HA resources: ✓ enabled
From the CLI:
|
|
The load balancer periodically evaluates node utilization and moves low-priority VMs from overloaded nodes to underutilized ones. Migration thresholds are configurable:
|
|
HA Rules vs. HA Groups
Proxmox VE 9 deprecates HA groups in favor of HA rules. If you upgrade from PVE 8 with existing HA groups, they are automatically migrated to HA rules once all cluster nodes are on PVE 9.
Verify the migration:
|
|
Create new rules from the GUI or CLI:
|
|
Other New Features Worth Enabling
SDN WireGuard Fabrics
Proxmox VE 9.2 adds WireGuard as a native SDN fabric protocol. This creates encrypted overlay networks between cluster nodes without configuring WireGuard manually on each host.
Datacenter → SDN → Zones → Add → Fabric
Select WireGuard as the fabric type, assign a subnet, and
select which nodes participate. The zone is automatically
provisioned and key exchange is handled by the cluster
configuration.
Custom CPU Profiles
Navigate to Datacenter → Options → CPU Profiles to create custom CPU type profiles. Useful for:
- Exposing specific CPU features to VMs (e.g., AVX-512 for AI workloads)
- Matching CPU models across heterogeneous cluster hardware
- Hiding features for cross-cluster migration compatibility
BGP/EVPN Route Maps
If you run BGP/EVPN in your homelab (for example, integrating Proxmox SDN with RouterOS or FRR), the new route maps and prefix lists give you fine-grained control over route advertisement. Configure under Datacenter → SDN → IPAM / Route Maps.
Known Issues and Workarounds
Veeam Backup Compatibility
PVE 9.2 uses QEMU machine version 10.0+ by default. Veeam has
not adapted to the new internal disk attachment changes. If you
use Veeam for backups, pin affected VMs to machine version
9.2+pve1:
|
|
/tmp is Now tmpfs
Debian Trixie mounts /tmp as tmpfs using up to 50% of system
memory by default. If your workflows depend on large temp files,
adjust the mount:
|
|
Or revert to disk-backed /tmp:
|
|
Ceph Updates
If you run hyper-converged Ceph, the default is now Ceph Tentacle 20.2.1. Ceph Squid 19.2.3 remains available as an alternative. Check compatibility before upgrading:
|
|
Verifying a Clean Upgrade
Run the checklist once more after reboot:
|
|
Expected clean output — no warnings or errors. Then:
|
|
Check all VMs start properly:
|
|
Test HA rebalancing by creating a test VM with HA enabled, loading it with stress, and verifying the dynamic load balancer moves it:
|
|
Summary
Proxmox VE 9.2 is a significant release for homelab users. The Dynamic Load Balancer eliminates the manual guesswork of VM placement, SDN WireGuard fabrics simplify encrypted cluster networking, and the underlying upgrade to Debian Trixie with Linux 7.0 brings modern kernel features.
Key takeaways:
- Run
pve8to9 --fullbefore and after the upgrade. - Use tmux — this is a long-running dist-upgrade.
- Fix LVM autoactivation post-upgrade to avoid storage issues in clusters.
- Enable the Dynamic Load Balancer after all nodes are upgraded.
- Pin Veeam-backed VMs to machine version
9.2+pve1if needed. - Test LXC containers after the kernel 7.0 upgrade and apply the tmpfiles fix if they fail to start.
The 9.2 release transforms Proxmox from a capable hypervisor into an actively load-managed virtualization platform — and for homelab operators managing multiple nodes, that alone is worth the upgrade.