// Technical guide // HA · Migration Updated:

Live migration on Proxmox VE
(the vMotion equivalent)

vMotion on vSphere is live-moving a VM between hosts. On Proxmox VE that is qm migrate with --online. On shared storage you copy memory; on local ZFS/LVM you add --with-local-disks. This is not HA — HA restarts the guest after fencing; live migration moves a running VM.

// Table of Contents
  1. vMotion vs qm migrate
  2. Shared storage and local disks
  3. Network, encryption, limits
  4. CPU type and compatibility
  5. Containers, HA and the load balancer
  6. What breaks live migration
  7. Datacenter: network and migration type
  8. Offline, HA and design order
// 01 · Glossary

vMotion vs qm migrate

In the PVE panel: VM → Migrate → “Online”. From the CLI:

qm migrate <vmid> <target> --online

--online is ignored if the VM is stopped. The default vmid range in man qm is 100–999999999. This is not a product named “vMotion” — it is QEMU/KVM live migration that vSphere wraps in another brand.

The GUI shows a memory-iteration bar: QEMU copies dirty pages until the delta fits the switchover window. The more the guest writes, the longer the “last” iteration takes. That is why the migration network and the --bwlimit cap are part of the design, not CLI decoration. A guest with a huge database cache on local ZFS without shared storage will walk for minutes — that is not a fault, it is a volume copy.

// 02 · Disks

Shared storage and local disks

The pvesm guide: on shared storage (NFS, RBD, iSCSI) nodes see the same image, so live migration is fast — no disk copy. On local ZFS/LVM-thin you enable --with-local-disks (live storage migration). --targetstorage maps source to target; 1 maps each storage to itself.

--force allows migrating a VM that uses local devices (passthrough, for example). Root only. Without it the task fails on a local device.

⚠️

Note: live disk migration copies the volume over the cluster network. On large ZFS that is minutes, not seconds. HA on local ZFS alone without replication does not magically “move” the disk after a node dies — the disk stays on the dead host.

// 03 · Network

Network, encryption, limits

Keep the migration network off Corosync and off Ceph. Saturating the cluster link with live migration is a classic way to lose quorum during a “harmless” vMotion.

// 04 · CPU

CPU type and compatibility

Live migration needs the target to run the same vCPU model. Type host pins physical CPU flags — between Intel/AMD generations the migration fails. A safer common denominator: x86-64-v2 / x86-64-v3 or an explicit QEMU model. Details: Choosing a CPU type in Proxmox.

// 05 · Limits

Containers, HA and the load balancer

A running LXC cannot live-migrate — PVE does a restart migration. Cluster HA is a different mechanism: after fencing the guest starts on another node (needs quorum and a reachable disk). The PVE 9.2 Dynamic Load Balancer itself issues live migrations to even out CPU/RAM — honouring affinity. That is the DRS equivalent, not vMotion in isolation.

The Storage vMotion equivalent is --with-local-disks / changing --targetstorage while the VM is up. Changing a portgroup in flight is a bridge/VLAN edit — not always without a short link blip; we do not promise “zero” where QEMU must re-plug the NIC.

// 06 · Blockers

What breaks live migration

The PVE 9.2 Dynamic Load Balancer itself starts live migration while honouring affinity — that is the DRS analogue, not a separate product. HA is still a different mechanism (restart after fencing). Quorum: cluster and quorum.

// 07 · Datacenter

Datacenter: network and migration type

qm man: --migration_type defaults to an SSH tunnel (encrypted). On a fully private network you can switch it for throughput — that is a risk decision, not “always turn it off”. --bwlimit in KiB/s takes the default from the datacenter or storage. --with-conntrack-state defaults to 0. --targetstorage 1 maps each storage onto itself.

// 08 · Design

Offline, HA and design order

Offline migration (VM powered off) copies the disk with no memory iterations — a plain volume transfer. --online is then ignored (man qm). HA is still a different mechanism: after fencing the guest starts on another node if quorum holds and the disk is visible there. Live migration does not replace HA, and HA does not replace live migration.

Design order is fixed: a common CPU baseline and a dedicated migration CIDR first, then shared storage or a conscious copy of local disks, and only then the Dynamic Load Balancer. Affinity and HA maintenance mode live in other articles — we do not mix them with the vMotion bar in the GUI.

ℹ️

PCI/USB passthrough stays on the source. --force (root only) bypasses the local-device block — it does not move the PCIe card to the target. That is a deliberate “leave the device”, not a magic vfio migrate.

We’ll design the migration network and CPU types

Shared vs local, CPU type, a dedicated CIDR for live migration — so vMotion on PVE does not knock over Corosync.

⚡ Free consultation → Cluster and quorum