"Will it still be the same VM?" is the first question every application owner asks about a migration. Licences are keyed to serials, DHCP reservations to MACs, and fstab entries to disk IDs.
So after migrating a VM from vSphere to OpenShift Virtualization with MTV, I read the new VirtualMachine and traced every field back to the source.
What was kept
| Field on the OpenShift VM | Value | Where it came from |
|---|---|---|
interfaces[net-0].macAddress |
00:50:56:aa:00:01 |
The source NIC's VMware MAC |
firmware.serial |
VMware-42 00 00 … |
The VMware BIOS serial |
disks[vol-0].serial |
6000C290-… |
The VMDK's UUID |
cpu |
2 sockets × 1 core | The source vCPU topology |
memory.guest |
1Gi |
The source RAM |
firmware.bootloader |
bios |
The source firmware (BIOS, not EFI) |
(Values are documentation placeholders. In the lab, the real values matched the source exactly.)
Why each one matters:
- MAC address: DHCP reservations and MAC-bound licences keep working.
- BIOS serial: licence checks keyed to the hardware serial still pass.
-
Disk serial:
/dev/disk/by-idpaths inside the guest don't change, so fstab and app configs that use them keep working.
Check it on your own VM
VM=ubuntu-noble-24.04-cloudimg; NS=mtv-test
oc get vm $VM -n $NS -o jsonpath='{.spec.template.spec.domain.devices.interfaces[0].macAddress}{"\n"}'
oc get vm $VM -n $NS -o jsonpath='{.spec.template.spec.domain.firmware.serial}{"\n"}'
oc get vm $VM -n $NS -o jsonpath='{.spec.template.spec.domain.devices.disks[0].serial}{"\n"}'
oc get vm $VM -n $NS -o jsonpath='{.spec.template.spec.domain.cpu}{"\n"}'
Compare them with the source VM in the vSphere Client (network adapter MAC under Edit Settings) and, inside the guest before and after, with:
ip link # MAC
sudo dmidecode -s system-serial-number
ls -l /dev/disk/by-id/
What I did not verify
Static IPs. My test VM used DHCP, so I can't claim static IP preservation from this lab. MTV has a setting for it, but test it on one of your own VMs with a static address before you promise it to anyone.
The network path also changes. The VM now reaches its VLAN through a NetworkAttachmentDefinition on a Linux bridge, not a port group. Same VLAN, new plumbing, so test connectivity, not just the MAC.
Lesson
Prove it on one VM, write down the before and after, and attach that to your migration runbook. It turns "trust me" into evidence.
The full worked example, with every field of the migrated VM explained, is in the free Lab Manual. Next in this series: five gotchas from building the lab.
Top comments (0)