Huddling around the printer

Having very short hair, one of my cats is usually to be found in areas of warmth – atop CRT monitors, stereo monitors, sunbeams, etc.

She’s also fascinated by the printer when it comes alive and causes motion. She carefullys inspect the paper as it comes out.

Now, she’s learned that the paper comes from a place of warmth (it’s a laser printer). Her new habit seems to be come running when the printer activates, promptly shove the printout aside, and lay across the printer until no more heat is forthcoming.

Maybe I’m being told to turn down the air conditioning?

DSCF2004_2006-07-13_21-57-25.JPG

Exploring the practicality of workstation virtualization

I’ve been on a lengthy virtualization experiment, originally prompted by a desire to retire my old PCs to reduce noise and heat.  I tried out VMWare (Player 1.0, Workstation 5.5, Server 1.0 Beta, Server 1.0 Release), Parallels Workstation 2.1, and Virtual PC 2003 SP1.

Along the way, I also got in my head the notion that I could run most of my apps inside virtual machines, thereby better resisting driver problems and hardware upgrades.

I had a mediocre experience with Virtual PC.  The RedHat Fedora Core 5 install CD didn’t boot at all; it halted somewhere early in the kernel loading.  Debian Woody successfully installed, though.  Even using Windows, however, I found that on my desktop the VPC bootup sequence stalled my UI (mouse motion, etc.).  Other than that, it seemed acceptable.  While I have no real interest in RedHat, the inability (either in RedHat’s driver support or VPC’s support for RedHat) to run a Linux distro was disconcerting.  This was on a Windows host.

Parallels Workstation handled the previously mentioned three operating systems.  The price for Parallels is very good, too, virtually (ha) a two-for-one deal for the Windows and Linux versions.  Overall it seemed smooth, but as I intended to also do some development and deployment testing, I looked to VMWare’s snapshot ability with longing.  Regularly zipping up the virtual machine images is inconvenient and doesn’t scale very well – the disk space consumption would be enormous.  I was using the Windows version of Parallels.

VMWare Workstation, although expensive, works beautifully.  I really couldn’t find something I didn’t like about it: device support, snapshots, etc.  VMWare Player is essentially a light version of VMWare Workstation.  I initially tried Virtual Server while it was in Beta (it recently became a full release), but found Workstation easier and better to use.

Near the tail end of these experiments, I swapped over to a Linux host OS.  I figured if I was going to run everything inside a virtual machine, I should choose the fastest and most stable host OS.  While the performance difference may be arguable, Debian’s package management system definitely preserves stability over a long period of installing and uninstalling software.  I ran on Ubuntu, which is based on Debian.

I eventually settled on VMWare Server.  While VMWare Workstation has more advanced features, VMWare Server has many of the key characteristics I was looking for: ability to run headless VMs, snapshots, a good user interface to the VM desktops.  I only noticed Workstation’s Shared Folders and Team VMs (i.e. groups of VMs) missing.

In trying to pile all my activities into virtual machines, I learned of a couple serious limitations that ultimately led me back to using the host OS for desktop/workstation activities.

Sustained video and audio doesn’t work well.  While I could play movies and audio in a Linux VM and Windows VM, via the rich client VMWare GUI, it tended to be choppy, even with the VMtools acceleration utilities.

I had hoped to be able to connect to the Linux VM from the Linux host via the typical network based connectivity of X, but most movie players didn’t play at all. Performance also seemed sluggish. While VMWare successfully propagated USB devices to the VMs, the DVD burner wasn’t accessible.

Using the Shared Folders capability of VMWare Workstation, or a network file share in VMWare Server, was the biggest problem.  For raw computation or local activity, running inside a VM works really well.  Writing out of the VM, via the Shared Folders or a network share on a “fake” subnet shared with the host, was really slow.  I noticed that the speed of the network share improved from the beta to release of VMWare Server, but it was still about half the speed as running on a local hard drive and registered as a heavier load on the host system. It may not be a virtualization issue – even if it’s communication between a VM and its host, the network stack still has to be simulated, which probably eats up a lot of CPU at local disk bandwidths.

I’ve pretty happy with VMWare Server, and am in the midst of decommissioning my old K7 server.  I boot up Windows for key Windows-only software (like corporate remote access software).  It works really well.  I still cringe a little whenever I need to do sustained I/O, but as most of my workstation activities are done with the host OS, the VM-based workloads are infrequent and can often be sent to the background.

I’m a little annoyed that I spent so much time trying out virtualization this way and that.  Still, it’s useful to know the pros and cons of virtualization firsthand.  To recap: virtualization works better when headless, when used for bursty workloads, when I/O load is a small component, and when engaged in server-class activities rather than workstation activities.

Follow

Get every new post delivered to your Inbox.