// Migration service + playbook Updated:

Professional VMware to Proxmox migration
migrate from VMware ESXi to Proxmox — delivery with a full technical playbook

We run VMware → Proxmox as a delivery program for businesses: audit, PoV, wave cutovers and rollback — not a weekend experiment. Below is the full technical playbook (Import Wizard, virt-v2v, networking, storage, VirtIO). Still deciding? Start with our VMware alternative and VMware vs Proxmox cost analysis.

≤2 min
Cutover window target
1–100+
VMs in waves
12
Playbook stages
⚡ Free environment analysis → Proxmox implementation services
⚡

Service: VMware audit → PVE architecture → PoV → migration waves → training and support. Details: Proxmox implementation services. The playbook below stays for admins — including when a partner runs the cutover. Treat it as a proxmox migration from vmware runbook: whether you migrate esxi to proxmox in-house or complete a full vmware esxi to proxmox ve program, serious vmware migration is more than disk conversion.

// Table of Contents
  1. Prerequisites and PVE preparation
  2. VMware inventory and audit
  3. Migration methods comparison
  4. Matrix: Wizard vs virt-v2v vs OVF
  5. ESXi Import Wizard step-by-step
  6. virt-v2v workflow (vmware to proxmox converter)
  7. Network mapping: VLANs and bridges
  8. Storage design: ZFS, iSCSI, Ceph
  9. Guest tuning: VirtIO for Windows and Linux
  10. Edge cases: snapshots, vSAN, Windows BSOD
  11. HA cluster migration on Proxmox
  12. Validation checklist and near-live cutover
  13. Rollback and VMware decommission
  14. Pre-cutover checklist (printable)
  15. Questions and answers
01 Prerequisites

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.2 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 power off ESXi hosts until validation is complete. Delete all VM snapshots before import, because they slow it down. The rollback point is the original powered-off VM on ESXi plus the backup — no snapshot is needed for that.

ℹ️

Production HA topology: minimum 3 Proxmox nodes for Corosync quorum (pmxcfs). A two-node cluster loses quorum when one host fails. The cluster configuration turns read-only: you cannot start or move a VM, and HA does not take over services. That is what prevents split-brain.

Infrastructure checklist

pve-prep.sh
# Verify PVE version and ESXi import package
root@pve1# pveversion -v | grep -E 'pve-manager|pve-esxi'
root@pve1# apt install pve-esxi-import-tools -y
 
# Test connectivity to ESXi host (port 443)
root@pve1# openssl s_client -connect esxi01.company.com:443 -brief </dev/null
 
# Next free VMID in cluster
root@pve1# pvesh get /cluster/nextid
✓ PVE ready for import · next VMID: 200

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.

02 Inventory

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.

vmware-inventory.ps1
# Export inventory via PowerCLI
PS> Connect-VIServer -Server vcenter.company.com
PS> Get-VM | Select-Object Name,PowerState,NumCpu,MemoryGB,VMHost,@{N='ProvisionedGB';E={($_.ExtensionData.Summary.Storage.Uncommitted+$_.ExtensionData.Summary.Storage.Committed)/1GB}} | Export-Csv vm-inventory.csv -NoTypeInformation
 
# Snapshots and VMware Tools status
PS> Get-VM | Get-Snapshot | Select VM,Name,SizeGB,Created | Export-Csv snapshots.csv -NoTypeInformation
PS> Get-VM | Select Name,@{N='Tools';E={$_.ExtensionData.Guest.ToolsVersionStatus}} | Export-Csv tools-status.csv -NoTypeInformation
 
# Port groups and VLAN IDs
PS> Get-VirtualPortGroup | Select Name,VLanId,VirtualSwitch | Export-Csv portgroups.csv -NoTypeInformation
 
# Datastores and utilization
PS> Get-Datastore | Select Name,Type,CapacityGB,FreeSpaceGB | Export-Csv datastores.csv -NoTypeInformation
✓ Exported 52 VMs · 14.2 TB provisioned · 8 port groups · 5 datastores

How to interpret each record

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.

03 Methods

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.

MethodDescriptionDowntimeBest for
ESXi Import WizardNative PVE 8.2+ importer via ESXi API; maps VMX → QEMU configVM 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 guestVM powered off during conversionWindows/Linux, large disks, automatic VirtIO
OVF/OVA importqm importovf or GUI wizard for exported templatesDepends on OVA sizeVMs without direct ESXi access, OVF templates
Disk import (VMDK)Copy VMDK files to PVE storage + qm disk importVM powered offSingle disks, VMDK files already copied to PVE
Attach & MoveThe PVE VM boots directly from the VMDK file on shared NFS (visible to both ESXi and PVE), then the disk is moved live to the target storage (qm disk move)Only the VM restart on PVELarge disks, NFS shared between ESXi and PVE
Near-live cutoverFull online copy + delta sync + brief source shutdownSeconds–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.

