EVC ,or enhanced vMotion Compatibility, is a feature that ensure vMotion capability within a cluster. That is, you could possibly have a cluster that contains a mixed batch of servers. Some that have newer Intel processors, some that have older Intel processors and so forth. The problem is, that based on the feature set of the CPU, certain features are presented to the VM guest. If you try and vMotion a server to a different guest that lacks that feature, vMotion will fail. EVC takes into consideration the CPUs on all of the hosts in the cluster and basically computes the lowest common denominator. It then present that feature set to the VM guests. So even though a newer server might have a newer feature set, it would be masked by the hypervisor to ensure vMotion compatibility between other hosts in the cluster.
EVC is turned on at the cluster level. To enable EVC, right click the cluster and edit settings…
As you can see on my cluster, the EVC feature is turned off. Let’s try and turn it on. Click the ‘Change EVC Mode’ button…
For kicks, I tried enabling EVC for AMD hosts. The compatibility checker immediately noticed that I actually have Intel based hosts. Also, it noticed that the CPUs I do have are not compatible with EVC. The CPU has to have a specific feature to support feature set masking and the processors I have don’t support it.
A couple of other quick notes to consider…
-EVC can only be configured on a cluster that doesn’t have any running guests. This is to ensure that a feature currently in use by a guest doesn’t get taken away (masked) by EVC while it is in use.
-EVC masks features so in some cases, this can be undesirable. Keep that in mind when you build the clusters. Purpose built clusters are always a good idea in my mind.
-EVC can save you some pain when using things like DRS. I’ve configured DRS before and then days later determined DRS wasn’t working. It was because the hosts weren’t compatible.