As of vSphere 6.7, a new Enhanced vMotion Compatibility (EVC) mode made its appearance. In this post, we will explain the difference between VMware cluster-level EVC and VMware per-VM EVC.

Vladan Seget

Vladan Seget is an independent consultant, professional blogger, vExpert 2009-2019, VCAP-DCA/DCD and MCSA. He has been working for over 20 years as a system engineer.

Latest posts by Vladan Seget (see all)

First, we'll talk about cluster-level EVC, which is in essence very simple to understand.

It refers to vMotion between hosts with dissimilar hardware located inside the same vSphere cluster. It means you can have different Intel processors (CPUs) on each host, and vMotion capability will still work.

Why all of this? It's because with every new processor, Intel releases new set of instructions that are not, as you can imagine, backward compatible with previous generations of CPUs.

So this is why we need to "mask" these new capabilities within our cluster to retain our vMotion capability. We hide the newer instructions within vCenter Server.

This feature presents a homogeneous processor front to all the virtual machines (VMs) in a cluster. This allows us to vMotion from, for example, Intel's Sandy Bridge-based cluster into a Haswell-based cluster.

Different clusters based on hardware CPU generation

Different clusters based on hardware CPU generation

Keep in mind that the CPUs must be from a single vendor, for example, only from Intel or only from AMD. You cannot mix and match.

Where do I configure VMware EVC? ^

We need to do this at the cluster level, which means that from the Menu, you go to Hosts and Clusters, select the Cluster on which you want to configure VMware EVC, and go to Configuration > VMware EVC > Edit.

Where to enable VMware EVC for vMotion compatibility

Where to enable VMware EVC for vMotion compatibility

Then after selecting the correct radio button (either AMD or Intel), you can choose from different generations of CPUs via the drop-down list.

Where to enable VMware EVC

Where to enable VMware 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.

Where to configure per VM EVC

Where to configure per VM EVC

In my example, I configured the Intel "Haswell" EVC mode.

Per VM EVC mode for Haswell CPUs

Per VM EVC mode for Haswell CPUs

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. However, this is beyond the scope of this article.

Final words ^

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 VMs, you need per-VM EVC, which brings more "freedom" for your VMs. They can move outside those particular clusters.

Your VMs 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 VMs, per-VM EVC determines the set of host CPU features a VM requires to power on and migrate.

Are you an IT pro? Apply for membership!

Your question was not answered? Ask in the forum!

2+

Users who have LIKED this post:

  • avatar
Share
0 Comments

Leave a reply

Your email address will not be published. Required fields are marked *

*

© 4sysops 2006 - 2019

CONTACT US

Please ask IT administration questions in the forums. Any other messages are welcome.

Sending

Log in with your credentials

or    

Forgot your details?

Create Account