Migrate vCenter Server VM to EVC cluster via ephemeral distributed port group

This post describes how to migrate a vCenter Server VM, connected to a distributed switch, to a lower EVC mode cluster.
For recovery purposes, create extra ephemeral distributed port group for management VMs as a best practice.

Real challenge

I have to migrate a vCenter Server VM running on a “Intel Broadwell” host, no EVC, to a cluster with EVC “Intel Haswell”.
A downtime of the vCenter Server VM is mandatory in this context, this is why I recommend to enable EVC as a best practice to avoid this issue in the first place.

Moreover the vCenter Server VM is connected to a distributed port group with “Static binding”.

VMware procedure limitation

The main limitation of the VMware procedure, “How to enable EVC in vCenter Server“, is “Move the vCenter Server virtual machine to a standard vSwitch before completing the steps outlined in this article.”

Is this instruction legitimate? Let’s try it in a lab.
1 – Shutdown vCenter Server VM
2 – Connect directly to source host and unregister the vCenter Server VM
3 – Connect directly to destination host (In an EVC cluster) and register the vCenter Server VM
4 – Power on the VM and select “I moved it”
….
And as expected the vCenter Server VM is not able to connect to the network.
The VM is “newly registered” and with “Static binding” we need to have vCenter Server VM up and running to allow “new” VM to connect.
A classical “chicken and egg situation”

So the recommendation of VMware makes sense, but it is painfull to create a standard switch and mess with the network configuration of one host just for this purpose.
Is there a better way?

Improved procedure using ephemeral distributed port group

1 – Identify the distributed port group associated to the vCenter Server VM
2 – Create a new distributed port group with similar settings except use “Ephemeral binding” and name it “OriginalPortGroupName-Ephemeral”
3 – Shutdown vCenter Server VM
4 – Connect directly to source host and unregister the vCenter Server VM
5 – Connect directly to destination host (In an EVC cluster) and register the vCenter Server VM
6 – Edit settings of the VM and map network to the “OriginalPortGroupName-Ephemeral” port group.
5 – Power on the VM and select “I moved it”
…this time the vCenter Server VM reply to ping 😉
6 – When vCenter is available migrate the VM from the ephemeral port group to the initial port group

So the ephemeral distributed port group is useful in this scenario, but you need to create it before unregistering the vCenter Server VM.

Design recommendation for distributed virtual switch

Identify all VMs necessary to the proper start of vCenter Server VM. (For example DNS server, database server, PSC, etc)
Identify all distributed port groups associated to these VMs.
For each of them, create a new distributed port group with identical settings but using “Ephemeral binding” and name it “OriginalPortGroupName-Ephemeral”

Do not use them in standard day to day operations, they have many limitations!
However they are perfect for recovery purpose only, like in the scenario above or after a vCenter VM restore from backup.
Do not forget to migrate the VM back to the original port group after the recovery.

I can’t migrate to a higher EVC mode!

If you can’t migrate to a host of a newer generation please hold on before shutting down the VM.
Maybe it could be due to EVC “Strict checking” if the virtual hardware of the VM is 8 or less.
In that case you should be able to perform the vMotion by using EVC on the new cluster.

But just to be clear, if a VM has been started on new generation server or high EVC level it will require new generation CPU features.
It will be impossible to move it to a lower EVC level or older generation server that don’t have these features without a downtime.

Leave a Reply

Your email address will not be published. Required fields are marked *