- Prerequisites and PVE preparation
- VMware inventory and audit
- Migration methods comparison
- Matrix: Wizard vs virt-v2v vs OVF
- ESXi Import Wizard step-by-step
- virt-v2v workflow (vmware to proxmox converter)
- Network mapping: VLANs and bridges
- Storage design: ZFS, iSCSI, Ceph
- Guest tuning: VirtIO for Windows and Linux
- Edge cases: snapshots, vSAN, Windows BSOD
- HA cluster migration on Proxmox
- Validation checklist and near-live cutover
- Rollback and VMware decommission
- Pre-cutover checklist (printable)
Prerequisites and PVE preparation
A production-grade vmware to proxmox migration starts with a stable target cluster — not with copying the first virtual machine. Proxmox VE 8.1 and later ships the integrated ESXi Import Wizard (package pve-esxi-import-tools) for VMware ESXi 6.5 through 8.0. Older PVE releases still support migration through virt-v2v, OVF import, or manual VMDK attach-and-move workflows.
Before touching production workloads, take a verified backup of every VMware VM (Veeam, NetBackup, or storage-level snapshots) and configure Proxmox Backup Server or scheduled vzdump jobs on the destination cluster. VMware remains the source of truth until formal cutover — do not delete snapshots or power off ESXi hosts until validation is complete.
Production HA topology: minimum 3 Proxmox nodes for Corosync quorum (pmxcfs). A two-node cluster cannot safely survive a single host failure without risking split-brain.
Infrastructure checklist
- Proxmox VE 8.1+ fully patched with
pve-esxi-import-toolsinstalled - Management network: 1 GbE minimum; large VM migrations benefit from a dedicated 10/25 GbE VLAN between ESXi and PVE
- ESXi/vSphere account with VM and datastore read access (vCenter optional; direct ESXi import is faster)
- Target storage: local-zfs, NFS, iSCSI, or Ceph — free space ≥ 120% of VM size (snapshots, logs, buffer)
- Proxmox Backup Server or
vzdumpschedule configured before production migration - VLAN mapping document: VMware port groups → Proxmox vmbr bridges
- Maintenance window for final import (VM must be powered off on ESXi for standard import)
Network planning deserves equal attention. Separate management, storage, migration, and guest traffic onto dedicated VLANs where possible. Corosync cluster traffic should use a low-latency link — never route it over a congested production LAN. If you plan Ceph, reserve a dedicated 10/25 GbE network before installing OSDs.
VMware inventory and audit
Without a complete inventory you cannot choose the right migration method or estimate cutover time. Collect VM resource usage, application dependencies, network configuration, and exceptions (RDM disks, vGPU passthrough, vSAN-backed VMs that the native importer cannot read).
PowerCLI remains the standard tool for VMware inventory export. Run scripts against vCenter for a cluster-wide view, or connect directly to standalone ESXi hosts for smaller environments. Store exports in version control or a secure document repository — they become the baseline for post-migration validation.
How to interpret each record
- VMs with snapshots — consolidate before import or plan a separate virt-v2v conversion
- RDM (physical mode) disks — not supported by Import Wizard; migrate to VMDK or PCIe/NVMe passthrough first
- vSAN — not supported by the native importer; use OVF export or virt-v2v over the network
- VMs with outdated VMware Tools — update before Windows migration (simplifies later VirtIO installation)
- Application HA pairs — mark cluster members for near-live migration (one instance at a time)
Classify VMs into migration waves: non-critical dev/test first, then internal services, then production databases and customer-facing applications. Each wave should have a defined rollback owner and communication plan.
Migration methods comparison
Proxmox does not offer a native equivalent of vMotion from ESXi to KVM — near-live cutover is an engineering process (background copy + short source shutdown), not a one-click live migration between hypervisors. The table below helps you pick the right tool for scale and VM type.
| Method | Description | Downtime | Best for |
|---|---|---|---|
| ESXi Import Wizard | Native PVE 8.1+ importer via ESXi API; maps VMX → QEMU config | VM powered off on ESXi (live-import option starts VM on PVE earlier) | Standard ESXi 6.5–8.0 VM migration |
| virt-v2v (libguestfs) | Converts VMDK → qcow2/raw + installs VirtIO drivers in guest | VM powered off during conversion | Windows/Linux, large disks, automatic VirtIO |
| OVF/OVA import | qm importovf or GUI wizard for exported templates | Depends on OVA size | VMs without direct ESXi access, OVF templates |
| Attach-and-move (VMDK) | Copy VMDK files to PVE storage + qm disk import | VM powered off | Single disks, NFS shared between ESXi and PVE |
| Near-live cutover | Full online copy + delta sync + brief source shutdown | Seconds–minutes (NOT native ESXi live migrate) | HA production, databases, critical services |
Live-import in PVE starts the VM on Proxmox after copying minimal boot data — the VM on ESXi must still be powered off. This reduces downtime but is not equivalent to vMotion or live migration without shutting down the source.
Decision matrix: Import Wizard vs virt-v2v vs OVF/OVA
Use this vmware to proxmox migration matrix in internal runbooks — link directly to #vtp-method-matrix.
| Criteria | ESXi Import Wizard | virt-v2v | OVF / OVA |
|---|---|---|---|
| ESXi API access required | Yes (443/tcp) | Optional (VDDK) | No — export file only |
| VM on vSAN | Not supported | After disk staging off vSAN | Yes, via vCenter OVF export |
| VM snapshots | Blocks import — consolidate first | VM must be snapshot-free | Export typically without snapshots |
| Auto VirtIO (Windows) | Partial — often manual post-import | Yes (virtio-win injection) | No — manual driver install |
| VMX → QEMU mapping | Automatic | Manual qm set | From OVF metadata |
| Proxmox GUI | Full wizard | CLI on conversion host | qm importovf + GUI |
| Batch (dozens of VMs) | API / qm import scripts | Scalable via Ansible/cron | One VM per export |
| Typical downtime | Full offline import | Offline conversion | Depends on OVA size |
| Choose when | Standard ESXi 6.5–8.0, local/SAN datastore | Windows, unusual disks, bulk conversion | vSAN, no API, archival VMs |
30-second method picker checklist
- Datastore is vSAN or encrypted VMDK? → OVF/OVA or virt-v2v after staging off vSAN
- Snapshots on the VM? → remove or consolidate before any method
- Windows without VirtIO? → virt-v2v or pre-install virtio-win on ESXi, then Wizard
- Single VM, ESXi online, no exceptions? → Import Wizard
- No host access, files only? → OVF or local virt-v2v -i disk
ESXi Import Wizard — step by step
The official Import Wizard (PVE 8.1+) adds an "ESXi" source under Datacenter → Storage → Add. The importer uses the public ESXi API — no proprietary VMware hooks. For automation, use the equivalent qm import command.
Add ESXi source
In the GUI: Datacenter → Storage → Add → ESXi. Enter host IP/FQDN and administrator credentials. For self-signed certificates, add the CA to the trust store or check "Skip Certificate Verification" (lab only).
Select VM and target storage
Browse the ESXi storage content, select the VM, click Import. Map network interfaces to vmbr bridges. Choose target storage (e.g. local-zfs, ceph-pool).
Power off VM on ESXi and run import
Standard import requires the VM to be powered off on the source. Optionally enable live-import so PVE starts the guest after copying boot-critical data.
Import through vCenter works but is significantly slower than direct ESXi host import. In production we recommend adding each ESXi host as a separate import source.
The Proxmox API exposes the same workflow: first call GET /nodes/{node}/storage/{storage}/import-metadata to list importable VMs, then POST /nodes/{node}/qemu with import-from= syntax for disk volumes. This enables Ansible or Terraform pipelines for large-scale migrations.
virt-v2v workflow — vmware to proxmox converter
virt-v2v from the libguestfs project is a proven VMware-to-KVM disk converter. It automatically installs VirtIO drivers in Windows (via virtio-win) and updates initramfs on Linux. Use it when Import Wizard hits unusual VMX configurations, when you need offline conversion on a dedicated conversion host, or when batch-processing dozens of VMs with consistent virtio injection.
Install virt-v2v on a Linux conversion host (Debian/Ubuntu/RHEL) or directly on a Proxmox node with sufficient disk space. For vCenter access, install VMware VDDK libraries (libguestfs-tools + VDDK in /usr/lib/vmware-vix-disklib).
Alternative: local VMDK conversion
If VMDK files are already copied to the PVE host:
virt-v2v supports Windows Server 2008 R2 through 2025, RHEL/CentOS/Rocky/Alma 7–9, Ubuntu LTS, Debian, SLES, and Oracle Linux. Always test one representative VM per OS generation before batch conversion.
Network mapping: VLANs and bridges
Map VMware port groups with VLAN IDs to Linux bridges with 802.1Q tags. In Proxmox the standard pattern is vmbr0 as a VLAN-aware trunk carrying multiple guest VLANs, or dedicated bridges per segment for simpler firewall rules.
| VMware | Proxmox VE | Example |
|---|---|---|
| vSS / vDS portgroup VLAN 100 | bridge=vmbr0,tag=100 | Application production |
| Portgroup without VLAN (native) | bridge=vmbr0 (no tag) | Management |
| vDS LACP uplink | Linux bond + vmbr or OVS bridge | 2×25 GbE aggregation |
| NSX overlay | SDN EVPN/VXLAN (separate project) | Micro-segmentation |
After migration verify MAC addresses and firewall rules (iptables/nftables, Proxmox firewall). Interface reordering (eth0/eth1) in the guest may require netplan fixes or /etc/udev/rules.d/70-persistent-net.rules updates on Linux.
For environments migrating from NSX or complex vDS policies, plan a parallel networking phase: stand up Proxmox SDN or EVPN/VXLAN fabrics before cutover so security groups and micro-segmentation rules are ready on day one.
Storage design: ZFS, iSCSI, Ceph
Storage choice determines live migration between PVE nodes, I/O performance, and total cost. The three most common models when migrating from VMware:
Local-ZFS
Simple start: each node has its own ZFS pool. No shared storage — live migration requires copying disks over the network. Good for smaller clusters and dev/test. Use ZFS snapshots for local backup before risky changes.
iSCSI / NFS (SAN)
Shared LUN or NFS export mounted on all nodes. Enables native live migration between PVE hosts (qm migrate). Integrates with existing SAN after VMFS decommission. Match LUN alignment and thin-provisioning policies to your RPO/RTO targets.
Ceph RBD
Distributed storage built into Proxmox — 3× replication, self-healing, horizontal scaling. Requires dedicated storage network (minimum 10 GbE, recommended 25 GbE). A vSAN replacement without Broadcom licensing. Plan MON + OSD topology before the first VM import.
When sizing storage, account for Proxmox snapshots, PBS deduplication, and Ceph recovery overhead. A rule of thumb: provision 130–150% of current VMware used capacity for the first year of growth.
Guest tuning: VirtIO for Windows and Linux
After migration replace emulated VMware devices (vmxnet3, LSI Logic) with VirtIO for better performance and lower CPU overhead. Import Wizard partially maps interfaces; virt-v2v installs drivers automatically. QEMU Guest Agent enables clean shutdowns, IP reporting, and freeze/thaw for application-consistent backups.
Windows Server
- Mount
virtio-win.iso(available from Proxmox repositories or virtio-win.org) - Install drivers: VirtIO SCSI, VirtIO Net, QEMU Guest Agent
- Enable QEMU Guest Agent in VM config:
--agent enabled=1 - Verify boot: switch disk controller to VirtIO SCSI before reboot
- Check Windows activation — motherboard UUID change may require KMS reactivation
Windows Server — avoiding BSOD (0x7B INACCESSIBLE_BOOT_DEVICE)
The most common failure after vmware to proxmox migration on Windows: blue screen 0x0000007B right after switching the disk controller to VirtIO SCSI. The disk boots on emulated SATA/IDE from Import Wizard, but VirtIO drivers are missing from the boot volume.
- Method A (recommended): on the running VM in ESXi mount
virtio-win.iso, install VirtIO SCSI + Net + Guest Agent, then import and switch controller - Method B: after import keep disk on SATA/IDE, boot, install VirtIO from ISO, switch to VirtIO SCSI, reboot
- Method C: virt-v2v injects drivers during conversion — lowest BSOD risk on first PVE boot
- After migration uninstall VMware Tools — leftover VMware services can conflict with QEMU Guest Agent
- Verify UEFI vs BIOS — Import Wizard preserves firmware; with OVF check
qm set <vmid> --bios ovmfvsseabios
Linux
- Modern kernels include virtio_blk/virtio_scsi modules by default
- After virt-v2v:
update-initramfs -u(Debian/Ubuntu) ordracut --force(RHEL) - Install
qemu-guest-agentand enable the service - Check
lsblkand fstab — device names may change from /dev/sda to /dev/vda
CPU type selection also matters post-migration: start with x86-64-v2-AES or x86-64-v3 for broad live-migration compatibility across heterogeneous hosts, then tighten to host only on dedicated single-socket database nodes. See our CPU type guide for details.
Edge cases: snapshots, vSAN, Windows BSOD
Most failed imports are source-state issues, not Proxmox bugs. Seven common blockers for vmware to proxmox migration and how to fix them.
1. Snapshots block Import Wizard
The importer refuses to start when snapshot chains exist. Consolidate or delete snapshots before import — not during.
2. vSAN VMs — Import Wizard will not work
The native importer reads datastores via ESXi API — vSAN objects are not exportable on that path. Workarounds:
- Storage vMotion VM to NFS/VMFS (off vSAN) — then Import Wizard
- Export OVF/OVA from vCenter →
qm importovfon Proxmox - virt-v2v via VDDK from vCenter (VM powered off, disk already off vSAN)
- Large VMs: clone to staging LUN, import from staging, delete clone after validation
3. RDM and independent disks (physical mode)
Physical-mode RDM has no VMDK file to copy. Convert RDM to VMDK (Storage vMotion) before migration, or plan PCIe passthrough in Proxmox for exceptions (e.g. licensed HBA).
4. Encrypted VMs and vTPM
VM Encryption requires KMS key export or OVF export with decryption in vCenter. vTPM does not transfer 1:1 — recreate TPM in QEMU config or disable TPM requirement in the application before cutover.
5. VLAN — VM boots but no network
Most common post-migration network issue: wrong VLAN tag or missing bridge-vlan-aware yes on the host.
| Symptom | Cause | Fix |
|---|---|---|
| No IP after boot | Wrong tag in qm set --net0 | Match VMware port group VLAN ID with PVE tag= |
| eth0 → eth1 on Linux | NIC reordering | netplan / 70-persistent-net.rules |
| Windows “unidentified network” | New MAC → new profile | Reassign static IP or reset network profile |
| Traffic blocked despite IP | PVE firewall / no trunk | bridge-vlan-aware yes + verify switch port mode |
6. Windows BSOD 0x7B on first reboot
See VirtIO section above. Short version: do not switch to VirtIO SCSI until drivers are in the boot volume. virt-v2v handles this automatically; with Wizard — pre-install on ESXi or boot via SATA.
7. Import Wizard “certificate verify failed”
ESXi uses self-signed certs. In lab: skip verification. In production: add ESXi cert to PVE trust store or use FQDN matching the certificate SAN.
HA cluster migration on Proxmox
VMware HA (vSphere DRS/HA) has no direct equivalent during ESXi → PVE migration. Enable Proxmox HA after VMs run on shared storage with a minimum of 3 nodes.
| VMware | Proxmox VE | Migration notes |
|---|---|---|
| vSphere HA | pve-ha-manager + 3-node quorum | Enable HA only after VMs on shared storage |
| DRS | Dynamic Load Balancer (PVE 9.2+) | Requires HA + affinity rules |
| vMotion within vSphere | qm migrate between PVE nodes | Only with shared storage (SAN/Ceph) |
| FT (Fault Tolerance) | No 1:1 — application replication | Plan active/passive or K8s/DB cluster |
Application cluster migration order
- Migrate passive / secondary node first — validate on isolated VLAN
- Switch traffic (DNS/LB) to the PVE instance
- Migrate primary in maintenance window (near-live cutover)
- Add both VMs to HA group only after failover tests
- Set anti-affinity rules so replicas do not land on the same node
Without shared storage Proxmox HA restarts VMs on another node but does not move disks — you need iSCSI/NFS/Ceph or ZFS/ceph replication.
Validation checklist and near-live cutover
Near-live cutover is a phased sequence that minimizes downtime — it is not native live migration from ESXi. Use it for production systems where seconds to minutes of unavailability are acceptable.
Initial copy (VM online on ESXi)
Import Wizard with live-import option, or preparatory rsync/virt-v2v run. Production VM continues running on VMware.
Testing on PVE (isolated network)
Start the copy on Proxmox in a test VLAN. Verify login, services, database connectivity, and application health endpoints.
Final cutover
Power off VM on ESXi, run final delta sync, start on PVE, switch DNS/load balancer. Typical downtime: 30 s – 2 min. For HA pairs behind a load balancer, migrate one instance at a time for zero perceived downtime.
Pre-production validation checklist
- Clean VM boot — Proxmox console and guest system logs
- Network: gateway ping, DNS resolution, application port tests (curl, nc)
- Disk: I/O performance (fio or CrystalDiskMark on Windows)
- PBS backup: first full backup after migration with verified restore test
- Monitoring: Prometheus node_exporter or SNMP — alerts configured
- HA: VM added to HA group, failover test in maintenance window
- Documentation: updated CMDB, network diagram, operational runbook
Automate smoke tests where possible: Ansible playbooks that check service ports, HTTP 200 responses, and database query latency against baseline metrics captured during the VMware audit phase.
Rollback and VMware decommission
Until formal decommission, the VMware environment remains ready for rollback. Rollback is typically DNS/VIP switch back to ESXi and starting the original VM — minutes, not hours. Keep VMware snapshots and datastores intact through the observation period.
- Maintain VMware snapshots through the observation period (30–90 days)
- Do not delete VMFS datastores until all VMs are verified on PVE
- After stable period: power off VMs on ESXi, remove from inventory, reclaim datastore space
- Close Broadcom licenses / cancel vSphere subscription after management sign-off
- Archive PowerCLI exports and VMware configuration documentation (compliance)
Always document rollback in writing: for each critical VM record RTO, decision owner, and switch steps (DNS, VIP, firewall). Test rollback in staging before production cutover.
Rollback runbook (template)
| Step | Action | Owner | Time |
|---|---|---|---|
| 1 | Stop VM on Proxmox (qm stop) | PVE admin | 30 s |
| 2 | Start original VM on ESXi (pre-cutover snapshot) | VMware admin | 1–2 min |
| 3 | Switch DNS / VIP / firewall to VMware addresses | Network team | 1–5 min |
| 4 | Application verification (health check, logs) | App owner | 5–15 min |
| 5 | User communication + post-mortem | IT manager | — |
Pre-cutover checklist (printable)
Copy or print this list before final production switchover. Anchor: #vtp-checklist.
- VMware backup + PBS snapshot of PVE VM after test
- No snapshots on ESXi source
- VirtIO / Guest Agent installed and tested
- VLAN mapping and firewall verified on test VLAN
- DNS TTL lowered (300 s) 24 h before cutover
- Rollback runbook signed by application owner
- Maintenance window and user notice sent
- Monitoring and alerts configured on target VM
Frequently asked questions
pve-esxi-import-tools package (pve-manager ≥ 8.1-8, libpve-storage-perl ≥ 8.1.3). Tested with ESXi 6.5–8.0. Older environments migrate via virt-v2v or OVF/VMDK import.qm set. Alternatively use virt-v2v which injects drivers during conversion. See VirtIO / BSOD.Need help with your migration?
We audit your VMware environment and execute vmware to proxmox migration with rollback guarantees and minimal downtime, as part of our end-to-end Proxmox implementation services.
⚡ Free Environment Analysis