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:
- add RAM and/or CPU to existing ESX(i) nodes
- create new vSphere cluster with at least two nodes
- 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.
- Find common EVC baseline which will cover new and old CPU’s
- Enable proper baseline on vSphere cluster
- 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.
[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
[box type=”info”] EVC baseline VMware KB article – 1003212
How to enable EVC on cluster with vCenter as a virtual machine
EVC FAQ[/box]