Hyper-V

I started to switch my virtualization hosts over to Server 2008 about two weeks ago; and I’ll give you some feedback on my experience.

The first thing you’re going to find with Hyper-V is that migrating your old virtual machines to Hyper-V isn’t particularly easy unless you want to purchase Microsoft’s virtual management server — quite a large expense for most users.

You can download a tool called VMC2HV (that converts Virtual Server / Virtual PC VMC files to Hyper-V format) and that will make it fairly easy for you, but there are still some things you need to watch for.

Before I talk about VMC2HV, there are some setting in Hyper-V you’ll want to change right off.

  • Set the path for your virtual machine configuration files.
  • Set the path for your virtual disks.
  • Setup a virtual network (you may need more than one depending on your configuration).

When using VMC2HV:

  • Make sure you tell VMC2HV where you want your Hyper-V files (and how you want to organize them).
  • Decide where you want to store your virtual disks (don’t store them under the virtual machine directory, put them in a separate tree.
  • Make sure you check the “swap SCSI 0 with IDE 0” box; if you used SCSI drives on Virtual Server, you need to remember you can’t boot from anything but IDE on Hyper-V; any additional disks you have can (and should) be SCSI.
  • Correct the virtual disk paths (and file names) if you’ve changed the location of the files.

I found that VMC2HV worked well… but it was far from perfect.

After you finish with VMC2HV you’ll need to setup the virtual network manually, and you’ll probably want to check all the setting.

VMC2HV certainly made it easy for me to jump start, but then I found that just recreating the virtual machines under Hyper-V was just about as easy.  The only “difficult” thing with the Hyper-V interface I’ve found is that getting it to put the configuration files where you want them is a little tedious, but eventually you’ll get the hang of it.

__________

I’m running Hyper-V on machines with: Intel Q6600 (Quad Core2 65nm) with 8GB of DDR2 memory (Corsair DHX) on Intel DG33TL motherboards and hardware RAID5 (fifteen spindles or eight spindles — I’ve two machines with each configuration).

I find that giving each virtual machine two processors makes them much more responsive, and even running far more cores than I actually have doesn’t swamp the host processor (most of the time my virtual machines are IO bound, waiting on network responses or dealing with disks).

Most likely for a home (or small office) virtualization server you’ll find what I’ve shown several of my clients — invest in memory and spindles.

  • If you can avoid any paging in the virtual machines you’ll see much better performance (so don’t give the machines more memory than they need and you have, and don’t create a paging file).
  • For any virtual machine that reads and writes the disks heavily the more spindles that make up the host volume the more current IO you will have, and that mean you’ll be able to sustain a higher IO rate.  And if you use RAID5 you get fault tolerance on your virtualization store.

__________

Installing the Hyper-V integration files is also a bit of a pain.  The Microsoft Virtual Machine Manager will do it automatically, but for those who don’t want to spend the money on something that is probably far more than you need you’ll have to do it by hand.

First you have to remove the old VMadditions that were put there by Virtual Server or Virtual PC.  If you do that before you move the files off your old machine it’s easier (you won’t have a mouse or network under Hyper-V until you complete the installation of the integration files).

Second you will upgrade the HAL, which is done automatically the first time you try to install the integration file (once you do this, there’s no easy way to go back to Virtual Server or Virtual PC, so save a copy of your boot VHD if you’re not sure).

Third you will install the integration files (which install the Windows Driver Foundation; and that’s the only problem I saw — apparently if the temporary directory doesn’t get created before WDF install runs, it fails — check you log files for more information, and just create the temporary directory by hand and re-run the setup for the integration files).

When you have the integration files install and reboot the machine should be working perfectly.

__________

I’m seeing a rather dramatic speed increase in my virtual machines using Hyper-V; which is really surprising since IO on the boot drive should be slower (since it uses IDE) than it was with Virtual Server (which used SCSI — highly para-virtualized).

I suspect that overall the way Hyper-V is built (you can read white papers on Hyper-V if you’re interested; you’ll also notice that Hyper-V and Xen conceptually share a similar architecture) is responsible for the speed increases; and the fact that you can allocate up to the number of physical cores you have to a guest machine or run 64-bit operating systems and software under Hyper-V you can really build out a virtual infrastructure which has great performance.

__________

Overall I’m pleased with Hyper-V, and have found it much easier to use on Server 2008 than trying to start with a Hyper-V Server (Microsoft gives away a version of Server 2008 which can only be used as a virtulization host; unfortunately you have to remotely administer it, and that isn’t as easy as it should be — it does work, but the learning curve is a little steep).

My feeling is that there will be a significant update to Hyper-V soon, adding more device support (and para-virtualization).  And the real question is:  Why isn’t there Hyper-V for Vista?  The two operating systems derive from a common code base, and certainly for developers having Hyper-V on a Vista workstation makes more sense, and since Microsoft gives away Hyper-V server they can’t argue that it will cannibalize sales!

Originally posted 2009-02-03 01:00:13.