michelangelus - Fotolia
Get to know the Hyper-V processor compatibility mode feature
Hyper-V processor compatibility is relatively easy to use, but it disables some advanced CPU features and is only intended for specific circumstances on a temporary basis.
Hyper-V processor compatibility mode enables you to migrate VMs between hosts with different CPU versions, but you need to make sure you understand the feature's limitations before using it.
One of the most useful capabilities found in hypervisors such as Microsoft Hyper-V is the ability to move a running VM to a different host without causing any downtime. These live migrations are useful for everything from balancing the host workload to taking a host offline for maintenance.
In a perfect world, every Hyper-V host in the data center would be 100% identical. In the real world, hosts can vary considerably from one another. Fortunately, Hyper-V contains a processor compatibility setting you can use to move a running VM to a dissimilar host.
You can access Hyper-V processor compatibility settings by opening Hyper-V Manager, right-clicking on the VM whose CPU settings you wish to change and selecting the Settings command from the shortcut menu. Hyper-V Manager then displays the VM's settings. If you expand the Processor container, you'll see a Compatibility container beneath it. Select the Compatibility container. Then, enable processor compatibility mode for the VM by selecting the Migrate to a physical computer with a different processor version checkbox, as shown in Figure A below.
The text next to the checkbox in Figure A above is key to understanding what you can use the Hyper-V processor compatibility feature for. The interface indicates that you can use the processor compatibility feature to move the VM to a physical computer with a different processor version.
Notice that Microsoft uses the word version, not architecture. In other words, you won't be able to use the processor compatibility feature to move a VM from an Intel-based system to an AMD-based system. There are internet posts from people who claim to have made such a move work, but cross-architecture live migrations or quick migrations aren't officially supported and are unlikely to work correctly.
Instead, the CPU compatibility feature is designed to help you move a running VM to another Hyper-V host equipped with an older or a newer CPU that uses the same architecture as the host on which the VM is currently running. For example, you might move a VM from a host equipped with a sixth-generation Intel processor to a host equipped with an eighth-generation Intel processor.
Processor compatibility mode limitations
The Hyper-V processor compatibility feature is very straightforward. Even so, there are a few things you need to know about it.
First, the processor compatibility feature works by disabling some of the more advanced CPU features, leaving the VM to rely on a more standard set of CPU capabilities. Microsoft hasn't published an official list of the features the processor compatibility mode disables, but it usually has little to no negative performance effect on business workloads unless they are graphically intensive.
Also, processor compatibility mode is only intended for temporary use. Enable processor compatibility mode just prior to performing a live migration or a quick migration and then turn processor compatibility mode off once the migration is complete. Disabling processor compatibility mode enables the VM to use any advanced CPU features that might be available on the destination host server.
Finally, you only need to use Hyper-V processor compatibility mode under very specific circumstances; for example, if you're performing a live migration or a quick migration between two Hyper-V hosts with similar CPU architectures but dissimilar CPU versions. You don't need to use processor compatibility mode if you're shutting down the VM prior to migrating it. A shutdown is required if you're moving the VM to a different CPU architecture, but it is optional for other migrations. Compatibility mode also isn't required if the hosts have similar CPU versions.