The flood of inexpensive x86 PC hardware that overwhelmed the computing world seduced us into accumulating coveys of cheap little single-purpose servers and unmanageable gaggles of desktops and workstations. We sysadmins have been paying for it ever since. Instead of having small herds of nice docile mammoths to supervise, we got roped into running large herds of cats. But, as is the way of humanity, the pendulum has swung, the circle has turned, the karma has paid off and good old-fashioned client-server computing is teh hawt again.
The current rage is virtualization which, of course, is nothing new — as old-timers raised on the IBM's Virtual Machine (VM) OS and Logical Partitioning (LPAR) will attest. These let you run guest operating systems on a single (expensive IBM) machine, each in its own separate, virtual environment. LPAR allows a wide range of guest operating systems – various Unixes, Linux, and Windows. Virtualization is supported both in the hardware and host operating system.
Last week we looked at a number of software virtualization projects, and did a quick Qemu howto. Virtualization is useful for a lot of important jobs:
- Safe shared hosting, and users get shell accounts
- Developers love virtual environments for fast cross-platform development and testing, and for testing new code in nice safe sandboxes that won't bring the whole system down if something fails spectacularly
- Consolidate your clutter of application servers, proxies, mail and Web servers and such into a single powerful box, and each one is as securely isolated as if they were physically separated
- Replace your moth-eaten old terminal server with a virtualized server, giving each user the equivalent of a powerful workstation that they can abuse and misuse without bothering anyone else, all nicely contained in one big box that you can pull the plug on at any time. Yes, you have the power
Xen aims to be the ultimate virtual machine server. Its developers claim near-native performance, and even have pretty graphs to prove it. It achieves this by modifying the kernels of supported platforms, which of course cannot be done to closed, proprietary operating systems. (There was a Windows XP port once upon a time, but it cannot be released due to licensing restrictions. Yet another reason to use Free/Open Source software- the closed, proprietary world is full of party-poopers.)
VMWare and other similar applications create a virtual hardware environment to allow running unmodified OSes, which places a big load on system resources, and is slow. Rather than ambling down that well-trodden path, sometime in 2006 the Xen developers plan to release a version that can run unmodified guest operating systems. In other words, you will be able to run Windows on Linux in a Xen domain, or any Linux or Unix, or whatever your heart desires. This will be possible thanks to shiny new CPUs from Intel and AMD that support virtualization: Intel's Virtualization Technology, and AMD's Pacifica hardware virtualization. (Warning: AMD uses way too many PDFs and PowerPoint presentations in its online documents.)
In other words, the x86 world is going to try to achieve what the mainframe world has had for decades. This is a good thing, as hardware support is vital for good performance and security.
Linux + Xen = Mighty Virtualizing
Linux is a superior platform for supporting 64-bit processors, multi-processors, and blade/cluster architectures, plus you don't get trapped in licensing hell, so it's a natural as a host system for all sorts of virtualization scenarios. You get horsepower, stability and flexibility. Linux + Xen promises to be the real VMWare killer, for those who require "killer" scenarios. (Us peaceniks will settle for "something that works faster and more better. Oh yeah, and doesn't have a big price tag.")
Xen is just a baby, though a fast-growing baby, so it's still pretty limited. See the OS compatibility page for current status. Xen supports up to 4GB RAM, and currently supports only IA32, so it won't run on Itanium. It will run on any AMD64, since these have native support for IA32. Xen supports SMP on the host system, but not the guest OSes.
When certain Brand X software companies brag about their innovation, I can't help laughing. Even my cat laughs. Innovation is projects like Xen on a live, bootable CD. (The FOSS world is rich with live, bootable CDs. And 3.5" diskettes, USB keys, business-card-sized CDs, and DVDs, which in a nice touch of irony make superior Windows rescue disks.) So taking Xen for a test drive is as easy as downloading the Xen Demo CD, burning it to a disk, and booting it up.
Installing and Running Xen
I really wanted to make this a nice Xen howto, all about installing it to a hard drive and installing guest operating systems, but I couldn't get the blimey thing to work. Installing Xen is easy- getting the guest OS to work on my test Ubuntu system just didn't work. Either I'm dim, or it's difficult. I vote for difficult. And, the steps are different for every Linux distribution. So instead here a list of howtos for different distros:
Fedora 4 and SuSE 9.3 both come with Xen, it's in Debian Unstable, and Red Hat EL5 will have it.
Why Bother With Xen?
Given its limited usefulness, and difficulty in installation, why should you even bother? Because Xen is going to be a powerhouse virtual machine server soon. A number of companies support its development; even Microsoft was a backer in its early days. XenSource, the commercial arm of the Xen project, even got venture capital funding.
Why wasn't hardware support for virtualization on x86 developed before this? According to my spies, because Intel and Microsoft actively opposed it, until VMWare came along. Intel considered virtualization a threat to chip sales, and Microsoft considered it a threat to its control. Now Microsoft has its own Virtual PC (which used to be Connectix), AMD is eating Intel's lunch, and us x86 users finally get a chance at a useful technology.
- Downloads and demo CDs from Xensource, the commercial arm of the Xen project
- Xen home page
- Logical Partitions on the IBM PowerPC: A Guide to Working with LPAR on IBM eServer i5 Systems
- Wanna build a Xen cluster on a single PC? Check out this howto on Linux Journal.