The flood of inexpensive x86 PC hardware that overwhelmed the computing world seduced enterprises into accumulating coveys of inexpensive little single-purpose servers and unmanageable gaggles of desktops and workstations. And sys admins have been paying for it ever since. Instead of having small herds of nice docile mammoths to supervise, it was like being roped into running large herds of cats. But, as is the way of humanity, the pendulum has swung, the circle has turned, karma has paid off, and good old-fashioned client/server computing has returned.
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 Unix flavors, Linux, and Windows. Virtualization is supported in both the hardware and host operating system.
Virtualization is useful for a host 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 moth-eaten old terminal server with a virtualized server, giving each user the equivalent of a powerful workstation to 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, some time 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.
In other words, the x86 world is going to attempt what the mainframe world has been doing 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. It also doesn't leave you 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.
Xen is just a baby, albeit a fast-growing one, so it's still pretty limited. See the OS compatibility page for current status. Xen supports up to 4 GB of RAM, and currently supports only IA-32, so it won't run on Itanium. It will run on any AMD64, since these have native support for IA-32. Xen supports SMP on the host system, but not the guest OSes.
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 (thanks to its purchase of Connectix); AMD is eating Intel's lunch; and x86 users finally get a chance at a useful technology. For those seeking an Itanium port for Xen, see "Xen 3.0 Delivers Enterprise Virtualization Features with Near Native Performance."
- 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.
This article was originally published on Enterprise Networking Planet.