One of the perks of my job is that I get opportunities to play with lots of new stuff, sometimes before I really should. I have been running the betas of Server 2008 for quite a while, and cut over one of my servers to RC0 just as soon as I could get my hands on it. But I have been cautious on Hyper-V. Until now. But if you are thinking about it too, read on. Depending on what you want to do you might be better off waiting.
Where I Am Now
I have an x64 server which I ship around for use in my training classes. A nice rack-mount dell with a quad processor and 8GB of ram , raid drives, and all that. I run Windows Server 2003 R2 SP2 as the base OS image, which serves up a stand-alone AD Domain, DHCP, and DNS , and File Server functionality for the class within that OS. On top of that I run Microsoft Virtual Server R2 and a slew of both server and desktop OS VMs. Since we do a lot of application sequencing in these classes, we have lots of these buggers for sequencing and client test machines, plus a couple of SoftGrid servers and a database server thrown in. This setup works well, although in a full class it is probably reaching the point of performance maximus.
Where I Want To Go
So being under the weather this long weekend (St. Patricks day being Monday) with a cold what a better thing to do while laying around that rebuild the thing. Sure, the Hyper-V part is only beta for now but it is there in the product release of the server so it's got to be pretty good - no? I want to check-out the performance of Hyper-V, plus I really want the functionality of the Terminal Services Gateway. So Friday night I work on the plan.First, I make sure to skim Rubens post (https://www.brianmadden.com/opinion/Microsoft-Windows-Server-2008-Hyper-V-solution-overview) and then download the release x64 version of 2008 with Hyper-V. Also, I back the VMs up, just in case. Then I am going to upgrade the base OS to Windows Server 2008 x64. Turn on Hyper-v which makes my base OS become the primary partition. Then I will just import those VMs and test. Sounds easy! Umm. Let's look at the documentation a little first. I remember reading something about a domain controller in the primary partition and I might have to move that.
A Long Journey Starts With One Small Step
Saturday Morning. OK. There is a section in the read-me about AD. Nothing about an issue with it being in the primary partition, but now I am thinking that the problem was if you used Windows Core as the primary. I like the idea of Server Core as the primary, but I am basically lazy and have a perfectly good domain controller already built that I loose if I go that route. Also, while Dell has tested this hardware with 2008 and Hyper-V, they have not provided updated unintended install software. I should do a clean install, but I'm not going to (besides, I can always blow everything away again and start over).
More reading about AD. The Windows Server 2008 must be in a domain that is prepped for 2008 with schema changes. It gives instructions on how to do adprep on the forest and then the domain. The first command fails because my 2003 AD was set for mixed mode to support my 2000 Sql Server VM. Fix that, then upgrade the rest of it as documented. Check.
Now to install. Select full upgrade on the same partition and the rest is really simple. Server reboots at the end and seems OK. However, nothing about a hypervisor yet. Turns out that you use the Server Manager within Windows 2008 to add this in as a role. By the way, Server Manager is like 17 times more cooler than the "Configure Your Server Wizard" ever was. This takes two reboots to accomplish.
A Small Stumble
Saturday Afternoon. But now my networking is all messed up. First, every adapter seems to now be set for DHCP. I have two NICs, one is supposed to be set for DHCP (this connects to the hotel LAN for internet access), while the second is supposed to serve up DHCP (to a wireless router for user laptops). Fix that. Oh, then I realize that I had used ICS to connect those ports and that was knocked out too. Look for that… Give up and google it… Find a posting where someone says that with 2008 you should use Routing and Remote Access instead of ICS. Oh fun. More to learn.
Routing and Remote Access is another role you can add in. This is two features. A software router, and Remote Access Server. I don't need the later. I had problems figuring out how to configure it at first. Eventually I "disabled" it and then all the configuration options seem to be present. A little bridge here, a little NAT there, a little RIP tossed in but then taken back out. Manually set up the DHCP role also. And now my routing is set back up the way I wanted it. It was a lot less work with ICS, but it is up and running fine now.
The Bell Lap
Saturday Night. I think I can see the finish line. I start thinking about VMs and wonder what happened to that Virtual Server that had been installed. Well it still is. So I uninstall it before something bad happens.
And now to import my VMs. Import fails. Try another. Same result. Hello google… Seems you can't import from Virtual Server, only exported Hyper-V VMs. What is up with that? Eventually I figure out that you can create a new VM and attach the virtual disks from Virtual Server. OK - let's go there.
Sunday Morning. Start with my Sql2000 server. Boot it up and… Blue Screen. Try a 2003 server since that one is 2000. No blue screen there, but it consumes a complete CPU. It also want me to re-activate the license because of hardware changes, but it gives me three days, which is good because the network isn't working in the VM. Uninstall the "virtual server extensions" and install the "Hyper-V Integrations" (always a challenge to remotely use windows without the aid of a mouse). Now I find that the network connection settings here are blown away. Fix that. Re-activate. All is well here. Do a second server VM.
Try a Vista VM. Upon login, this also wants me to re-activate the license, but won't give me three days. Must do it now or it won't log-in. But can't validate because I need to log-in to fix the network. There is a phone option, but it is Sunday.
Develop a Cramp
Sunday Afternoon. Move on the XP. Most of my VMs are XP. Same thing. Arrgh! Create a fresh XP image instead. Log in, try to install the hyper-v integration. It's a beta, remember? Only Windows 2003 with SP2 (with or without R2) , and Windows 2008 are supported (also some Linux, but that requires some special software). No Vista, no XP, and surely no 2000. I can live without 2000. I can live without Vista. But not XP. And the CPU usage of a VM without the integration is way too high to use in the class. I have no choice, but to back off of Hyper-V.
Falling to the Pavement to the Groans of the Crowd
Monday Morning. Uninstall Hyper-V, and a couple of reboots later, it is gone. Have to re-fix my network connections again. Install virtual server and run the old VMs. A few blue screens later, lots of diagnostics, followed by panic as I just rip stuff out until it stops. Then add stuff back in and everything is running again, except that remote displays flake out constantly. After a few hours of troubleshooting that (including removing the NIC drivers and reinstalling) it hasn't gone away and I'm going to have to move to plan B where I blow it all away and start over for the base OS.
Better Luck Next Time
Monday Night. It may have been painful, but the adventure was till worth it for me.
In my rebuild, I am still going to go with Windows 2008, but I'll just keep Hyper-V out of the picture until the final release. I'm sure that Hyper-V will be OK when released and will improve my performance. I do appreciate that they have moved to using multiple snapshots (very important when sequencing). As it stands, Hyper-V looks good as long as you only want 2003 and 2008 server VMs. And I'll read Ruben's posting more closely next time too.
Oh, and for those wondering why I didn't try the Xen Hypervisor, it is because the copy Citrix distributed is only good for 4 VMs.