I needed to turn on EVC. It was a long time coming, really. I should have turned it on when I had the entire vSphere cluster offline for a weekend when NetApp was doing that head swap. The head swap- that’s another story for another day.
The reality is that I had a mixed cluster. I let it get away from me and now it was time to pay the piper. I needed to turn on EVC because that mixed cluster- containing older and newer Intel processors- was giving me headaches every time I needed to reboot some ESXi hosts.
If you’re not familiar with EVC (Enhanced vMotion Control), you can read about it here. In short, it masks CPU features so that VMs can migrate between newer and older ESXi hosts. If you have a mix of different processor generations (Xeons, in my case), and you have a VM start on a newer host with newer processor features, it can’t migrate to an older host that doesn’t have/recognize/like those features.
This was for my secondary site and time I had to reboot hosts for patching or config changes like disabling TLSv1, I had to manually vMotion some VMs around. I’d even have to shut down and cold migrate a couple. This is what’s known as a mess. It extended my window and was really ridiculous. Anyway.
The problem I had was that I had 2 clusters- one for Red Hat and the other for Windows and Virtual Appliances- for licensing reasons. Both clusters were mixed, so vCenter was going to have to move- be vMotioned- or something. This leaves you in a chicken-or-egg quandary. To enable EVC you have to shut everything down. Then you have to migrate vCenter- it has to be up to enable EVC.
I wasn’t sure how to do this, and there didn’t seem to be that many articles on it, so I contacted support. There’s a KB that sorta addresses this- but it has a part that scares me:
Warning: If the vCenter Server virtual machine is running on a Virtual Distributed Switch (vDS), move the vCenter Server virtual machine to a standard vSwitch before proceeding with these steps.
I couldn’t find a way to do this. You can comment below and tell me how wrong I am. I’m secure- I can take it.
So I made a case with VMware support and the super-cool engineer who helped me told me there was a better way. Now that I know how, I’m sharing with you so you can do this without laying yourself bare to support.
If you don’t already have a recovery port group on your Distributed Virtual Switch, you should. Basically, you need an ephermeral port group on your DvS that has the same VLAN as your VCSA. Here’s basically what you have to do to enable EVC where you have to move your vCenter between hosts while it’s down. Note that this is normally an issue if our vCenter has been started on a newer host and it needs to be moved to an older one to enable EVC.
- Set VCSA networking to Recovery Port Group
- Verify connectivity. It will stay up.
- Shut down vCenter
- Unregister from current (newer) host
- Register on new (older) host
- Power on VCSA
- Turn on EVC
- Migrate VCSA to whatever the heck host you want.