I ran into an issue recently where DRS was failing to move some VMs between 1 of 3 hosts.
To test the compatibility states I manually attempted a vMotion of one of the affected VMs to each host to see what the recommendations would say in the vCenter Web Client. In this case one of the hosts was failing to provide the following CPU instructions:
These 3 instructions were part of the recent Spectre/Meltdown patches that had been rolled out as microcode either in BIOS or through ESXi patches. Both of which have now been temporarily revoked at the time of this post.
Since all 3 of the hosts in the cluster had the same level of BIOS and ESXi patches with support for these 3 features it seemed more likely that the cluster config itself was having issues applying EVC properly. (This may have been attributed to patching the hosts for Spectre/Meltdown before vCenter was patched to 6.5e. So please follow their KB articles which mention order of operation being important)
A fairly straightforward fix for any EVC issue I’ve seen was to create a new cluster with the same settings as the old one and migrate all of the hosts and VMs to the new cluster.
- Since stibp/ibrs/ibpb are related to Spectre/Meltdown fixes ensure vCenter is running 6.5e at a minimum. If not, patch it first.
- Create a new ESXi DRS Cluster. Configure DRS/HA/EVC the same as the old one.
- Maintenance Mode 1 host and put it in the new cluster.
- Take the host out of maintenance mode and migrate a hosts worth of VMs from the old cluster to the new one.
- Repeat Steps 3-4 for each host until the old cluster is empty.
Once the cluster was rebuilt and consistent again I retested the manual vmotions to confirm each host had the same level of EVC support.