How to deal with EVC

Recently I saw few topics on VMware communities about EVC (Enhanced vMotion Compatibility).  I decided to write a post what exactly EVC is, how to enable it on running cluster and what is the impact,  finally – what to do if you disabled EVC (by mistake or on purpose) on running vSphere cluster.

What’s EVC ?

Enhanced vMotion Compatibility (EVC) simplifies vMotion compatibility issues across CPU generations. EVC automatically configures server CPUs with Intel FlexMigration or AMD-V Extended Migration technologies to be compatible with older servers.

source: vmware.com

Other words saying, enabling EVC on a vSphere cluster configuring all ESX(i) nodes in a cluster with identical CPU features allowing vMotion between ESX(i) hosts with different CPU generations but from the same vendor.

Do I need enabled EVC on my cluster ?

Well, to make your life easier 🙂 when it comes to physical resource management of the virtual infrastructure. Most virtual environments is growing in time and sooner or later extra computer resources (CPU, RAM) are needed to allow further growing. There are usually three ways of extend:

  1. add RAM and/or CPU to existing ESX(i) nodes
  2. create new vSphere cluster with at least two nodes
  3. add new ESX(i) nodes to legacy cluster (usually with new CPU generation)

Third case it’s when EVC comes to game, EVC applies common baseline on all CPU’s in a vSphere cluster allowing vMotion between legacy hosts and new host or hosts.

Use Cases:

UC01: Add new host into legacy production vSphere cluster.

  1. Find common EVC baseline which will cover new and old CPU’s
  2. Enable proper baseline on vSphere cluster
  3. Add new host into existing cluster

This was straight forward procedure, very easy to apply and it is harmless for virtual machines (no outage, no restart either VM or ESX(i) host)

UC02: Enable EVC on a production vSphere cluster with mixed CPU’s (someone forgot to enable EVC)

This time is a bit more complicated because there are some VM already running on new hosts, in that situation enabling EVC is not possible, you will get always an incompatibility error:

The cluster cannot be configured with selected Enhanced vMotion Compatibility, CPU features disabled by that mode may currently be in use by powered on or suspended virtual machines in cluster

regardless of EVC mode you choose. In this scenario the only way to enable EVC is shutdown all VM’s on a new host and then enable EVC.

EVC compatibility error

[box type=”warning”] Design advice: Always enable EVC on a cluster with highest possible EVC baseline.[/box]

Hardware used for test:

  • 2x HP BL460c G1  – Intel Xeon E5450 @ 3.0 GHz – vSphere 5
  • 1x HP BL460c G6 – Intel Xeon E5570 @ 2.9 GHz – vSphere 5
  • EVC baseline – Intel Penryn Generation

EVC baseline

[box type=”info”] EVC baseline VMware KB article – 1003212

How to enable EVC on cluster with vCenter as a virtual machine

EVC FAQ[/box]

Artur Krzywdzinski

Artur is Consulting Architect at Nutanix. He has been using, designing and deploying VMware based solutions since 2005 and Microsoft since 2012. He specialize in designing and implementing private and hybrid cloud solution based on VMware and Microsoft software stacks, datacenter migrations and transformation, disaster avoidance. Artur holds VMware Certified Design Expert certification (VCDX #077).