Because of a fun new project I’m working on, I’ve been starting to get my hands dirty with Windows Server 2008 and the beta version of Hyper-V this week. So far, I’m impressed — Microsoft has clearly put a lot of work into virtualization and this product appears to be much smoother than Virtual Server 2005 R2 SP1 (MSVS) or Virtual PC 2007 (VPC). Big wins include:
- Better virtualization. Even when I was starting up a baseline Windows Server 2003 virtual machine to prepare it (strip off the old MSVS VM additions and install the corresponding Hyper-V Integration Services), the VM was very speedy and responsive. The host is a dual-core Athlon64 workstation with 8GB of RAM and two SATA hard drives (one for the OS, one for the virtual machine images). No metrics, but the bare VM booted and felt snappier than it did under MSVS.
- Built-in snapshot facility that makes use of VSS. You can take snapshots of running VMs. I can’t wait to see the DPM agent upgraded to provide Hyper-V support.
- Better networking support. It’s a lot less painful to get multiple networks and interfaces working properly, and by adding RRAS to the host OS you can get some sophisticated networking going. The VMs now support real Gigabit Ethernet speeds and it appears to support VLAN tagging, which will make a few folks happy.
- MUCH better administrative UI than MSVS — not that this is hard. I’ve never been a fan of web-based UI (unless they’re built on AJAX, and even then, most of them are less than impressive). Going back to an MMC application is just fine with me.
However, there are still a few things that either haven’t been adequately addressed or (worse) took an active step backwards from MSVS:
- The best feature, bar none, of MSVS was the Virtual Machine Remote Console (VMRC). This little app was built on top of the same ActiveX control that the web-based console used, but had so much nice functionality built into it. For example, did you know that under VMRC, you had a virtual KVM switch — just by pressing Host + Left or Host + Right, you could cycle through all of the VMs running on the currently connected host machine? I LOVED that feature; it kept my desk uncluttered when I was working with six VMs at a time, unless they were running on different hosts. The new Virtual Machine Connection application seems to be locked into a single VM-per-instance model, which sucks.
- Speaking of the Virtual Machine Connection application, who named this? We already have the VMC (virtual machine configuration) acronym in use with Microsoft virtualization. This is just a pointless, confusing name change just for the sake of changing things.
- And let’s not forget that we’ve taken away the Host key — to send Ctrl-Alt-Del to the guest VM, we have to type Ctrl-Alt-End, which neatly prevents that key mapping from being used on the machine running the client. At the very least, Microsoft, give us the option to use the old VMRC key behavior. Some of us liked it a lot.
- There still seems to be no way to pass hardware on the host through to a guest VM. This is essential for full virtualization support — being able to pass USB peripherals or SCSI controllers and chains through to VMs and have them appear as hardware in the guest VM would be VERY useful in a lot of situations. Without this capability, using Hyper-V for high-end enterprise virtualization is a joke. Heck, I can do this in Parallels on Mac OS X — plug in a USB headset and it will ask you if it should be joined to the host Mac machine or the Windows guest VM. Hyper-V (and the eventual Virtual PC version that uses Hyper-V technology) should be able to do this too.
Flaws aside, Hyper-V looks like it’s going to be a major step forward. This is good, as we use a lot of virtual machines here, so having a stable and easy-to-use VM solution is important for me.