I had a discussion yesterday about why one would care about changing the “OS” type for a VM when it is upgraded, or even during the provisioning of a VM. I guess the obvious one is that a VM is “customized / optimized” based on this information from a hardware perspective. Another one that many people don’t realize is that when you initiate a VMware Tools install or Upgrade the information provided in the “Guest Operating System” (VM properties, Options, General Options) is used to mount the correct file. As you can see in the screenshot below, I selected “Windows 2008” but actually installed Ubuntu, when I wanted to install VMware Tools the Windows binaries popped up. So make sure you update this info correctly,
Danny Claproth says
Something I learned in the past, was when creating a VM and selecting the correct OS will speed CPU kernel calls. VMware uses Binary Translations to translate kernel CPU calls to user calls. When selecting an OS, the kernel will use a cache for this (BT chache).
TMHO this is far more important than selecting the correct VMware Tools package to install…
Danny
Duncan Epping says
Good point, where applicable of course. Don’t forget many CPUs today support VT/HV and BT is often not needed anymore.
Rickard Nobel says
Another use is that the “Memory and CPU hotadd” GUI is depending on the selected OS version. If for example Windows 2003 is selected the CPU Hotadd option is missing, but available in Win2008.
Zach Milleson says
How much of a difference is the VMTools package when different versions of Windows is installed? For instance, Windows 2003 x64 and Windows 2008 R2.
Bilal Hashmi says
Not to mention when you select OSx in vSphere 5, it does some additional checks to confirm the the underlying hardware is from Apple or else the VM will not power on. So yeah though selecting the right OS may seem like a simple thing.. it effects your VM and its life.. 🙂
Matt Malesky says
There are more than a few reasons why this is important, as a number of us have pointed out.
This will also affect the default VM disk controller that is chosen, which can cause a VM to not boot (provided its operating system does not have the required device drivers for the controller).
Gabrie van Zanten says
Hi
Wod you also know what the impact is of enabling the CPU/RAM HotAdd feature. Just in case you might ever needed? It is of by default and to enable it I need to shutdown the VM. Why not enable it when creating the VM? Unless there is a drawback to that of course.
Gabrie
Michael says
Frank wrote an article on this a while ago:
http://frankdenneman.nl/2009/12/impact-of-mismatch-guest-os-type/
Valentin says
Hi Danny,
just to clear up some misconceptions, selection the correct OS will, among other criteria like available CPU features, decide _how_ to virtualize instructions and the MMU. There are 3 combinations:
BT + software MMU
HV + software MMU
HV + hardware MMU (HWMMU)
Selecting an OS has nothing to do with BT using the translation cache, which it will, no matter the OS you select (except there is an OS for which we turn it off, I don’t think there is one though).
One of the reasons we select BT over lets say HWMMU is that some operating systems have some bugs or inefficiencies we can easily workaround with BT, so we use it as the default monitor mode for that OS.
If you interested in this topic, I’d recommend the following for starters:
Software and Hardware Techniques for x86 Virtualization – http://www.vmware.com/resources/techresources/10036
Performance aspects of x86 virtualization – http://www.vmworld.com/docs/DOC-2152
If you are comfortable with the presented information, you might also want to read “The Evolution of an x86 Virtual Machine Monitor” – from Ole Agesen (et al)
Cheers
Valentin
P.S.
In some cases, using HWMMU instead of BT, even though it is the default, will improve performance by a lot. The OS issue might have been fixed with a SP, the Guest OS type doesn’t account for that though. Most famous example, Windows XP / 2003 and the frequent TPR access pre hotpatch / SP2 (http://kb.vmware.com/kb/2001372).
Valentin says
Hi Gabrie,
on ESXi 5, vNUMA would not be used if you had the HotAdd feature enabled for that VM. Windows for example also reserves PTEs if it detects HotAdd capability (http://support.microsoft.com/kb/913568), depending on your workload, this could have impact as well.
No other notable overhead I can think of (which does not mean that there is non).
Cheers
Valentin
Valentin says
Hi Zach,
here a find for the different isos that will be attached based on OS:
~ # find . -name *.iso
./vmfs/volumes/4ecd256f-1c17889b-6094-000c291ae21c/packages/5.0.0/vmtools/winPre2k.iso
./vmfs/volumes/4ecd256f-1c17889b-6094-000c291ae21c/packages/5.0.0/vmtools/windows.iso
./vmfs/volumes/4ecd256f-1c17889b-6094-000c291ae21c/packages/5.0.0/vmtools/netware.iso
./vmfs/volumes/4ecd256f-1c17889b-6094-000c291ae21c/packages/5.0.0/vmtools/solaris.iso
./vmfs/volumes/4ecd256f-1c17889b-6094-000c291ae21c/packages/5.0.0/vmtools/freebsd.iso
./vmfs/volumes/4ecd256f-1c17889b-6094-000c291ae21c/packages/5.0.0/vmtools/darwin.iso
./vmfs/volumes/4ecd256f-1c17889b-6094-000c291ae21c/packages/5.0.0/vmtools/linux.iso
So no difference for 2003 and 2008 R2 🙂
Cheers
Valentin
bobbdamercer says
Does this mean that ‘windows.iso’ is used for Win7, Win2003, and Win2008??
Michael says
Yep