Recently I got a strange issue using a cold storage migration usign the Migrate function of vCenter Server.
This was the scenario: a Free Hypervisor with some VMs where a full license (Essential Plus) was added and the host was also added to a vCenter Server. For compatibility matrix reason the version 4.1 was used (although the storage can work with vSphere 5.0 but officially was not supported). Also the Free Hypervisor was build with the 4.0 version and upgraded (one year ago) to the 4.1 version.
This was the issue: after a cold storage migration all the VM build when the ESXi was on version 4.0 have changed their MAC address. No issue on the VM build when ESXi was upgraded to the 4.1 (but still in free mode).
The only post that I’ve found with similar issue was this one on the VMTN Community, but without a clear solution and scenario. Note that there wasn’t any MAC address conflict and any re-registration of the VMs (and all VMs where power-on without any prompt of changes).
The issue is probably related on how virtual MAC address are generated, as described on the VMware KB 219 (Setting a static MAC address for a virtual NIC). The strange sentence of the KB is this one:
The MAC address of a powered-off virtual machine is not remembered. Thus it is possible that when a virtual machine is powered on again it can get a different MAC address.
This is also confirmed in the MAC Address Generation section of the ESXi 4.1 guide. But was strange that only the old VMs has changed their MAC Address, and not the most recent. So probably the ESXi 4.0 generate MAC Address in a wrong or different way compared to ESXi 4.1.
Note that vCenter Server use another range and generation rule (as documented on this post), but this wasn’t not the case.