Enhanced vMotion Compatibility (EVC) is without a doubt has been one of the famous vSphere features. As you know already,  EVC is a cluster level feature, which makes it possible to have vMotion across different generations of CPU within the cluster. 

vSphere 6.7 has taken EVC to the next level.  This latest release has introduced one of cool features around EVC.

What’s a VMware per-VM EVC?

Simply put, you can enable per-VM EVC on a per-VM basis, so it works not only on VMs located outside your EVC-enabled cluster.

It’s also valid for vMotion across clusters, standalone hosts, cross-vCenters, and hybrid clouds, such as a VMware cloud on Amazon Web Services (AWS) from your local datacenter vCenter.

By implementing per-VM EVC, the EVC mode becomes an attribute of the VM instead of the CPU present at the particular cluster the VM is executed.

Per-VM EVC brings you granularity. You can enable EVC for chosen VMs rather than for a cluster of hosts. This has a particular advantage because it helps the VMs to be more mobile between clusters or cross-vCenter migrations.

What are the requirements?

You’ll need at least vSphere 6.7, and the VM virtual hardware needs to be version 14 (vmx-14). You need to power off the VM before enabling this.

If the VM lies inside the EVC-enabled cluster, the EVC mode on the VM should be equal or lower than the one on the EVC mode at the cluster level. So, you can enable per-VM EVC on a particular VM that’s already part of an EVC-enabled cluster.

It’s compatible with other vSphere cluster features, such as VMware High Availability (HA) or VMware Distributed Resource Scheduler (DRS). If you clone a VM, it retains the per-VM EVC attribute on the clone.

Where do you enable per-VM EVC?

You’ll need to use the vSphere HTML5 web client (H5 client) as there’s no support for the Flash-based web client for this particular feature.

Click on the VM you want to modify the attributes of and go to Configure > VMware EVC > Edit > Configure EVC mode.

In my example, I configured the Intel ” Skylake” EVC mode:

You can also enable per-VM EVC via VMware PowerCLI, giving you an opportunity to activate this feature on several chosen VMs of a VMware infrastructure.

Conclusion:

The difference between per-cluster EVC and per-VM EVC is simple.
An EVC-enabled cluster works fine for VMs inside these clusters.
However, when you care about your VMs and applications running inside those VM’s, you need per-VM EVC, which brings more “freedom” for your VM’s. They can move outside those particular clusters.

Your VM’s can suddenly move to another cluster or individual host—to the cloud at VMware on AWS. The per-VM EVC feature facilitates migrating the VM beyond the cluster and across vCenter Server systems and datacenters that have different processors.

While cluster-level EVC limits the CPU features a host exposes to VM’s, per-VM EVC determines the set of host CPU features a VM requires to power on and migrate.