CriteriaESXi Import Wizardvirt-v2vOVF / OVA
ESXi API access requiredYes (443/tcp)Optional (VDDK)No — export file only
VM on vSANNot supportedYes, VDDK over NBDYes, via vCenter OVF export
VM snapshotsSlows import — deleting them speeds it upIdeally a VM without snapshotsExport typically without snapshots
Auto VirtIO (Windows)Partial — often manual post-importYes (virtio-win injection)No — manual driver install
VMX → QEMU mappingAutomaticManual qm setFrom OVF metadata
Proxmox GUIFull wizardCLI on conversion hostqm importovf + GUI
Batch (dozens of VMs)API / qm import scriptsScalable via Ansible/cronOne VM per export
Typical downtimeFull offline importOffline conversionDepends on OVA size
Choose whenStandard ESXi 6.5–8.0, local/SAN datastoreWindows, unusual disks, bulk conversionvSAN, no API, archival VMs

30-second method picker checklist

04 Import Wizard

ESXi Import Wizard — step by step

The official Import Wizard (PVE 8.2+) 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.

1

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).

2

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).

3

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.

qm-import-esxi.sh
# After adding ESXi storage "esxistore" in /etc/pve/storage.cfg
root@pve1# VMID=$(pvesh get /cluster/nextid)
root@pve1# qm import $VMID esxistore:ha-datacenter/datastore1/prod-web/prod-web.vmx --storage local-zfs
 
# Network mapping after import (net0 → vmbr0 VLAN 100, MAC from the source VM)
root@pve1# qm set $VMID --net0 virtio=AA:BB:CC:DD:EE:FF,bridge=vmbr0,tag=100
 
# Start and verify
root@pve1# qm start $VMID
root@pve1# qm status $VMID
✓ Import complete · VMID 200 · status: running

Pass the source VM's MAC address in virtio= (from the .vmx file — ethernet0.address or ethernet0.generatedAddress — or from qm config $VMID right after import). Without it Proxmox generates a random MAC, which breaks DHCP reservations and MAC-bound licences.

💡

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}/content?content=import to list importable VMs, then GET /nodes/{node}/storage/{storage}/import-metadata?volume= for the chosen VMX, then POST /nodes/{node}/qemu with import-from= syntax for disk volumes. This enables Ansible or Terraform pipelines for large-scale migrations.

05 virt-v2v

virt-v2v workflow — vmware to proxmox converter

virt-v2v from the libguestfs project is a proven VMware-to-KVM disk converter. It injects VirtIO drivers in Windows only when virtio-win is present on the conversion host (a directory or an ISO); on Linux it rebuilds initramfs. Use it when Import Wizard hits unusual VMX configurations, when you need offline conversion on a dedicated conversion host, or when batch-converting many VMs the same way.

Install virt-v2v on a Linux conversion host (Debian/Ubuntu/RHEL) or directly on a Proxmox node with sufficient disk space. It is a separate package (apt install virt-v2v); for vCenter access, also unpack the VMware VDDK library into /opt/vmware-vix-disklib. The example below converts prod-db-01 to VMID 201 (VMID 200 is already taken by prod-web from the Import Wizard).

virt-v2v-proxmox.sh
# The -os directory must already exist. Conversion via vCenter API (VM must be powered off)
$ mkdir -p /var/lib/vz/images/201
$ virt-v2v -ic vpx://vcenter.company.com/Datacenter/cluster/esxi01 \
    -it vddk \
    -io vddk-libdir=/opt/vmware-vix-disklib \
    -io vddk-thumbprint=xx:xx:xx:… \
    -o local -os /var/lib/vz/images/201 \
    -of qcow2 \
    "prod-db-01"
 
# Create VM and attach disk in Proxmox
root@pve1# qm create 201 --name prod-db-01 --memory 16384 --cores 8 --net0 virtio=00:50:56:12:34:56,bridge=vmbr0
root@pve1# qm disk import 201 /var/lib/vz/images/201/prod-db-01-sda local-zfs
root@pve1# qm set 201 --virtio0 local-zfs:vm-201-disk-0 --boot order=virtio0 --agent enabled=1
✓ Conversion: 240 GB VMDK → qcow2 file · local-zfs stores the disk as a raw zvol · VirtIO in the guest
ℹ️

