Everyone who had been using VMware for a while, would appreciate VMware VMotion. Actually VMware VMotion have always been a distinguished feature of VMware ESX servers. Despite of VMotion has always been a great feature, people using it at earlier stages used to have a tough time when having to use it across different CPU generation. That meant companies had to actually put similar hardware server in the same cluster, to guarantee that VMotion work smoothly. This was not possible at all the time, and was a tough call for implementers as they had to cheat masking manually in order to avoid VMotion not accepting to run between different CPU genrations.

Although VMware EVC (Enhanced VMotion Compatibility) has been around for a while, many VMware administrators still does not know about it or just over looked it. VMware EVC is actually the defacto solution for VMotion across hosts with different CPU generations. It will automatically masks the non compatible features of different generation cpus from the hosts, which give you the ability to VMotion across hosts with different CPU generations. Please note VMware EVC has been supported since VMware ESX 3.5U2, but was highly Enhanced in VMware vSphere.

Ok, now I got your attention & you want to know how to actually enable VMware EVC & what is the pre-requisite for it. The main pre-requisite for VMware EVC is to have your host to use the same CPU vendors. So if using Intel all servers in a cluster have to use intel & same for AMD. Don’t mix interl & AMD in the same VMware cluster so you can use VMotion across all the servers in the cluster. Actually VMware EVC seems to support most of the new AMD & Intel CPUs, but to make sure it support yours you might want to look at the support charts at: http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1003212

In order to enable VMware EVC on your hosts & Cluster you will have to ensure the following Bios settings are enabled for each of the involved cluster:

1- Hardware Virtualization is Intel VT on Intel processors and AMD-V on (supported) AMD processors

2- Execute Protection is Intel eXecute Disable (XD) on Intel processors and AMD No eXecute (NX) on AMD processors

The next step after enabling the Hardware Virtualization & Execute protection you will need to go to your VMware Cluster Settings & enable VMware EVC as showing in the below images.

VMware Vsphere Enable VMware EVC

After doing this each server you add to your cluster will have VMware EVC enabled & virtual machines will be able to VMotion across different cpu generations in the cluster.

Please note when you are enabling VMware EVC for an existing cluster, that it will request you to shutdown all the virtual machines running into that cluster to enable VMware EVC for it. For work around on this please check my other post: How to enable VMware EVC on VMware vSphere & VI3 without downtime

I have here covered the main concept of VMware EVC & how to enable it. If you need more details please check the VMware document at: http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1003212

I hope this help. Please leave us a comment of any questions, concerns or feedback.