Technical

Proxmox Cluster Resource Scheduling: Why VMs Don’t Move on Their Own

Proxmox Cluster Resource Scheduling: Why VMs Don’t Move on Their Own

Proxmox cluster resource scheduling doesn’t balance VMs across nodes. It never has. The scheduler only kicks in when a node fails or you manually migrate something. So if you’re waiting for it to move a busy VM off a loaded node, you’ll be waiting forever.

Close-up image of ethernet cables plugged into a network switch, showcasing IT infrastructure.

What the scheduler actually does

Proxmox uses a static resource scheduler. When you start a VM or container, it picks a node based on CPU and memory available at that moment. After that, it doesn’t touch it. No rebalancing, no load-based migration, nothing. It’s not VMware DRS.

The only automatic movement happens with HA. If a node dies, the HA manager restarts its VMs on other nodes. That’s it. That’s the whole magic.

Testing it with two nodes

I set up a two-node cluster with HA enabled. Put four VMs on node A, none on node B. Started a CPU stress test on node A’s VMs. Watched the cluster for an hour.

Nothing moved. Node A sat at 90% CPU, node B idle. The scheduler didn’t care. It only looks at resources when you ask it to start something new.

Focused detail of a modern server rack with blue LED indicators in a data center.

What you can configure

If you want better placement, you have a few options:

  • HA groups — set ha-group with restricted and nofailback to control where VMs go after a failover.
  • Resource limits — set CPU and memory limits on VMs so the initial placement is more even.
  • Manual migration — just move the damn VM yourself. It’s a homelab, not a datacenter.

There’s no built-in DRS-like feature. You can script something with pvesh and cron, but that’s overkill for most people.

My take

Don’t overthink it. Proxmox cluster resource scheduling is basic, and that’s fine. If you need automatic load balancing, you’re probably running a bigger setup than a homelab. For the rest of us, start VMs where you want them and move them when you need to.

If you’re setting up HA, make sure your nodes can actually see each other. A split-brain cluster will cause more problems than it solves. Check out Proxmox configuration validation before you reboot anything.

Leave a comment

Comments are reviewed before they appear. Your email is never published.