-io vddk-thumbprint is required for virt-v2v older than 2.10 — Proxmox VE 9 (Debian 13) ships virt-v2v 2.6. Get the SHA-1 fingerprint of the server in the -ic URI (here vCenter) with openssl s_client -connect vcenter.company.com:443 </dev/null | openssl x509 -noout -fingerprint -sha1. OpenSSL prefixes that line with sha1 Fingerprint=, while -io vddk-thumbprint accepts only the colon-separated hex pairs — strip the prefix, for example with sed 's/.*Fingerprint=//', and paste that value. virt-v2v takes Windows VirtIO drivers from /usr/share/virtio-win (or from the path in the VIRTIO_WIN environment variable, which may point to virtio-win.iso) — Debian has no virtio-win package, so download the ISO to the conversion host before converting Windows guests. In qm create, use the source VM's MAC address (from the .vmx file) so DHCP reservations and MAC-bound licences keep working.

Alternative: local VMDK conversion

If VMDK files are already copied to the PVE host:

virt-v2v-local.sh
# The -os directory must already exist. The output file is the VMDK basename without the extension, plus -sda.
$ mkdir -p /var/lib/vz/images/202
$ virt-v2v -i disk /mnt/import/vm-disk.vmdk -o local -os /var/lib/vz/images/202 -of qcow2
# qm disk import needs an existing VM configuration
root@pve1# qm create 202 --name vm-disk --memory 2048 --cores 2
root@pve1# qm disk import 202 /var/lib/vz/images/202/vm-disk-sda local-zfs
root@pve1# qm set 202 --virtio0 local-zfs:vm-202-disk-0 --boot order=virtio0

virt-v2v 2.6, the version shipped with Proxmox VE 9, supports Windows Server 2008 R2 through 2022. Windows Server 2025 needs virt-v2v 2.8, which Debian 13 does not ship. It also supports RHEL/CentOS/Rocky/Alma 7–9, Ubuntu LTS, Debian, SLES, and Oracle Linux. Always test one representative VM per OS generation before batch conversion.

06 Network

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.

VMwareProxmox VEExample
vSS / vDS portgroup VLAN 100bridge=vmbr0,tag=100Application production
Portgroup without VLAN (native)bridge=vmbr0 (no tag)Management
vDS LACP uplinkLinux bond + vmbr or OVS bridge2×25 GbE aggregation
NSX overlaySDN EVPN/VXLAN (separate project)Micro-segmentation
/etc/network/interfaces (excerpt)
auto vmbr0
iface vmbr0 inet static
  address 10.0.10.11/24
  gateway 10.0.10.1
  bridge-ports bond0
  bridge-stp off
  bridge-vlan-aware yes
  bridge-vids 2-4094
 
# Without bridge-vids, ifupdown2 does not add guest VLANs: only PVID 1 remains and tags 100/200 are dropped
# VM on VLAN 200: qm set <vmid> --net0 virtio=<source-VM-MAC>,bridge=vmbr0,tag=200
ℹ️

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.

07 Storage

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:

A

Local-ZFS

Simple start: each node has its own ZFS pool. No shared storage — live migration of local disks in the same cluster is qm migrate --online --with-local-disks. qm remote-migrate copies disks between clusters and does not require shared storage. Good for smaller clusters and dev/test. Use ZFS snapshots for local backup before risky changes.

B

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.

C

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.

storage-example.sh
# Shared LVM on an iSCSI LUN. LVM-thin is not shared across nodes.
# Add the iSCSI storage first — only then is the LUN visible. pvcreate before login has nothing to act on.
root@pve1# pvesm add iscsi iscsi-san --portal 10.0.20.50 --target iqn.2024-01.com.company:prod --content none
# On one node, on the LUN path (ls /dev/disk/by-path). pvesm add lvm only registers an existing group.
root@pve1# pvcreate /dev/disk/by-path/ip-10.0.20.50:3260-iscsi-iqn.2024-01.com.company:prod-lun-0
root@pve1# vgcreate pve-iscsi /dev/disk/by-path/ip-10.0.20.50:3260-iscsi-iqn.2024-01.com.company:prod-lun-0
root@pve1# pvesm add lvm iscsi-lvm --vgname pve-iscsi --content images,rootdir --shared 1
 
# Local ZFS pool status
root@pve1# zpool list && zfs list

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.

08 VirtIO

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 Windows drivers only when virtio-win is present on the conversion host. QEMU Guest Agent enables clean shutdowns, IP reporting, and freeze/thaw for application-consistent backups.

