This Easter weekend, having a bit of downtime, I decided to convert my virtual infrastructure at home from VMWare Server to Hyper-V. The major blocking issue was a lack of RAID controller drivers from 3Ware for their 9650SE-series cards, but thanks to Justin Ho it seemed like I was good to go. The timely release of Hyper-V RC0 meant that I could use an updated version of Hyper-V, and also install my Windows Server 2008 machine using my local en-au settings rather than en-us.

The servers that I had running where:

  • Server1 - Windows Home Server
  • Server2 - Exchange 2007 (Windows Server 2003 x64)
  • Server3 - Operations Manager 2007 + WSUS (Windows Server 2003 x86)
  • Server4 - ISA Server 2006 (Windows Server 2003)
  • Server5 - Domain Controller 1 (Windows Server 2003)
  • Server6 - Domain Controller 2 (Windows Server 2003 x64)

To speed up the conversion time, I removed DC2 from the domain (and recreated it as a brand new VM at the end of the process. It is now my first Windows Server 2008 DC). I also removed the Operations Manager 2007 machine (and recreated this on Windows Server 2008)

The steps I used to convert these VMs:

  1. Made a backup of all my virtual machines before I started!
  2. DCPromo DC2, and remove it from the domain
  3. Uninstall Operations Manager clients from all managed servers, then remove Server3 from the domain
  4. Uninstall the VMWare Tools from each remaining virtual machine
  5. Shutdown all remaining machines and make a backup of the VMDK files (again)
  6. Convert the VDMK files to VHD files. You can use System Center Virtual Machine Manager (SCVMM) to do this. Alternatively I used the free VDMKtoVHD tool from VMToolKit. Note that if your VMDK files are pre-allocated fixed sized disks, they will become dynamically expanding VHD disks after the conversion (empty space isn't converted)
  7. Configure my 3Ware 9650SE RAID controller BIOS per Justin Ho's instructions (see earlier)
  8. Format my arrays, and install a brand new copy of Windows Server 2008 x64
  9. Install the Hyper-V RC0 update
  10. Install the Hyper-V role, as well as desired features (Backup and PowerShell)
  11. Create the necessary virtual networks in Hyper-V
  12. Create new virtual machines using the newly converted VHD files and boot the machines

Some issues that I discovered:

  • My VMWare machines were using SCSI disks connected to a SCSI controller. Unfortunately booting Hyper-V machines requires IDE disks at the moment. Since the IDE mass storage controller wasn’t set to start in my VMs, they Blue Screened with STOP 0x7B (Inaccessible_Boot_Device). I fixed this issue by inserting the OS setup CD and doing a repair on the OS.
    EDIT: Steen has a great tip below for how to get around this issue. It requires you to add a dummy IDE disk to your VMWare VM prior to do the conversion (to get the IDE mass storage controller into a started state)
  • There appears to be an issue with guest OSes talking to a virtualised ISA Server when all the machines are using the new VMBus NICs and the NICs are connected to a Private or Internal Hyper-V network (the issue doesn't appear to manifest if the NICs are bridged to a physical NIC). Networking doesn't work to well, and when running ISA's monitoring tools, packets are missing. To fix this issue, I changed the NICs on my ISA Server that were connected to Private or Internal networks to using the Legacy (Intel 21140) NIC. Since ISA Server 2006 only runs on Windows Server x86, there are supplied Intel 21140 drivers on the Hyper-V Integration Services disc.

So this was the picture beforehand:

VMWare To Hyper-V (before)

and this is the picture aftewards:

VMWare Server to Hyper-V (after)

Performance appears to be much snappier under Hyper-V compared to VMWare Server, especially with respect to Disk I/O. Additionally, I can now backup my virtual machines when running (well, I hope I can) using my new RD1000 device.