Virtualization certification. This article covers Section 1: Architectures and Technologies. Objective 1.6.2 – Describe vSphere Enhanced vMotion Compatibility (EVC).
This article is part of the VMware vSphere 7.x - VCP-DCV Study Guide. Check out this page first for an introduction, disclaimer, and updates on the guide. The page also includes a collection of articles matching each objective of the official VCP-DCV.
Describe vSphere Enhanced vMotion Compatibility (EVC)
In objective, we quickly describe vSphere Enhanced vMotion Compatibility (EVC). First, let’s take a look at VMware vMotion. Then, an overview of how EVC works and some of its basic concepts.
This topic is a child of Objective 1.6 – Describe ESXi cluster concepts. It is also highly related to the previous topic: Describe Distributed Resource Scheduler (DRS). Both topics should be considered and are recommended before moving to this one.
There is a nice article about this subject on VMware vSphere Blogs. I also referenced material from here. Enhanced vMotion Compatibility (EVC) Explained.
1. VMware vMotion
VMware vSphere vMotion is a zero downtime live migration of workloads from one server to another. This capability is possible across vSwitches, Clusters, and even Clouds (depending on the vSphere edition that you have). During the workload migration, the application is still running and users continue to have access to the systems they need.
VMware vSphere live migration allows to move of an entire running virtual machine from one physical server to another, with no downtime.
- The virtual machine retains its network identity and connections, ensuring a seamless migration process.
- Transfer the virtual machine’s active memory and precise execution state over a high-speed network, allowing the virtual machine to switch from running on the source vSphere host to the destination vSphere host.
- This entire process takes less than two seconds on a gigabit Ethernet network.
Live migration allows to:
- Automatically optimize virtual machines within resource pools.
- Perform hardware maintenance without scheduling downtime or disrupting business operations.
- Move virtual machines away from failing or underperforming servers.
Using VMware vSphere vMotion automated migration, migrations can be scheduled at predefined times, without administrator intervention. The VMware vSphere Distributed Resource Scheduler, one of vSphere’s automated migration features, uses vMotion to optimize virtual machine performance across vSphere clusters.
vMotion allows to:
- Migrate multiple virtual machines running any operating system across any type of hardware and storage supported by vSphere, complete with an audit trail.
- Identify the optimal placement for a virtual machine in seconds.
2. Cluster-Level EVC
You can use the Enhanced vMotion Compatibility (EVC) feature to help ensure vMotion compatibility for the hosts in a cluster.
- EVC ensures that all hosts in a cluster present the same CPU feature set to virtual machines, even if the actual CPUs on the hosts differ.
- Using EVC prevents migrations with vMotion from failing because of incompatible CPUs.
When you configure EVC, you configure all host processors in the cluster to present the feature set of a baseline processor.
- This baseline feature set is called the EVC mode.
- EVC uses AMD-V Extended Migration technology (for AMD hosts) and Intel FlexMigration technology (for Intel hosts) to mask processor features.
- The EVC mode must be equivalent to, or a subset of, the feature set of the host with the smallest feature set in the cluster.
- EVC masks only those processor features that affect vMotion compatibility.
Enabling EVC does not prevent a virtual machine from taking advantage of faster processor speeds, increased numbers of CPU cores, or hardware virtualization support that might be available on newer hosts.
- EVC cannot prevent virtual machines from accessing hidden CPU features in all circumstances.
- Applications that do not follow CPU vendor recommended methods of feature detection might behave unexpectedly in an EVC environment.
- VMware EVC cannot be supported with ill-behaved applications that do not follow the CPU vendor recommendations.
Note: Starting with vSphere 7.0 Update 1, you can take advantage of the EVC feature for Virtual Shared Graphics Acceleration (vSGA). vSGA allows multiple virtual machines to share GPUs installed on ESXi hosts and leverage the 3D graphics acceleration capabilities.
2.1 EVC Requirements for Hosts
To improve CPU compatibility between hosts that have varying CPU feature sets, you can hide some host CPU features from the virtual machines by placing the host in an Enhanced vMotion Compatibility (EVC) cluster. Hosts in an EVC cluster and hosts that you add to an existing EVC cluster must meet EVC requirements.
Power off all virtual machines in the cluster that are running on hosts with a feature set greater than the EVC mode that you intend to enable. You can also migrate these virtual machines out of the cluster.
All hosts in the cluster must meet the following requirements:
- Supported ESXi version. ESXi 6.5 or later.
- vCenter Server. The host must be connected to a vCenter Server system.
- CPUs. A single vendor, either AMD or Intel.
- Advanced CPU features enabled. Enable these CPU features in the BIOS if they are available:
- Hardware virtualization support (AMD-V or Intel VT)
- AMD No eXecute(NX)
- Intel eXecute Disable (XD)
- Supported CPUs for the EVC mode that you want to enable
- Host Configured for vMotion
3. Per-VM EVC
When a virtual machine is moved to another cluster, either on-prem or in a hybrid cloud environment, it loses its EVC configuration depending on the destination environment. The per-VM EVC feature facilitates the migration of the virtual machine beyond the cluster and across vCenter Server systems and data centers that have different processors.
- By implementing per-VM EVC, the EVC mode becomes an attribute of the virtual machine rather than the specific processor generation it happens to be booted on in the cluster.
- This helps to be more flexible with EVC enablement and baselines
The EVC mode of a virtual machine is independent of the EVC mode defined at the cluster level.
- The cluster-based EVC mode limits the CPU features a host exposes to virtual machines. The per-VM EVC mode determines the set of host CPU features that a virtual machine requires to power on and migrate.
- By default, when you power on a newly created virtual machine, it inherits the feature set of its parent EVC cluster or host.
- You can change the EVC mode for each virtual machine separately.
- You can raise or lower the EVC mode of a virtual machine. Lowering the EVC mode increases the CPU compatibility of the virtual machine.
- You can also use the API calls to customize the EVC mode further.
The per-EVC configuration is saved in the vmx file.
- The vmx file is the file used as a value dictionary that provides the configuration of the virtual machine.
- If the virtual machine is migrated to another cluster, the per-EVC configuration is moving along with the virtual machine itself.
3.1 EVC Requirements for VMs
The per-VM EVC feature has the following requirements.
- Host compatibility. ESXi 6.7 or later.
- vCenter Server compatibility. vCenter Server 6.7 or later.
- Virtual machine compatibility. Virtual hardware version 14 or later.
4. Cluster-Level EVC vs. Per-VM EVC
There are several differences between the way the EVC feature works at the host cluster level and at the virtual machine level.
- Unlike cluster-based EVC, you can change the per-VM EVC mode only when the virtual machine is powered off.
- With cluster-based EVC, when you migrate a virtual machine out of the EVC cluster, a power cycle resets the EVC mode that the virtual machine has. With Per-VM EVC, the EVC mode becomes an attribute of the virtual machine. A power cycle does not affect the compatibility of the virtual machine with different processors.
- When you configure EVC at the virtual machine level, the per-VM EVC mode overrides cluster-based EVC. If you do not configure per-VM EVC, when you power on the virtual machine, it inherits the EVC mode of its parent EVC cluster or host.
- If a virtual machine is in an EVC cluster and the per-VM EVC is also enabled, the EVC mode of the virtual machine cannot exceed the EVC mode of the EVC cluster in which the virtual machine runs. The baseline feature set that you configure for the virtual machine cannot contain more CPU features than the baseline feature set applied to the hosts in the EVC cluster.
The topic reviewed in this article is part of the VMware vSphere 7.x Exam (2V0-21.20), which leads to the VMware Certified Professional – Data Center Virtualization 2021 certification.
Section 1 - Architectures and Technologies.
Objective 1.6.2 – Describe vSphere Enhanced vMotion Compatibility (EVC).