VMware
 

Knowledge Base

Search the Knowledge Base:

Products:
Search In:
 

EVC and CPU Compatibility FAQ

Details

This document provides answers to common questions regarding Enhanced VMotion Compatibility (EVC) and CPU compatibility.

Solution

 
EVC is short for Enhanced VMotion Compatibility. EVC allows you to migrate virtual machines between different generations of CPUs.
 
 
Because EVC allows you to migrate virtual machines between different generations of CPUs, with EVC you can mix older and newer server generations in the same cluster and be able to migrate virtual machines with VMotion between these hosts. This makes adding new hardware into your existing infrastructure easier and helps extend the value of your existing hosts. With EVC, full cluster upgrades can be achieved with no virtual machine downtime whatsoever. As you add new hosts to the cluster, you can migrate your virtual machines to the new hosts and retire the older hosts.
 

EVC is enabled for a cluster in the VirtualCenter or vCenter Server inventory. After it is enabled, EVC ensures that migration with VMotion is possible between any hosts in the cluster. Only hosts that preserve this property can be added to the cluster.

 
After EVC is enabled, all hosts in the cluster are configured to present the CPU features of a user-selected processor type to all virtual machines running in the cluster. This ensures CPU compatibility for VMotion even though the underlying hardware might be different from host to host. Identical CPU features are exposed to virthal machines regardless of which host they are running on, so that the virtual machines can migrate between any hosts in cluster.
 
 
Yes. More factors than CPU compatibility are used to determine VMotion compatibility. For example, if the virtual machine does not reside on storage shared by the source and destination hosts, then migration with VMotion cannot occur between these hosts.
 
 
No. An EVC-enabled cluster only allows CPUs from a single vendor in the cluster. VirtualCenter and vCenter Server do not allow you to add a host from a different vendor into an EVC-enabled cluster.
 
 
ESX/ESXi 3.5 Update 2 and later support two EVC modes:
  • AMD Opteron™ Generation 1 (Rev. E)
  • Intel® Xeon® Core™2 (Merom).
In the earlier ESX/ESXi 3.5 releases, these modes were labelled simply AMD and Intel. Later updates use the names listed above.
 
ESX/ESXi 4.0 supports the following EVC modes:
  • AMD Opteron™ Generation 1 (Rev. E)
  • AMD Opteron™ Generation 2 (Rev. F)
  • AMD Opteron™ Generation 3 (Greyhound)
  • Intel® Xeon® Core2 (Merom)
  • Intel® Xeon® 45nm Core2 (Penryn)
  • Intel® Xeon® Core i7 (Nehalem)
 
To determine the EVC modes compatible with your CPU, search the VMware Compatibility Guide: http://www.vmware.com/resources/compatibility/search. Search for the server model or CPU family, and click on the entry in the CPU Series column to display the compatible EVC modes.
 
KB 1003212: http://kb.vmware.com/kb/1003212 also contains details of which CPUs are compatible with which EVC modes.
 
 
Each mode corresponds very closely to the features available in processors with the same name. Newer processors and their corresponding modes include additional features such as new instructions. For example, the Intel Xeon Core i7 processor added the SSE4.2 instruction set. These instructions are not available in earlier processors or their corresponding EVC modes.
 
AMD EVC modes expose the following features:
EVC Mode Available Features
AMD Opteron Generation 1 All features of AMD Opteron Rev. E CPUs
AMD Opteron Generation 2 All features of AMD Opteron Generation 1 and additional CPU features including CMPXCHG16B and RDTSCP
AMD Opteron Generation 3 All features of AMD Opteron Generation 2 and additional CPU features including SSE4A, MisAlignSSE, POPCOUNT, ABM (LZCNT)
Intel EVC modes expose the following features:
EVC Mode
Available Features
Intel Xeon Core2
All features of Intel Core2 CPUs
Intel Xeon 45nm Core2
All features of Intel Core2 CPUs and additional CPU features including SSE4.1
Intel Xeon Core i7
All features of Intel Core2 CPUs and additional CPU features including SSE4.2 and POPCOUNT
 
 
In the vSphere Client connected to vCenter Server 4.0, the host Summary tab indicates whether EVC is enabled, and displays the current EVC mode for the host. Click the blue icon next to the EVC mode to display a list of all the supported EVC modes for the host.
 
