The server virtualization race is a three-way horserace: the reigning champion VMware, the up-and-coming contender Xen, and Microsoft's soon-to-arrive Windows Server Hyper-V. Unlike VMware and Microsoft, which are the sole channels for their products, Xen is an open source technology available from many vendors, including Red Hat, Novell, and (in the near future) Sun. One of the other vendors that provide Xen is XenSource, the commercial sponsor of the Xen project (Note: XenSource has recently been acquired by Citrix, and the product is now referred to as Citrix XenServer. While the name has changed, the product is unchanged and I will refer to it as XenServer). Unlike the other Xen vendors, however, XenSource's products are not open source. On the other hand, XenSource provides functionality beyond the basic Xen capability. In this set of two articles, I will describe the XenSource product and provide a hands-on introduction to how you can get started with XenSource. Best of all, I will show you how you can get started at no cost.
Overview of XenSource products
The basic Xen hypervisor is the root of XenSource. Xen implements a paravirtualization approach to virtualization, which means that it is architected as a thin software layer that manages access to underlying hardware resources. Communication from guest virtual machines to resources off the underlying machine (i.e., network and storage) travel through a privileged guest called (in Xen parlance) "Domain0" or "Dom0." A guest virtual machine is referred to as "DomainU" or "DomU."
Use of the thin hypervisor layer enables Xen-based virtualization to attain near-native performance levels, a significant advantage since one of the criticisms of virtualization has been the performance hit imposed by inserting a virtualization software layer between the guest virtual machine and the hardware.
One drawback of paravirtualization has been that the kernel of a guest virtual machine needs to be modified in order for it to interact with the Xen hypervisor. The latest generation of chips from AMD and Intel contain hardware extensions that enable unmodified guest kernels to run on the paravirtualized hypervisor. This has meant that Windows could be supported as a guest virtual machine, an enormous benefit for organizations wishing to use Xen as the foundation of their virtualization infrastructure. Unfortunately, running unmodified guest virtual machines has meant that an emulation layer of software has been required, which reduces the performance of Xen. XenSource has a close relationship with Microsoft and has created some software bits that can be added to Windows guest virtual machines to obviate the need for the emulation software, thereby restoring near-native performance levels for Windows guests. (Part two of this set of articles will discuss how to install these software bits for a Windows guest.)
The XenServer product comes in three versions: Enterprise, Standard, and Express. Despite the fact that the company offers three different versions, they are identical in terms of actual code; the more expensive versions offer additional functionality that is unlocked by insertion of the proper software key. XenExpress, the lowest level product, is limited to supporting four guest virtual machines, and does not support live migration of virtual machines from one physical server to another. Other than those differences, it is exactly the same product as its more expensive brethren. Best of all, XenExpress is available for free download, allowing anyone to begin using XenSource virtualization at no cost.
Obtaining XenExpress is simple. Go to www.citrixxenserver.com and click on the "Download Now" link at the top of the page. On the resulting page, click on "Download Express Edition for Free." You'll have to provide an email address, but you will then be provided with a link to two ISO images: XenExpress itself, and an image that contains software necessary if you plan to run Linux guest virtual machines. These articles are going to focus on Windows guest virtual machines, so you can get by with downloading only XenExpress itself. XenExpress is a very lightweight product, a few hundred megabytes, so it won't take long to download. Naturally, you'll have to burn the images onto CDs in order to install the applications themselves.
XenExpress installs in two parts: the server, which hosts guest virtual machines, and the management console, which controls the server and is used to install and manage guests.
The server is essentially a stripped-down Linux optimized with Xen extensions. Installing it requires nothing more than booting a machine with the XenExpress CD in the machine's tray. WARNING: XenExpress does not support dual-booting and requires that it format the machine's disk, so do not install it on a machine you plan to do anything other than run XenExpress on.
The XenServer installation is remarkably similar to installing any other simple Linux: choose a language, accept the license, set a root password (be sure to write this down, as you'll need it to connect from the XenCenter management console), set the keyboard layout, and set a timezone. One important thing to pay attention to is setting the machine's IP address, hostname and DNS configuration. If you have a DHCP server on your network, you can use it to set the IP address and DNS information for the machine; the XenSource installer suggests a hostname. For a production environment, however, you'd want to assign these settings according to your overall setup. For a test setup, the default settings are fine.
That's it! The XenServer installer will now install XenExpress. It will take about five minutes. At the end of the installation, reboot the machine. When it comes back up, you're running XenExpress! Be sure to note the IP address of the system, as you'll need it for the next phase of XenExpress installation: installing XenCenter, the management tool for XenExpress.
As previously mentioned, all interaction with XenExpress (or any flavor of XenServer) is done through the management console, XenCenter. XenCenter is a Windows-only application. Installation is quite simple.
The XenCenter installer resides on the same disk as XenExpress. Place the CD into the client machine tray and navigate to the "client_install" directory. Double click on XenCenterSetup.exe. An installation dialog box comes up. Three clicks later, XenCenter is installed.
Connecting XenCenter to XenExpress
If you look at figure one, you can see what XenCenter looks like when first brought up. In order to connect to the recently installed XenExpress, click on the "Add Your XenServer" button.
You'll then get a dialog box (see figure two) in which you need to enter the XenExpress machine name or IP address, as well as the root password. After a moment, you'll see your XenExpress instance show up in the left-hand panel of XenCenter (see figure three). Click on the machine name and you'll see XenExpress information in the right-hand panel in a set of tabs (see figure four). Click on the "Console" tab and you'll see that you have a terminal interface to XenExpress.
That's it. You've now installed XenExpress and XenCenter and are ready to do some XenSource-style virtualization. In part two of this article series, I'll show you how to install a Windows guest virtual machine.
About the author: Bernard Golden is CEO of Navica Inc., a systems integrator based in San Carlos, Calif. He is the author of Succeeding with Open Source (Addison-Wesley, August 2004) and the creator of the Open Source Maturity Model (OSMM), a formalized method of locating, assessing, and implementing open source software.