VMware and 64-bit Virtual Machines

March 16, 2009

in Tech,VMware

I recently was asked to setup an ESXi server and a couple of 64-bit Windows 2008 servers for a client.  I knew 64-bit was supported on the hardware and I knew that ESXi supported 64-bit guests so it seemed like no big deal.  The first step, installing ESXi, was uneventful and quick.  Next I created the new Virtual Machines and mounted the ISO.  This is where things started going down hill.  When I powered up the Virtual Machine, it would stick on 95% of the power on event.  After three or four minutes the power on event would error off.  When I looked at the error message it mentioned one of the virtual CPU’s and a little further down in the error mentioned 64-bit.  At this point I should mention that the server I was working on had 2 physical processors in it, each being dual-core.  Some googling lead me to a Knowledge Base article on VMware’s site that talked about the requirements for running a 64-bit guest on VMware.  Scanning through the article there was one thing that caught my eye.  It was a note under the Intel section:

“(2) In multi-processor systems, all processors must support compatible VT implementations. At a minimum, all processors must implement the same VMCS revision ID. In multi-processor systems with mixed processor steppings, 64-bit guest operating systems may not be supported.”

As I scanned the rest of the article, I meet every requirement that was listed. I saw nothing else that it could be.   So as a quick test I pulled one of the processors out and powered the server back on.  Sure enough the Virtual Machines started right up and Windows Server 2008 was able to install with no problem.  Sticking the second processor back in prevented the Virtual Machine from running.  A back and forth with IBM and VMware followed.  IBM said that the CPU stepping could not be the issue and even ran a utility at one point that said the steppings between the processors were the same.  VMware said that it was a hardware problem and ran one of their utilities which showed the CPU steppings to be different.  In the end, IBM replaced the second processor with a CPU of the same stepping and everything worked perfectly.

I am not saying that this will be a problem with all multi-processor systems that you want to run 64-bit Virtual Machines on.  I have installed them on other multi-processor systems with no problem.  I believe that you may even be able to run them on a system who’s steppings are different.  I believe that the determining factor will be how far apart the steppings are.  Hopefully this post will save you some time if you ever come across this problem. If you have stumbled across this then please let me know in the comment section.  I am curious how common of a problem this really is.


Previous post:

Next post: