I know many of you know what that is, but this post is targeting people who do not or know a little bit, but they're not sure if what they know is enough. If you're an experienced VMware admin you won't find probably anything you don't already know. VMware Enhanced vMotion Compatibility (EVC) is a vSphere cluster feature that allows virtual machines (VMs) to use vMotion between hosts with different processors. (CPUs). The way that EVC works is basically masking the advanced capabilities of the newer CPUs in order to have the same level of instructions across the whole VMware cluster.
As you know, the vMotion usually fails when a VM runs on a host with a Haswell-based CPU and the destination host is let's say newer Broadwell-based CPU. It is necessary to put in place VMware EVC first, and then vMotion can succeed.
Quote from VMware:
vCenter Server's CPU compatibility checks compare the CPU features available on the source host, the subset of features that the virtual machine can access, and the features available on the target host. Without the use of EVC, any mismatch between two hosts' user-level features will block migration, whether or not the virtual machine itself has access to those features. A mismatch between two hosts' kernel-level features, however, blocks migration only when the virtual machine has access to a feature that the target host does not provide.
Interesting to know that by default, it is vCenter Server component that identifies mismatches on features accessible to applications as incompatible.
ESXi but also vCenter server
EVC capabilities of your server are based on two factors:
- The version of vCenter Server that manages the host.
- The underlying CPU architecture of the host processor.
What's an Advantage of VMware Enhanced vMotion Compatibility (EVC)?
while your hardware evolves year after year, it's convenient to still be able to add a new host to the cluster and be able to vMotion your VMs across your cluster, right? It is very flexible compared to a situation where only exactly the same CPUs would be required in order to assure vMotion compatibility. You can reuse older hardware to maximize ROI and take an advantage of its resources.
Any Inconveniences? Drawbacks?
Usually, newer CPUs has a newer set of instructions, is more performant, more efficient. Your applications might take a real benefit to using them perhaps, but if EVC is applied and “downgrades” the level to a point where those instructions are not showing, obviously, your applications might run a little bit slower, than they would if they had the underlying CPU
Where to configure VMware Enhanced vMotion Compatibility (EVC)?
At the cluster level > Select the cluster > VMware EVC > Edit > Chose a radio button depending on your processor family (Intel/AMD) and then drop down the menu to chose which CPU family you want to choose from.
When you configure EVC, you configure all host processors in the cluster to present the feature set of a baseline processor. This baseline feature set is called the EVC mode.
Think of EVC as a “layer” which levels down all CPUs of the cluster to a level which is “acceptable” for the “lowest” equipped host within the cluster. Usually, it is a host, which is the oldest one I remember a few years back one of my older Nehalem-based white boxes was the oldest and I was trying to use vMotion with a Haswell box.
EVC ensures that all hosts in a cluster present the same CPU feature set to virtual machines, even if the actual CPUs on the hosts differ. Using EVC prevents migrations with vMotion from failing because of incompatible CPUs.
VMware CPU /EVC Matrix
You can check VMware compatibility guide page related to CPU where you'll find if your CPU within your cluster is compatible with a version of ESXi/vCenter server deployed. The online tool allows you to select the version of ESXi, the CPU type and then by clicking the CPU/ EVC Matrix you can see that Haswell EVC mods aren't available for the E5-2400 v2 series of CPU.
VMware EVC was introduced long time ago, but it still adds a great value to VMware clusters which are able to use vMotion operations within hosts with different types of CPUs (Intel or AMD, not boths). The EVC feature makes sense for licensing packages using vMotion, which is the case of VMware vSphere Essentials PLUS or Essentials Plus Term (cheaper, but limited in time for 12 months).
- Enabling EVC on a cluster when vCenter is running in a virtual machine (1013111).
- vMotion CPU compatibility requirements for Intel processors
More from ESX Virtualization:
- What is VMware Storage DRS (SDRS)?
- What Is Erasure Coding?
- What is VMware Orchestrated Restart?
- What is VMware Cluster?
- What is The Difference between VMware vSphere, ESXi and vCenter
- What is VMware vSphere Hypervisor?