Windows Server

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. For Windows guests the Import Wizard offers a “Prepare for VirtIO-SCSI” option (checked by default for UEFI boot): it maps SCSI disks to SATA and sets the controller to VirtIO SCSI. Without it the disks stay on the SCSI controller mapped from the VMX file (LSI or PVSCSI). A SATA disk boots straight away, but installing virtio-win alone is not enough: until Windows detects a device on the VirtIO SCSI controller, it does not load the vioscsi driver at boot and cannot find the boot volume.

windows-migration.ps1
# Inside the Windows guest, VM still on ESXi. Read the product code from the registry — querying Win32_Product reconfigures every MSI install.
PS> $u = Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*, HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Where-Object DisplayName -eq 'VMware Tools'
PS> msiexec.exe /x $u.PSChildName /qn /norestart
 
# On Proxmox, after first boot: verify QEMU Guest Agent
PS> Get-Service QEMU-GA | Select Status, StartType
✓ VMware Tools removed before migration · Guest Agent: Running

Linux

Example for VM 201 (prod-db-01 from the virt-v2v section): move the disk from virtio0 to scsi0 and put the NIC on VLAN 100 with the original MAC address. On Windows, do the temporary VirtIO SCSI disk step described above first.

qm-virtio-tuning.sh
root@pve1# qm set 201 --delete virtio0
root@pve1# qm set 201 --scsihw virtio-scsi-pci --scsi0 local-zfs:vm-201-disk-0 --boot order=scsi0
root@pve1# qm set 201 --net0 virtio=00:50:56:12:34:56,bridge=vmbr0,tag=100
root@pve1# qm set 201 --agent enabled=1
root@pve1# qm set 201 --serial0 socket

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.

09 Edge cases

Edge cases: snapshots, vSAN, Windows BSOD

Most failed imports are source-state issues, not Proxmox bugs. Seven common problems during vmware to proxmox migration and how to fix them.

1. Snapshots slow the Import Wizard

A VM with snapshots still imports, but much more slowly. Ideally the VM has no snapshots at all: delete them before import. That shortens the run, although the importer does not require it to start.

remove-snapshots.ps1
PS> Get-VM prod-app-01 | Get-Snapshot | Select Name,SizeGB,Created
PS> Get-VM prod-app-01 | Get-Snapshot | Remove-Snapshot -Confirm:$false
PS> Get-VM prod-app-01 | Get-View | ForEach-Object { $_.ConsolidateVMDisks_Task() }
✓ All snapshots removed · disk consolidated · import will be faster

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:

3. RDM and independent disks (physical mode)

Physical-mode RDM has no VMDK data file to copy, and Storage vMotion of such a disk moves only the mapping file — the data stays on the LUN. To get a VMDK, do a cold migration (VM powered off) to another datastore with a Thin Provision or Thick Provision target disk format, or detach the RDM, re-add the same LUN as a virtual-mode RDM and run Storage vMotion with a disk format change. Alternatively, plan direct LUN attachment to the VM in Proxmox or PCIe passthrough for exceptions (e.g. licensed HBA).

4. Encrypted VMs and vTPM

Encrypted VM disks (e.g. via a VM Encryption storage policy) cannot be imported — remove the encryption first by assigning a non-encrypting storage policy in vCenter. vTPM state cannot be migrated from VMware to Proxmox — add a new TPM device in the QEMU config, and if full-disk encryption keys (e.g. BitLocker) are sealed in the vTPM, disable the encryption before migration or keep the recovery key at hand.

5. VLAN — VM boots but no network

Most common post-migration network issue: a wrong VLAN tag, or a bridge missing bridge-vlan-aware yes and bridge-vids.

SymptomCauseFix
No IP after bootWrong tag in qm set --net0Match VMware port group VLAN ID with PVE tag=
eth0 → eth1 on LinuxNIC reorderingnetplan / 70-persistent-net.rules
Windows “unidentified network”New MAC → new profileReassign static IP or reset network profile
Traffic blocked despite IPPVE firewall / no trunkbridge-vlan-aware yes and bridge-vids 2-4094 + verify switch port mode

6. Windows BSOD 0x7B on first reboot

See VirtIO section above. Short version: do not switch the system disk to VirtIO SCSI right after installing the drivers. virt-v2v injects drivers only when virtio-win is on the host. With the Wizard the disk lands on SATA only when “Prepare for VirtIO-SCSI” is enabled (the default for UEFI); without it the disk stays on the SCSI controller from the VMX and must be moved to SATA or IDE before the first boot. Then install virtio-win, add a temporary disk on VirtIO SCSI and boot so Windows loads vioscsi — only then remove the temporary disk and move the system disk to scsi0.

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.

10 HA

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.

