DEV Community

Cover image for What Survives a VMware to OpenShift Migration (and What to Check)
Gaganpreet Singh
Gaganpreet Singh

Posted on

What Survives a VMware to OpenShift Migration (and What to Check)

"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-id paths 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"}'
Enter fullscreen mode Exit fullscreen mode

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/
Enter fullscreen mode Exit fullscreen mode

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)