FULL AI ANALYSIS

Proxmox live migration fails when VM has VFIO‑passed PCIe GPU attached (error: device busy)

Generated Oct 3, 2026, 12:35:03 AM

Analysis summary

Physical PCIe device passthrough with vfio binds a device to a single host and exposes direct hardware to the guest; most physical devices cannot be live-migrated because the device state and DMA mappings live on the source host and there is no standard mechanism to transfer them atomically to the target. IOMMU group boundaries and device ownership further prevent detaching the device. Consumer GPUs typically lack mediated device support required for safe live migration. Thus Proxmox/ QEMU reports 'device busy' because the device cannot be detached from the host for migration.

Possible causes

Using true PCIe passthrough of a physical GPU which has no live-migration support (no vGPU or mediated device driver)

95%

Device in same IOMMU group as other host devices, preventing isolated reassignment or hot-detach

90%

Kernel or driver holds the device open on the source host preventing QEMU from migrating the VM with an attached device

85%

Suggested fixes

1

Diagnostic step 1

If live migration is required, replace direct passthrough with a migratable alternative: use vendor mediated devices (vGPU / MDEV) supported by the GPU vendor (NVIDIA GRID, Intel GVT-g) and ensure guest/host drivers support migration — test on non-production first

2

Diagnostic step 2

Use cold migration as an operational workaround: schedule short maintenance window, shut down VM, migrate, and start on destination (reversible, simplest approach)

3

Diagnostic step 3

Consider using PCI device replication techniques: move workloads to virtualized GPUs or cloud GPUs instead of direct passthrough to enable mobility

4

Diagnostic step 4

If you must use passthrough and want minimal downtime, implement scripted failover: replicate disk and configuration, orchestrate brief VM shutdown, and start on target; automate with hooks to minimize human error

5

Diagnostic step 5

If IOMMU grouping is blocking, review hardware (enable ACS if supported in BIOS) and evaluate moving to servers with better ACS/IOMMU grouping that allow safer device assignment; involve hardware/ops team for hardware changes and schedule planned maintenance to test