VMwareProxmox VEMigration notes
vSphere HApve-ha-manager + 3-node quorumEnable HA only after VMs on shared storage
DRSDynamic Load Balancer (PVE 9.2+)Requires HA; affinity rules are honoured if set, but are not required
vMotion within vSphereqm migrate between PVE nodesShared storage, or qm migrate --with-local-disks
FT (Fault Tolerance)No 1:1 — application replicationPlan active/passive or K8s/DB cluster

Application cluster migration order

ℹ️

HA does not move the disk. The VM starts on another node only when the disk is already there: shared storage (iSCSI, NFS, Ceph) or a ZFS replica.

11 Validation

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.

1

Initial copy

A preparatory backup or disk copy can be taken while the VM is still running on ESXi. The Import Wizard itself — including live-import — requires the source to be powered off. Live-import only starts the guest on PVE earlier; it is not an online copy.

2

Testing on PVE (isolated network)

Start the copy on Proxmox in a test VLAN. Verify login, services, database connectivity, and application health endpoints.

3

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

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.

12 Rollback

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 the original VMs and datastores intact through the observation period.

🎯

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)

StepActionOwnerTime
1Stop VM on Proxmox (qm stop)PVE admin30 s
2Start the original powered-off VM on ESXiVMware admin1–2 min
3Switch DNS / VIP / firewall to VMware addressesNetwork team1–5 min
4Application verification (health check, logs)App owner5–15 min
5User communication + post-mortemIT manager—

Pre-cutover checklist (printable)

Copy or print this list before final production switchover. Anchor: #vtp-checklist.

Frequently asked questions

No — there is no native vMotion equivalent between ESXi and KVM. Import Wizard requires the VM to be powered off on ESXi for standard import. The live-import option reduces downtime by starting the VM on PVE early, but the source must still be stopped. Near-live cutover (copy + delta) is a separate engineering procedure.
Proxmox VE 8.2 or later with the pve-esxi-import-tools package. Tested with ESXi 6.5–8.0. Older environments migrate via virt-v2v or OVF/VMDK import.
The tools are complementary. Import Wizard is faster for GUI/API integration and automatic VMX mapping. virt-v2v (libguestfs) excels at offline batch conversion, unusual disk layouts, and automatic VirtIO installation — especially on Windows.
Minimum 3 nodes for safe Corosync quorum. With 2 nodes, a single host failure drops quorum. The cluster configuration turns read-only: you cannot start or move a VM, and HA does not take over services — that is what prevents split-brain. Running VMs keep running unless a node with HA resources fences itself. An HA restart on another node needs shared storage or a replica. Live migration of local disks does not: qm migrate --online --with-local-disks.
A VM with snapshots still imports, but much more slowly. Ideally delete all snapshots before import — the importer does not require it to start. The original powered-off VM on ESXi is enough for rollback. See the snapshots edge case.
Not with the Wizard while the disk stays on vSAN. Moving the disk unlocks the wizard. OVF works too. virt-v2v -it vddk reads vSAN over NBD and does not need staging. Details in the vSAN section.
Boot the VM with the disk on the SATA/IDE controller (after the Wizard this is true only when “Prepare for VirtIO-SCSI” is enabled; otherwise move the disk off SCSI before the first start) and install virtio-win-guest-tools from virtio-win.iso. Add a small temporary disk on the VirtIO SCSI controller and boot so Windows loads the vioscsi driver. Then shut down, remove the temporary disk, reattach the system disk as scsi0 on VirtIO SCSI, set the boot order (qm set <vmid> --boot order=scsi0) and start the VM. Alternatively virt-v2v injects drivers during conversion when virtio-win is on the host. See VirtIO / BSOD.
Two tools act as a VMware to Proxmox converter: the built-in Import Wizard in Proxmox VE and virt-v2v. Both convert VMDK disks to the QEMU format (QCOW2/raw). virt-v2v injects VirtIO drivers during conversion; the Import Wizard usually needs them added manually after import. You do not need separate conversion software to migrate VMware VMs to Proxmox.
Yes — we migrate VMware VMs to Proxmox in batches, grouping machines by dependency. For larger estates we script the virt-v2v conversion so the process is repeatable and auditable, with a rollback point for every batch and minimal downtime per workload.
Yes. An enterprise VMware to Proxmox migration — a full VMware to Proxmox VE migration — covers an HA cluster (minimum 3 nodes), shared storage (Ceph/iSCSI/NFS), VLAN network mapping and a near-zero-downtime cutover. We handle environments from a handful to well over 100 VMs.

Need a migration partner — not only a checklist?

We audit VMware and run vmware to proxmox migration with rollback and minimal downtime — via Proxmox implementation services. The playbook above stays your technical map.

⚡ Free environment analysis→ Implementation offer