Virtual(ization) Reality

When Chaos Central was centered in Montana, we used to say our house was heated by computers.  This was partially true: when we retired our hand-me-down backup server, a huge Dell 2400-series server, our electric bill dropped by $5 per month, and the temperature in the garage workshop (aka the world’s smallest aircraft factory) dropped by 5 Fahrenheit degrees.  We didn’t have virtualization then, but we did have a single-board computer installed in one of our SPARC Solaris machines that ran Windows.

Over the years, we have had separate machines for Windows, Linux (SuSE, Red Hat, Ubuntu), FreeBSD, and Solaris, usually at least six running at any given time, plus at least one laptop for road trips, rigged for dual boot with Windows and Linux.  In our move to Washington State, the FreeBSD machine and one of the two Solaris/SPARC machines did not survive a couple months storage, so we have been down to four systems: the remaining Solaris/SPARC development machine, a Windows XP machine for running TurboTax, a Ubuntu Linux desktop for the Nice Person’s fabric arts business, and the Unix Curmudgeon relegated to a Ubuntu Linux laptop for everything else.

Having a laptop as primary computer is a good idea for frequent travelers, but the average laptop just doesn’t have the heavy lifting capability to run a Unix consultancy. Plus, we were traveling often enough that taking turns at the keyboard just wasn’t fitting our frantic schedule, so we added a netbook (running Ubuntu, of course) to the mix, which gets used mostly “on the road.”   Yet, the laptop ends up with too much (we’ve maxed the memory and disk capabilities), including things we don’t use on the road, and too little, because we are restricted to one system.

Meanwhile, the Unix Curmudgeon encroached on the Nice Person’s big Linux machine, installing VirtualBox with virtual machines with FreeBSD, CentOS, Fedora Linux, and Windows XP.  We’ve been running our finances with Quicken under Crossover Office or Wine on Linux for a long time, but some of the features in our 2002 edition weren’t available.  Just changing the company address on our invoices took exporting and hacking the QIF file and re-importing it, and we’d had a few scary recovery moments.   So, we upgraded to Quicken 2010, which, like many products now, is essentially incomplete in itself and requires Genuine Microsoft Windows to run.  This led to yet another instance of Windows XP (yes, we have licenses for these, along with the OEM disks, from prior systems, of which all of the hardware except the side panels with the activation code has gone to the recycle center) in virtualization.

Since the desktop Linux machine runs best with only one virtual machine at a time, it was time to rethink the computer inventory at Chaos Central.  For the past nine months, Chaos Central has been a multi-generational household, with children and grandchildren stashed in “spare” bedrooms, and the Unix Curmudgeon’s office taken over by the children for their own home office, leaving Information Engineering Services as a virtual company, operating from a laptop wedged between the floor looms in the Realizations Fabric Arts weaving studio/office/sewing room in the basement.   But, with the possibility of the nest being emptied (again) soon, the Unix Curmudgeon has stealthily begun to retake a bit of real estate in the upstairs office.

In the interest of efficiency and performance, we added a new Dell server to the stack, one several generations removed from the old Dell 2400 retired in 2008, and a considerably smaller footprint.  Now, Sun VirtualBox is an excellent virtualization system–for a workstation–but, with Oracle systematically dismantling many of Sun’s former offerings, and the need to provide network-wide services, we decided to go with a Xen-based system.  Now, it is simple enough to provision virtual machines on any modern Linux, and nothing we haven’t already done for clients, but it does take a bit of skill in configuration.  A number of companies, like Citrix and VMware, have packaged virtualization solutions that run as the primary operating system on the virtualization host.  We selected Citrix XenServer as the candidate platform, if for no other reason than, because the platform foundation is a stripped-down CentOS distribution with the Xen management utility replaced by a custom Citrix application (which, inexplicably, runs only on Windows), it has a stripped-down, bare-bones free version.  Unlike the VMware limited 60-day free trial version, Citrix has no time limit, so evaluation can be more leisurely, and the limited feature set is probably adequate in the long term for a small consultancy that doesn’t have to manage dozens of VMs or worry about high-availability solutions.

The problem with adding a server-class machine to a small network is that a server is designed to be just that–a workhorse machine that delivers over the network, so most have robust disk controllers and high-performance disks, and high-speed networks, but poor or non-existent graphics capabilities.  We took the opportunity to acquire a large-format monitor (1920×1080) with our purchase, but the video capabilities of the server are way too modest to drive it (i.e., fixed video memory, no AGP).  But, because we do have the old obligatory, token Windows machine hanging around (which also runs Ubuntu in a Wubi installation), and we have to use it for the Xen management console anyway, the new monitor works quite well on the old machine as a simple graphics terminal.  The connections with the virtual machines will be via VNC anyway, so it isn’t necessary to have a graphics console on the server itself.  We dragged a surviving 14-inch monitor (which once served as part of a home-built “portable desktop” mini-ITX system) out of storage to serve as the server console monitor.

Building the virtual systems promises to be quite an adventure in itself.  A common use for virtualization in the Enterprise is to consolidate Windows servers that used to be relegated to separate machines, primarily due to the memory-management limitations of 32-bit Windows, or to provide Linux  in virtual private servers for web clients, where the virtual machines are essentially all built from similar templates.  In our case, we need to provide multiple Linux distributions, along with one or more versions of Windows, for software testing and development for Intel and AMD systems.  The adventure begins now.  Stay tuned for progress reports.