Hello,
All components of a ESXi host are virtualized. You have a vNIC, VRAM and vCPU. For this last, however, the virtualisation is not “full”.
The name, model and frequency of CPU are shown in guest OS.
The problem happens when you changed ESXi hardware with new CPUs. When you do this, the next time you boot, Windows 7 detects new CPU, install it, and ask you to reboot. And if you have llinked clone this is endless : you reboot, VM is refreshed, restart, re-install CPU and ask you to reboot…
Your only solution is to boot master, install CPUs, reboot master and recompose your pool.
I have forgot something ? My configuration is wrong ? What should I do ?
Using diffrent CPU model in ESXi in the same cluster is therefore not possible ?
It would be nice if someone can give me some informations about how this work, why, and how do you do if possible
Thanks a lot in advance
e.chappatte
Bump
The question is still open… no one has an idea ?
How do you do when you change ESX host with linked clone VM desktop, refresh all masters ?
Thanks in advance for your advices and help
Thank you for your reply.
As I have seen, it is a typical behavior. I am looking for a way for that not happen, but I am not sure it is possible ?
I explain a little bit more : yes we use same familly of CPU and yes we use EVC to keep features supported by all ESX and this way we can use vMotion.
But even with this, when you have diffenrent CPU on hosts, VM with Windows 7 / 2008 R2 detects the new CPU when rebooting. Not a big problem on servers, this can be anoying on desktop linked clone : at boot a message that we have a new CPU is displayed, and ask to reboot: for linked clones this mean endless reboot, until you make a new master and recompose the pool.
As I understand, this is worst than same type of CPU or EVC mode, we need hosts with exactly the same processor. Or I am wrong ?
Thank you for the answer.
Effectively, we have the same familly of CPU and we use EVC, see details above.
But I wonder if we have to use exactly the same CPU (same model number) to avoid what happend when Windows guests OS detects new CPU ?
This mean that we can not buy, for example, 7 ESX hosts with Xenon E5630 and two years later 7 hosts with Xenon E5640 to complete the cluster ?
We are also experiencing the same issue here. It doesn’t require a reboot after the migration. But if we reboot the VM after vmotion, (with windows 2008 R2 in our case) It says that it needs a reboot since new hardware was added. We migrated between X5650 and E5-2697 V2 with westmere as EVC mode.
It is possible to mask the Processor Brand String, which is in CPUID leaves 0x800000002 through 0x800000004. You will need advanced VM configuration options like the following (these are for a Westmere):
monitor_control.enable_fullcpuid=”TRUE”
cpuid.80000002.0.eax=”0110:0101:0111:0100:0110:1110:0100:1001″
cpuid.80000002.0.ebx=”0010:1001:0101:0010:0010:1000:0110:1100″
cpuid.80000002.0.ecx=”0110:1111:0110:0101:0101:1000:0010:0000″
cpuid.80000002.0.edx=”0010:1001:0101:0010:0010:1000:0110:1110″
cpuid.80000003.0.eax=”0101:0101:0101:0000:0100:0011:0010:0000″
cpuid.80000003.0.ebx=”0010:0000:0010:0000:0010:0000:0010:0000″
cpuid.80000003.0.ecx=”0010:0000:0010:0000:0010:0000:0010:0000″
cpuid.80000003.0.edx=”0101:1000:0010:0000:0010:0000:0010:0000″
cpuid.80000004.0.eax=”0011:0101:0011:0111:0011:0110:0011:0101″
cpuid.80000004.0.ebx=”0010:0000:0100:0000:0010:0000:0010:0000″
cpuid.80000004.0.ecx=”0011:0111:0011:0000:0010:1110:0011:0011″
cpuid.80000004.0.edx=”0000:0000:0111:1010:0100:1000:0100:0111″
Normally, we do not mask these CPUID leaves. The first option enables masking for all CPUID leaves. The remaining options contain the binary representation of the Processor Brand String.
By convention, basic CPUID functions (0 through 0x14 today) are defined by Intel, and extended CPUID functions (0x80000000 through 0x8000001e today) are defined by AMD.
Intel has relinquished the range from 0x40000000 through 0x4fffffff. AMD has reserved 0x40000000 through 0x400000ff for the use of hypervisors. Microsoft defines 0x40000000 through 0x40000006 today, and VMware defines 0x40000010.
A couple of quick questions on this:
1) What is the meaning of the additional value (”.0′) between say, “0x80000002” and “.eax” in your example? It’s not specified in “normal” CPUID masking.
2) Can this extended masking of the brand string be used with the 0xXXXXXXXX syntax, in addition to the binary syntax you showed in the example?
MattPietrek wrote:
A couple of quick questions on this:
1) What is the meaning of the additional value (”.0′) between say, “0x80000002” and “.eax” in your example? It’s not specified in “normal” CPUID masking.
That’s the ecx input value to CPUID. I believe 0 is the default if you leave it off.
2) Can this extended masking of the brand string be used with the 0xXXXXXXXX syntax, in addition to the binary syntax you showed in the example?
I don’t think any of the CPUID masking options can be specified in the simpler hexadecimal form.