Processor Compatibility nova feature do Windows 2008 R2
When a running virtual machine is moved to a server running different processor, the virtualization platform needs to provide necessary support to ensure applications running inside virtual machines continue to run on the destination processor.
The Processor Compatibility new feature of Windows 2008 R2, enables Live Migration to occur between processors at different versions/generations/steppings.
A particular Intel or AMD class of processors exists in a family. That family has multiple generations, or steppings, that define one set of processors from another. While these differences are relatively unnoticeable for most of us during our usual use of the OS, they can be enough to prevent a Live Migration from successfully occurring. The "differences" actually arrive as different processor capabilities that are baked into the chip itself.
This new feature enables the masking of these features so that a running virtual machine can successfully Live Migrate from one host to another. The result is that you must no longer be exactly equal in processor capabilities between multiple hosts. The best part is that the majority of this functionality is kept underneath the covers.
You only need to check if the box "Migrate to a physical computer with a different processor version" is marked for each VM. That’s it. The Live Migration process will eliminates concerns and conflicts and process the migration sucessfully
1. You have a virtual machine running on a host A and would like to be able to move it to another host B
2. You buy another server and add to the cluster. The newly added server is most likely has newly added processor features than other hosts in the cluster. You would like to be able to move running virtual machines freely from any node of the cluster.
3. You have a virtual machine running on host A, You save the VM with active memory state and would like to restore the same at a later date on any Hyper-V enabled host which may not be the same host.
How it works:
With processor compatibility mode enabled, Hyper-V only exposes the guest VM to processor features that are available across all processors of the same processor architecture, i.e. AMD-to-AMD or Intel-to-Intel. This allows the VM to be migrated to any hardware platform of the same processor architecture. Processor features are “hidden” by the Hypervisor by intercepting a VM’s CPUID instruction and clearing the returned bits corresponding to the hidden features.
When a VM in a processor compatibility mode is started following processor features are hidden from the VM:
Host running AMD based processor
SSSE3, SSE4.1, SSE4.A, SSE5, POPCNT,
LZCNT, Misaligned SSE, AMD 3DNow!,
Host running Intel based processor
SSSE3, SSE4.1, SSE4.2, POPCNT, Misaligned
SSE, XSAVE, AVX
Also, VM’s cache line flush size is set to 8 bytes on AMD and Intel based hosts when in processor compatibility mode.
Important : Windows Server 2008 R2 Hyper-V will not allow migrating a VM (with or without in processor compatibility mode) from AMD based hosts to Intel based hosts, and vice versa.
VM’s processor compatibility mode is OFF by default. It can be turned on by one of the two ways:
1. Using Hyper-V Manager: from Hyper-V Manager, select CPU setting wizard of the VM.
Check a check-box labeled “Migrate to physical computer with a different processor version. You can only change this setting when VM is not running.
2. Using System Center Virtual Machine Manager 2008 R2
1. Moving down to older processer versions consider potential performance reduction due to loss of processor features which might accelerate applications performance. It’s recommended that you properly test these scenarios.
2. An application may use non-recommended methods for processor feature detection, such as instruction probing, i.e. using an exception handler and attempting to execute a feature’s instruction to determine the presence of a feature. Or, basing feature presence on the type of processor, i.e. family, model and stepping.
3. Applications may fail to launch because of the lack of a specific a processor feature It is recommended that before deploy