Virtual Server 2005 R2 and hardware virtualization

Virtual Server 2005 R2 and hardware virtualization

  • Comments 6

As announced last Friday the Virtual Server 2005 R2 SP1 Beta 1 is now available for people to test.  One question I have heard asked a lot is: What does hardware virtualization support do for Virtual Server?

Before I answer this question I would like to give some background. 

Prior to hardware virtualization support the x86 (and x64) processor architectures have not supported native virtualization.  This has made writing software like Virtual Server / Virtual PC quite difficult.  The approach we have used to deal with this has been to try and virtualize as much of the processor as we can, and then to handle the rest with emulation.  Usually this means that we have been able to run any user mode code in the virtual machine directly on the processor (virtualized) but that we have to emulate kernel mode code in the virtual machine.

Now - in order to provide improved performance, our Virtual Machine Additions will (on Windows virtual machines) make appropriate changes to the guest operating system such that we can run the virtual machines kernel mode code directly on the processor too (please note that there are some major simplifications in the above statements).

Hardware virtualization support allows us to run all of the virtual machine code directly on the processor in virtualized mode (with a few edge case exceptions).  So getting back to the original question - what does this all mean for Virtual Server?

Well the first interesting point to make is that it does not make much difference for people running Windows virtual machines with the Virtual Machine Additions installed.  As I mentioned we had already managed to get these virtual machines running almost entirely virtualized (from a processor perspective). 

So what does get better?  Well - first thing to know is that since you can only load the Virtual Machine Additions after you have installed an operating system - so hardware virtualization helps greatly with the speed of operating system installation.   For example - on my Intel test hardware I have been able to install Windows Server 2003 in a virtual machine in approximately 18 minutes (not bad - eh?).  The second thing is that the performance of non-Windows operating systems is greatly boosted - as they now get to run directly on the processor too.

A final note - the hardware virtualization support being provided by Intel and AMD at the moment is for the processor only.  We are still using the same emulated devices - obviously this is the next big area for the industry to focus on in order to increase performance of commodity virtual machines.

Cheers,
Ben

Leave a Comment
  • Please add 2 and 3 and type the answer here:
  • Post
  • 1. Is "hardware virtualization support" the same technology that was formerly called Vanderpool (Intel) and Pacifica (AMD)?

    2. What is the relation between this and Hypervisor? What is Hypervisor anyways?
  • It's fustrating to see all this devlopment going into Virtual Server and seemingly non into VirtualPC

    I know you can't comment on release etc, so I though I'd just voice my views.
  • Same thought here. Is Virtual PC left behind? Long time and no update...
  • I had read that the design of VT included a "ring -1" so that guests could run at ring 0 and this would be a benefit. Or, is this still only for no-additions guests? Also, there are a few unsafe usermode instructions that were being "fixed". Or are they few and far between? Sorry for the vagueness.
  • Jonathan -

    1) Yes it is.

    2) This is something different. I will do a post explaining the difference some time soon (ish)

    James -

    Yes - it is the 'ring -1' that allows us to run kernel mode directly - so yes this is for non-additions guests only.  And as for unsafe user mode instructions - they are very few and far between.

    Cheers,
    Ben
  • I was wondering what is the relation between QEMU/kqemu (http://www.qemu.org/) introducing the full virtualisation support about two months ago (http://lists.gnu.org/archive/html/qemu-devel/2006-02/msg00078.html) and Virtual Server doing the same just now  :-)
Page 1 of 1 (6 items)