VMware also provides a free CPU identification utility that displays compatible EVC modes, in addition to other CPU features. You can download this utility and boot the host from the ISO image. The utility is available from http://www.vmware.com/download/shared_utilities.html.
 
 
Yes, in both directions.
 
 
The older masking feature involved applying manual masks to individual virtual machines. EVC takes effect on a whole cluster and all virtual machines in the cluster. More accurately, EVC affects the hosts themselves, making all the hosts in the cluster appear to be the same type of CPU hardware, even if they are different.
 
 
The .vmx file contains information about the features that the virtual machine is using. VirtualCenter and vCenter Server need this information to provide accurate VMotion compatibility checks. These values are unrelated to the old CPUID mask values that also appear in the .vmx file.
 
 
When a host leaves an EVC-enabled cluster, it reverts to its normal behavior. New virtual machines started on that host can access all the features of the CPU, and are not limited by the EVC mode that was in effect while the host was in the EVC cluster. Note that virtual machines that were once able to migrate to the host might no longer be permitted to do so.
 
Not until you power off and then power on the virtual machines. A reboot of the guest operating system is not sufficient. A virtual machine determines which features are available to it at power on, and cannot access any new features that are added until it is powered off.
 
 
An ill-behaved application is one that does not use CPU-vendor-recommended methods of detecting features supported on a CPU. The recommended method is to run the CPUID instruction and look for the correct feature bits for the capabilities the application is expected to use. Unsupported methods used by ill-behaved applications include try-catch-fail or inferring the features present from the CPU version information. When unsupported methods are used, an application might detect features on a host in an EVC cluster that are being masked from the virtual machines. The CPUID-masking MSRs provided by CPU vendors do not disable the actual features. Therefore, an application can still use masked features. If a virtual machine running such an application is then migrated with VMotion to a host that does not physically support those features, the application might fail. VMware is not aware of any commercially-available ill-behaved applications. See KB 1005763 (http://kb.vmware.com/kb/1005763) for details.
 
 
Yes. EVC-enabled clusters can contain hosts that do not feature AMD-V Extended Migration or Intel VT FlexMigration technology. For example, Intel Xeon Core2 processors do not have Intel VT FlexMigration technology, but can be added to clusters configured with an Intel Xeon Core2 EVC mode.
 
 
No. EVC is supported only on ESX/ESXi 3.5 Update 2 and later. vCenter Server does not permit the addition of hosts that do not provide support for EVC into an EVC-enabled cluster.
 
 
All CPU features provided by your host hardware are available to the hypervisor. Optimizations for CPU virtualization such as AMD-V and Intel VT-x or facilities for MMU virtualization such as AMD RVI or Intel EPT support are still used by the hypervisor. Only those CPU instructions that are unique to the new CPU are hidden from virtual machines when the host joins the EVC-enabled cluster. Typically this includes new SIMD instructions, such as the latest SSE additions. It is possible, but unlikely, that an application running in a virtual machine would benefit from these features, and that the application performance would be lower as the result of using an EVC mode that does not include the features. Check with the application vendor to determine which CPU features are used by the application.
 
 
You can raise the EVC mode for an EVC-enabled cluster if all hosts in the EVC cluster support the higher mode. This may occur periodically over time as older hosts are retired from the cluster and newer hosts are added. Use the Change EVC Mode dialog box to determine the EVC modes currently available to your cluster.

Feedback

Rating: 1 - Lowest 2 3 4 5 - Highest (6 Ratings)   

Did this article help you?
This article resolved my issue.
This article did not resolve my issue.
This article helped but additional information was required to resolve my issue.
What can we do to improve this information? (2000 or fewer characters)
Submit
Rating: 1 - Lowest 2 3 4 5 - Highest (6 Ratings)   
Actions