Open the box
A few months back, we wrote about Linux server virtualisation using Xen, which splits one server into several virtual machines (VMs) so that, for instance, multiple customers can share one large server while each appearing to have their own. VMs have rapidly become popular in the web-hosting market, with almost all companies these days providing VPS (virtual private servers) offerings alongside the traditional “shared hosting”, where each user simply gets their own login to a Unix box.
The advantage of a VPS is that Xen (or some alternative, although Xen dominates at the moment) takes care of resource allocation, ensuring that one user’s badly behaved software can’t affect other users with accounts on that server – in marked contrast to standard shared hosting, where, as anyone who’s ever shared an account will know, one idiot’s malformed SQL query or out-of-control PHP script can bring down everyone’s sites. (This snippet of bitterness is being brought to you by Ian, who has a client that shared a box with half the spammers and 90% of the incompetent scripters in the Western Hemisphere.)
Xen, then, is A Good Thing if you want to share a server among several users, or if, as happens more and more in companies of all sizes, you want to consolidate several separate servers onto one big iron box. Rather than run eight power-sucking servers, buy a single box containing a couple of quad-core Xeons and partition it into eight virtual devices. But sometimes, Xen isn’t the ideal solution – for instance, if you have web developers running Windows desktops or laptops (the horror!) who need to access Linux boxes to test their software before deployment. Alternatively, your developers may be of the saner type who prefer Linux as their desktop operating system, but have to test their sites on Windows-hosted browsers – mainly Internet Explorer, which, despite improvements in version 7, still can’t be described as fully standards-compliant. (This further bitterness is brought to you by Ian, too, after a series of late-night debugging sessions to make a site look identical across browsers.) Cue VirtualBox.
VirtualBox is aimed squarely at desktop and laptop users who need to run multiple operating systems – either multiple copies of the same one, perhaps to test and debug software they’re developing, or different versions of Linux and Windows. If you’re a web developer this is a must, as you need to check your sites at the very least in IE6 and IE7, and of course you can’t install both on the same Windows installation at the same time. The software is released under the GNU Public Licence, meaning it’s completely open source, although the company behind the product, InnoTek, also offers a closed-source version that has some extra features. (Oddly, it’s difficult to discover how to buy the enterprise edition, since following the links on the open-source website seems to lead to dead ends.)
We’ve tried VirtualBox on both Linux and Windows XP, and in both cases it performed admirably. We installed Ubuntu Desktop Linux 7.0.4 (our current favourite desktop Linux distro) on VirtualBox running under XP, and XP on a Linux box, and both were extremely easy to configure. Subjectively, the “guest” operating system (the one running within VirtualBox) felt fast and responsive and, while not quite working at the speed of a native installation, it was fast enough to use comfortably. Interestingly, we noted that having installed Ubuntu, VirtualBox warned us that it’s optimised to run in 32-bit colour mode, but that Ubuntu had started up in 24-bit colour.