My initial situation consisted of my host server Morris running Windows Server 2003 x64 with SP2. The box contains two disk spindles:
* Spindle 1 is a RAID 0+1 set containing the host OS and VMs
* Spindle 2 is a RAID 5 set containing the data
The old morris was both running as the the file server and the host for the VMs. Morris was also a member of the AD domain, of which the DC was running as a VM on the same box. This was not an ideal situation. That’s why I decided to change a few things:
* The new host will only be the Hyper-V host and not a member of the domain.
* The new file server will be running in a VM with direct access to the RAID5 disk spindle
The VM’s on the box are five VMs running Windows Server 2003 R2 with SP2 with seperate rolls in the infrastructure:
* DC with RADIUS, DNS and Certificate Services
* Exhchange Server
* Terminal Server
* IIS Server
* ISA Server
The ISA Server has both an external and an internal connection to connect the Internal network to the Internet. All other VM’s are only connected to the Internal network.
Before I started upgrading, I made sure that all VMs are running the latest VM additions. I had been told that you may encounter blue screens when your VMs run older versions of the VM additions.
The upgrade process contained the following steps:
1. Remove the old host OS and install Windows Server 2008 x64 with Hyper-V
2. Configure the new host (named TAFKAP) IP, hostname etc.
3. Add the Hyper-V role
4. Define the hostnetwork and virtual switches for the new VMs
5. Define the data disk as Offline with diskpart
6. Create new VM’s for the existing VHDs
7. Upgrade VM Additions to Hyper-V
When defining the network adapters used by Hyper-V, Windows Server 2008 creates a virtual switch for each NIC with the same name. On the host a new virtual nic is created connected to each virtual switch. As my host will only use the NIC that is not connected to a Virtual switch, I disabled all protocols on the three new virtual NICs on the host.
Here is the first catch: Even though each virtual switch has the name of a physical NIC connected to the network, still each virtual switch is NOT connected to the physical NIC. You must change the configuration of each virtual switch in the Hyper-V manager to enable LAN connectivity for your VMs.
Creating new VMs
Hyper-V does not understand the VM configurations from Virtual Server 2005 R2. So all you can do is create a new VM in Hyper-V and connect each new VM to the existing VHD from the "old" VM. This is a very straight forward operation in which you create the VM, connect the network and the VHD and voila here is the new VM.
Upgrading VM Additions
Here comes the painful part of the migration. You may think you’re almost there when you first start you VM in Hyper-V. This is where trouble starts. Your old VM might not be running the latest VM additions. In that case you may run in to a BSOD in the VM. You then must start the VM in Virtual Server or Virtual PC and remove the VM Additions. Also make sure your runs Service Pack 2 on Windows Server 2003, otherwise Hyper-V refuses to install its VM additions.
Even when you have taken the right precautions, installing VM additions became a challenge for me:
My host is based in my basement. That’s why I remotely connect to the host using Remote Desktop. My VMs were still running the VM additions from Virtual Server 2005. When I initiated the installation of Hyper-V additions, the procedure told me to uninstall the old VM additions first. No problem, until I found out that the network and the mouse were not working in the VM. Yes I know how to open the Control Panel and got to Add/Remove Programs from the keyboard. But there is no keyboard shortcut to tell Windows that the selected application must be removed! I managed to uninstall the old VM Additions from the commandline using msiexec. I went to %windir%\Installer and managed to find the MSI from the VM Additions (which has a different name on each system, but is approx. 900 MB). Then run "msiexec /i <vmadditions.msi>" and click Enter to remove the software.
After the VM restarted, the mouse and network still didn’t work. Plug an Play finds the new NIC, but has no driver yet. Windows starts the add new hardware wizard, which you must cancel. If you don’t cancel the wizard, the Hyper-V Additions installation will wait forever until the wizard ends.
How do you stop the "add new hardware" wizard without a mouse?
The easy way would just say: "Press Escape on the keyboard". But we have an issue here. The wizard is not in focus and Alt-Tab does not work here. Press Ctrl-Alt-Del and start the Task Manager. Move the focus to the "add new hardware" wizard and press the "pull down menu button" on the keyboard. Select "Bring to front". You can now use the Escape key from the keyboard to cancel the wizard.
After canceling the wizard, the Hyper-V Additions installation will resume.
Installing the Hyper-V file server with physical disk access
Installing the file server was a breeze. First I created a new VM with a single disk for the OS and installed Windows Server 2008. The installation went smooth but very slow. I think it took about three times as long to install the VM from an ISO than it took to install the host from DVD.
After installing the OS, I linked the physical disk – that I took offline in the host – in the VM properties. Now I was ready to run the file server. I created the shares and was ready to run. I absolutely didn’t like the share creation wizard in Windows Server 2008. I’m not sure if it is just me, but I like to know what I am doing when I create a share on a server.
After upgrading each VMs addtions to Hyper-V I needed a couple of reboots on VMs and on the host to get a stable situation. It seems there is something going on with the Broadcom Nextreme II NIC that came with the Dell PowerEdge 2900. I have an extra Intel dual port NIC in the system because of trouble I had with Virtual Server 2005 R2 in an earlier stage. More about this issue later.
Thinking back, I think it would be better if I uninstalled the VM Additions before I loaded the VHDs in Hyper-V.