This article is a personal look at trying the Microsoft Hyper-V Server. It is not a formal "review", but more of a personal observation, in trying to use the product differently than perhaps Microsoft intended.
In this article, a look at trying the free Microsoft Hyper-V Server on a notebook computer shows that it is not for the faint of heart. Quite frankly, I don't think it is "ready for prime time" without some serious work to provide better management capabilities. The inability to create, start, stop, and access VMs running on Hyper-V Server from the Hyper-V Server Console itself is the real culprit. Instead, you have two options:
- Install and configure either SCVMM on another machine and manage from there.
- Install the Hyper-V Remote Management Console on a Vista SP1 box and configure.
As is shown in the post, the "configure" part of the second item may also prove impossible in certain situations (at least today). Hyper-V server also does not support wireless networks typical for a notebook, although I have seen posts that suggest you might be able work-around this issue.
The "Problem Statement"
My daughter came home from college for Thanksgiving weekend and made a request. She has a laptop with Vista on it and decided that she is sick of Vista. So she wanted me to back up here drive so that she could install Linux instead. But she wants the backup restored when she comes home for Christmas because there is this new game coming out and it won't run on Linux (at least not for a few extra months).
I could have spent the time talking to her about her issues with Vista and helping her get past them (UAC was number one on her list and that takes about 30 seconds to fix), but she also informed me she was switching majors from music to computer science so it probably isn't a bad idea for her to get some technical skills. Also, we could have gone with a non-hypervisor solution like Virtual PC or VMWare Workstation, but she already has so much stuff loaded into Vista on login that adding a VM on top of that might be slow.
Besides, I have been looking for a reason to try out the new, and free, Hyper-V Server. The laptop has an x64 AMD processor and a couple gig of ram, plus ample disk space. So I could back up Vista, install the Hyper-V Server, then load Vista in as a VM and show her how to add a Linux VM. Then she can go back and forth as she wants with little overhead involved. Sure, I figure it will probably eat up much of the weekend, but there is only so much turkey one person can eat.
A Diversion to Perform a Backup
First, we want to perform a backup of what we have. Always wanting to try something different, I remembered that I have a whole bunch of tools in the SCCM 2007 R2 VM that I have for playing with App-V. The R2 release adds a bunch of imaging stuff so I start by looking there. It turns out that it isn't so much R2 I am looking for as much as it is one of the pre-requisites I had to install to get to R2, WAIK ("Windows Automated Installation Kit for Vista SP1 and Server 2008", download at http://www.microsoft.com/downloads/details.aspx?FamilyID=94bb6e34-d890-4932-81a5-5b50c657de08&DisplayLang=en) .
The documentation with WAIK teaches me how to build a Windows PE bootable disk to perform the backup of a drive onto a network share. Cool. WinPE is the foundation used by the Microsoft Windows Installers when you install a machine from a CD/DVD or ISO. It boots a mini-OS (not too unlike DOS) into a ram drive. Normally, you use this to install an OS, but once booted, you can do just about anything. It understands the NTFS file system on the disks and you can run 32-bit command and even some windows programs including rescue virus scanners. I am wondering if maybe I should use this to defragment my windows partitions while the drive is not in use this way? Maybe for another day. Today, I just copy the imagex.exe program that comes with WAIK which I will use to do the backup of the C: drive the image of the Vista PC into the image I am creating. When the image is ready, I create a bootable ISO image and burn it to a CDROM.
I boot the PC with the CDROM. You get a DOS like shell that drops you into a X:\Windows\System32 folder. I don't expect wireless to work but I hope the ethernet NIC works. Run "netstat -r", check "ipconfig". It does not see a network card.
Drat. Have to boot back to Vista to locate the NIC, then off to the manufacturer to get a driver for it. If I was good, I would add the driver into the ISO, but I am not good. I plop it on a USB stick and hope I can access it from there after I boot to WinPE. Boot to the WinPE image, plug-in the USB stick. I can see it the files on the USB Stick. Install the driver. I get a DHCP address and can access the network. Sweet!
Now I run a couple of commands to gain access to a network share and make a backup.
Net use \\backupserver\share\backupfolder password /USER:domain\username
Imagex /capture c: \\backupserver\share\backupfolder\backupC.wim "Drive C" /verify
This creates a compressed backup of the C: partition to the file named backupC.wim on my server. Next up, Hyper-V Server. I am free to mess up that system as I know I can easily restore it to it's current state.
Hyper-V Server (http://www.microsoft.com/servers/hyper-v-server/default.mspx ) is the free barebones hypervisor and parent partition that Microsoft decided to give away free. It is basically the same hypervisor used in the Windows 2008 Server with Hyper-V, except it can be used on a machine without Server 2008. It is more limited, such as only 4 VMs and no more than 4 processors or 32GB of ram -- but we can live with that. It also doesn't provide any licenses for VM OSs, but here we are OK. It is intended for things like lab use, but I'm hoping that home use will be OK too.
Hyper-V server provides a "parent partition" OS that is very bare bones. Microsoft claims it is not windows, but it you thought it seemed like Server 2008 core with even more stripped out you might not be far from the truth. It basically has the network and IO stack to support Hyper-V, plus a very bare bones based User Interface is designed to pretty much only create and manage VMs as well as manage the parent partition.
I download the ISO for Hyper-V Server from Microsoft and burn a DVD image. Even though it is a small hypervisor and small OS, it doesn't fit onto a CD. I boot the machine, pass through the license click-through. When I get to the screen that provides a choice between upgrade and install, I notice that the upgrade option is not available. A note on the page informs me that upgrade is only available by running setup in the current OS. One of the things I could not find in on-line searhces was whether I would have an option to install and have the existing OS "P2V" into a VM. Seeing the note on the bottom of the page about running setup in the current OS for upgrade I decide to try this out.
So I boot back to Vista and try to run the setup from the DVD. No dice. The Vista OS is 32 bit and I can't run the setup.exe which is 64-bit I suspect if I had a 64-bit OS running this might have worked.
Boot back to the DVD. Microsoft has made this install so simple. If you need pictures, this link
is an article that shows screen shots that follow what do to install in the following steps.
I select Install this time, reformat the partition and install. I think it took under 15 minutes. I now find myself sitting at a blue Ctrl-Alt-Dell screen. Provide the three finger salute, it prompts for a name and password. Since I formatted the hard drive it can't remember the one from vista. I try blanks, no luck. Try the old one (just in case), no luck. Try "administrator" with no password. I get what looks like an error, but it is just a box telling me I need to change the password. Type in the new password (one that requires more complexity than the old one)and complete the login.
The User Interface reminds me of the days of Windows 3.1.1. The UI consists of a grayish graphical background, and two cmd windows open. No start menu. One cmd window has a black background and is sitting at a command prompt. The other has a convenient blue background and is running a script (HVSetup.wsf) that gives me menus to manage the box. If you click on the minimize button of a window it minimizes to the bottom of the screen much like Win3.1.1 did. You can also ctrl-alt-del to the task manager and start a command, such as extra cmd windows.
The blue window also has an error message telling me that no active network adapters have been found , but more on that later. For now, let's look around.
The blue window script menu provides the following options of things I may do:
- Computer Name
- Network Settings
- Add Local Administrator
- Windows Update Settings
- Download and Install Updates
- Remote Desktop
- Regional and Language Options
- Date and Time
- Log Off user
- Restart Server
- Shut Down Server
- Exit to Command Line
Shows screen shots of how to use most of these commands, but they are pretty self explanatory. Looking into the script, you have interfaces into basic commands like netdom.exe and control.exe (with cpl files).
Looking at the c: partition of the hard drive from the other cmd prompt, I find that it defaults to the C:\Users\administrator folder. Looking around, I find the "Windows" folder. And a "Program Files" and a "Program Files (x86)" folder. OK. So the parent partition is a 64 bit OS that definitely looks like it was once windows. The Windows folder has only three exe files. Regedit.exe is the only familiar one. The System folders looks very much like a normal windows System32 and SysWOW64 folders with all your favorite commands. Except explorer.exe, mmc.exe. I particularly bemone the lack of MMC. I even see a .NET folder, but surely there can't be .NET on this thing? Msinfo.exe provides a windows serer version that is 6.0 based (I forgot to write down the number).
Getting the NIC working
OK. Back to the problem at hand. Plop in the USB stick and use the back window to install the NIC driver. The installer I used was a win32 program so I wasn't sure it would work in the mini-OS provided. But it did. Sweet! The installer ran without an error, but the menu still said it didn't find an adapter. So I reboot.
Oh Shoot. The parent partition is running in 64 bits. While the 32-bit installer can run, the driver has to be a 64-bit driver. The Win-PE boot was in 32-bits so I didn't have that problem then. Back to the manufacturer, this time for the 64-bit drivers. Fortunately HP supports 64-bit Vista on this notebook (CQ50z). So I grab all the drivers since it looks like they all should install. Most of these drivers installed just fine. The modem driver didn't install, but who uses a modem any more? I'll ignore it. After installing the drivers and rebooting, we get Ethernet working, The wireless isn't working, although the LED now works when I turn it on and off. Need to figure out how to configure the connections...
Hyper-V server doesn't support wireless cards. Grumble, Grumble, I think I remember hearing that. But I'm not dismayed, after all, this is a windows-like OS, right? I find this article on the net:
Which leads me to believe that I can probably work-around this issue, once I have my Hyper-V Server set up and a VM to work with. In the post, John Paul Cook explains I have three options.
- ICS, which uses 192.168.0.1 and thus won't work everywhere.
- RRAS, which requires a bunch of configuration.
- A hack suggested by someone named Ken.
I plan to go the hack route, but leave the details until I get to the point that I can start trying it.
How to Create a VM?
Got to create some VMs. The remote Hyper-V manager for vista and the Server Manager console on the regular Windows Server 2008 are MMC based. Not finding mmc.exe on Hyper-V server, I decide to connect remotely using the hyper-v manager tool on my own vista desktop that I use to work with the regular Windows 2008 servers with Hyper-V to get me up and running. It does not occur to me (yet) that without a tool in the parent partition you can't take the notebook on the road because you could never access the VMs!
The Remote tool refuses to connect to the Hyper-V server. After a while, I realize that the firewall is on the Hyper-V Server host partition. I find the "netsh" command is available, and use it to temporarily turn off the firewall ("netsh firewall set opmode mode-DISABLE"). Try again. Now the manager connects, but complains that the RPC service on the computer is not running. I check this by using the net start command - it is running. I had dealt with this problem managing the Windows Server 2008 with Hyper-V in my lab. John Howard had an exhausting 5 part post that details what to do. I find the post and discover that John has written a wonderful script tool (HVRemote.wsf) that simplifies things into two easy commands.
Ultimately, I gave up trying to get the remote connection to work. The notebook was in a workgroup and my managing laptop is in a domain, which complicates things quite a bit . In the end I was able to create VMs and manage networks remotely, but never did get to start a VM. The problem, in a nutshell is that John's work makes assumptions that didn't work for me (not that I am complaining about John's tool.) We also had a DNS issue to work around. I am sure that given another few hours or days I could have gotten this connection to work, but…
- It really shouldn't be so hard
- I realized that without something in the parent partition to manage and access the VMs this effort was going no-where.
- My daughter wanted her notebook back. NOW!
I left her on her own to install Linux and discover that the notebook has a too-new wireless card that people are struggling to get to work. She managed to get it working as I wrote this blog article! It reminds me that I'm going to have to take another look at Linux again soon.
I need to have VMs available to me when I am on the road to demo stuff. The idea of having a bare-metal hypervisor on my notebook rather than one that runs inside the host partition is fantastic. That I might be able to use a free one rather than install a full Server Core to get one is the right direction. But what Microsoft has released with Hyper-V Server does not cut it. The inability to manage and access VMs from the parent partition makes it a non-starter for this purpose.
Keep in mind that Microsoft didn't release Hyper-V Server to be used this way. They were thinking corporate lab environments. But in a lab where the full tools are in use, I still think that workgroup and multi-domain issues are likely to make the setup take far longer than it should. Labs are normally not set-up using the production domain. I suppose once you get past the issues this presents, this might be a reasonable tool.
I hope that Microsoft will be delivering better tools for the Hyper-V Server. If not, other vendors will have better solutions.