Chapter 11: Citrix XenServer: Xen for the Enterprise
Until now, we’ve focused exclusively on the open source version of Xen. However, that’s not the only choice available. The Xen guys have also released a packaged version of Xen that’s aimed at turning Xen into a product that is suitable for the enterprise.1
One implication that you may have gotten reading between the lines of this book is that Xen is still in a state of development. It is, in a word, hackerware. It’s good ’ware—obviously we think it’s stable enough for real people to use every day—but it’s still a lot of work to set up and get going.
There are a couple of reasonable explanations for this state of affairs. Partly this is because hackers are not, as a group, very good at finishing things. The work to take a product from 90 percent finished to 100 percent finished isn’t usually difficult, just tedious. Open source is wonderful, but it’s not great at producing full-on commercial products.2 Another issue is that Xen, by nature, is invasive and fundamental. One hesitates to use words like paradigm, but there you have it—virtualization is a different way of computing, a different way of thinking about computers, and it requires a lot of very polished software support.
Citrix (who acquired XenSource, the company founded by the original Xen team) works to ease the transition by providing this software—creating a software stack, developing a certification process, and establishing best practices so that administrators can roll out Xen with a minimum of fuss and uncertainty. They work on the open source version of Xen and contribute changes to it, but they also do an additional level of QA aimed at turning Xen into a product that you can feel comfortable trusting with your business.
You may ask how this is possible, considering that Xen is still under the GPL. Citrix can do this while obeying the terms of Xen’s license because Xen’s client/server architecture and modular design allow them to extend the basic hypervisor, adding new features as modules and userspace processes that work in conjunction with the GPL software. Citrix uses the open source hypervisor with open source Linux, plus added modules and proprietary control software to provide an integrated distribution of Xen, much like a traditional Linux distro but with a strong emphasis on virtualization.
- 1 Citrix’s Xen Products
- 2 The Benefits of Using Citrix XenServer
- 3 The Disadvantages of Using Citrix XenServer
- 4 Getting Started
- 5 Citrix’s Xen GUI: XenCenter
- 6 Administering VMs with the XenCenter
- 7 Installing DomU Images
- 7.1 Installing from the Debian Templates
- 7.2 Templated Linux VM
- 7.3 Windows Install
- 7.4 Creating DomU Images with P2V
- 7.5 Converting Pre-existing Virtual or Physical Machines with XenConvert
- 7.6 XenServer Tools in the DomU
- 7.7 xe: Citrix XenServer’s Command-Line Tool
- 7.8 XenServer’s Disk Management
- 7.9 Xen Storage Repositories
- 7.10 Emulated CD-ROM Access
- 7.11 XenServer VM Templates
- 8 XenServer Resource Pools
- 9 Citrix XenServer: A Brief Review
- 10 Footnotes
- 11 Navigation
Citrix’s Xen Products
The Citrix product consists of two components, XenServer and XenEssentials. XenServer is the hypervisor and basic management tools, and it is available for free.3 XenEssentials is a suite of utilities that cost money.
The basic free product is simply called XenServer. XenServer supports most of the features of the paid Citrix products, with the same management interface. It’s aimed at development, test, and noncritical production deployments, as well as people who want to test or play with Xen.
Citrix’s pay product is called Citrix Essentials for XenServer, with various levels of licensing. It doesn’t have all the features of open source Xen, but it has all the features Citrix feels comfortable supporting and some commercial product exclusives. Citrix, as far as we can tell, charges as much as the market will bear for this version.4 This is, of course, subject to change at any time. Negotiate with your Citrix representative, preferably in some form of gladiatorial combat.5
By and large, we’re going to focus exclusively on the base product and components that are available for free.
The Benefits of Using Citrix XenServer
The XenServer product improves on open source Xen primarily in the area of manageability. They’ve streamlined and automated common tasks while retaining most of the transparency of open source Xen.
Ten Minutes to Xen
- Our model is one where the CD enters the drive and the computer
- is a better machine as a result (in ten minutes or less). That is what
- XenExpress6 is all about.
- —Frank Artale, XenSource
One of the best demonstrations of this is in what Citrix calls Xen in ten minutes or Ten to Xen. They’ve dramatically simplified the bootstrap aspect of Xen, where you have to install a dom0 OS and modify it to work nicely with Xen’s control software and the hypervisor.
Citrix reasons that you shouldn’t actually be doing anything with the dom0, other than controlling domUs. Therefore, the product installs a basic Linux OS that includes only the components needed to run Xen: a kernel, a shell, some libraries, a text editor, Python, syslog, SSH (and so forth), and the Xen software. In this approach, software that’s not needed to control Xen, such as the daemons that provide a server’s raison d’etre, should be installed in a domU. Of course, it’s still Linux—based on CentOS, in fact— and there’s nothing to stop you from installing other software. However, we recommend sticking with Citrix’s approach and keeping your core virtualization server uncluttered.
The basic package does, in fact, take about 10 minutes to install, as advertised. Be sure to get the supplementary Linux pack, which includes Debian templates and supporting tools for Linux VMs. When that’s done, it’s a simple matter to create domUs from the included Debian template or from install media.
Citrix XenServer has other advantages. Perhaps most important, it feels much more centralized than the open source Xen. All of the decisions that we’ve been writing about—storage, networking, and so forth—are handled in a centralized way, using a consistent interface. Where possible, they’ve made sensible default decisions for you. They’re not necessarily going to be the best for all situations, but at least they’ll be reasonable for Xen’s purposes.
Take storage, for example. Citrix uses the same architecture as open source Xen, using unmodified Linux drivers in the dom0 to access physical devices. They layer LVM on top of this to abstract physical storage and increase flexibility, as we’ve outlined elsewhere. Citrix builds on these open source tools by offering a way of administering storage through the same GUI as the more Xen-specific aspects of the system, allowing you to focus on virtual machines rather than obscure disk-administration commands. If you like, you can still use the familiar commands. Citrix’s Xen product isn’t out to reinvent the wheel or obfuscate the basic workings of the system; they’ve just provided an alternative to make common tasks a little easier.
The Disadvantages of Using Citrix XenServer
Even with the high-end Essentials product, there’s a trade-off between stability and features. Citrix exposes only those hypervisor features that they feel are mature enough to use in a production environment. For example, migration was added a couple of years after it had been introduced in the open source version.
There’s also no easy way of moving VMs between open source and commercial Xen at the moment. (You can, of course, move VMs manually by using the lower-level methods outlined in Chapter 9.) If you standardize on open source or commercial Xen, it may be difficult to reverse that decision later, although the Open Virtualization Format (OVF), which has some support from open source tools,7 promises to improve the situation.
Beyond that, open source is still an ideological issue. Some people use it whenever possible; some avoid it as a pestilence. We use the open source product because it’s good enough for us and because apparently our time is worthless. Citrix offers a straightforward transaction: Give them money and they’ll give you Xen as a product, rather than Xen as heavily customizable hackerware. Step on board and take your chances.
Having said all that, the best way to get started with Citrix’s XenServer is probably just to try the product and see if you like it. The entry-level version is available for free. You can download it at http://www.citrix.com/xenserver/getitfree/ and upgrade it at any time simply by entering a license key. Besides, they’re telling the truth when they say it takes about 10 minutes to install, so why not?
First, check to make sure that you meet the minimum system requirements:
- 64-bit CPU, that is, AMD Opteron, Athlon 64, Phenom, or whatever else
AMD’s marketing department has come up with, or most Intel Xeons of the last few years, as well as the Core 2 (but not Core).
- A certain amount of memory, depending on how many virtual machines
you want. Citrix’s minimum is 1GB, which sounds reasonable to us.
- Sufficient disk space. The XenServer backend will take 8GB, leaving the
rest available for domUs. Of course, you can also use network storage for VMs.
- HVM support is required if you want to run Windows domUs, but otherwise
Installing Citrix XenServer
As we’ve mentioned, Citrix’s product is a complete system; install it like any other OS. For us, that meant downloading the ISO, burning it to a CD, and booting our target machine from the CD. We also grabbed the Linux Guest Support disc, which includes support for Linux guests.
The machine goes through a nongraphical install and asks some standard questions about keyboard, time, and network setup—the usual. Compared to a normal Linux install, it’s incredibly spare and streamlined because the product itself has the single focus of virtualization. For example, there’s no opportunity to set up partitioning. At the end, it prompted us to insert supplementary CDs, so we put in the Linux support disc.
Ten minutes and one reboot later, we’re staring at a screen that advises us to log in via the administration frontend, XenCenter.
USING A SERIAL CONSOLE WITH XENSERVER
We would never consider using a server without serial console access. Citrix’s Xen product, although it doesn’t support a serial console out of the box, can support a serial console with a little configuration.
It’s a little more difficult than you’d expect because Citrix uses Extlinux to boot rather than GRUB. However, Extlinux’s configuration is similar. The only file we need to adjust is /boot/extlinux.cfg. Note that we specify the options to Xen and the Linux kernel on the same long line:SERIAL 0 115200 default xe prompt 1 timeout 50 label xe # XenServer kernel mboot.c32 append /boot/xen.gz dom0_mem=752M lowmem_emergency_pool=16M \ crashkernel=64M@32M com1=115200,8n1 console=com1 --- \ /boot/vmlinuz-2.6-xen root=LABEL=root-jhawazvh ro \ console=ttyS0,115200n8 --- /boot/initrd-2.6-xen.img
Because this is basically CentOS, it already has ttyS0 listed in /etc/inittab with a getty. Reboot and enjoy the serial console.
Citrix’s Xen GUI: XenCenter
We are, of course, fond of following advice.
Citrix’s system, like the open source version of Xen, uses a client/server architecture to control the virtual machines. Unlike the open source version, they include a graphical Xen console that can automate many of the boring details of running Xen.8
In fact, the package includes both a GUI and a command-line utility. As of version 5, the GUI is a Windows application called XenCenter, and the command-line tool is called xe. They offer roughly the same functionality, but the XenCenter GUI has more features, and xe supports certain more arcane operations. Citrix suggests using xe for scripted (or otherwise automated) operation and the XenCenter for interactive administration. There’s also a character-based menu system called xsconsole that normally runs on the Xen server’s physical console, but which can be run in any shell session in dom0. It provides access to many common operations.
You’ll need a Windows machine for the GUI client. Although version 3.2 and previous versions were written in Java, and are therefore cross-platform, versions 4.0 and above require the .NET-based XenCenter. Previous versions of the client will not be able to connect to the XenServer host. The requirement that the client runs under Windows, of course, also means that you can’t run the client directly on the machine that’s running Citrix’s product.9
Unlike the open source version of Xen, communication between the tools and hypervisor doesn’t go through xend. Instead, both the commandline and graphical tools connect to the xapi service on the Xen server via TCP/IP, using SSL to encrypt traffic.
Administering VMs with the XenCenter
Having successfully installed both the Citrix server and the XenCenter client, we started our nice, shiny GUI frontend, told it about our XenServer, and logged in. The login process is straightforward and immediately drops you into a comprehensive two-panel interface, as shown in Figure 11-1.
The left panel displays hosts, both physical and virtual, in a tree view. On the right side, we can interact with the selected VM or change its parameters via the tabs at the top. Most tasks are broken out into a wizard-based interface.
These tasks are based on a concept of lifecycle management; you can create VMs, edit them, and destroy them, all by clicking through a series of dialog boxes. The user interface aims to make these steps, especially creation, as easy as possible; after all, part of the attraction of virtual computing appliances is that it’s easy to add more machines or scale back as necessary.
Figure 11-1: XenCenter console
Installing DomU Images
XenServer offers several install methods: First, you can install from the included Debian Etch template. Second, you can install a supported distro using a template and distro-specific installer. Third, there is the HVM install using emulated devices. Finally, we have physical-to-virtual conversion using the P2V tool.
The Debian install is the fastest and easiest, but it’s the least flexible. Templated installation is a good option, allowing PV installs of a good variety of Linux distros, though not all of them. The HVM install works well for everything but requires a machine that supports HVM and results in a domain running in HVM mode (which may be suboptimal, depending on your application). P2V allows you to clone an existing hardware-based Linux installation and to create templates based on that existing system, but it is inconvenient and works with only a few older distros.
Installing from the Debian Templates
The easiest way to install a VM is to use the prepopulated Debian Etch template. This template is a preconfigured basic install, designed to make starting a Xen instance almost a one-click affair. (There is also a Debian Lenny template, but it is an installer, not a fully populated instance.)
To install from a template, log in to the Xen host using the graphical interface, select the XenServer from the list in the left panel of the screen (it should be the first entry), right-click it, and select New VM. It will pop up a wizard interface that allows you to configure the machine. Select the Debian Etch template. Answer the questions about RAM and disk space (the defaults should be fine), click Finish, and it’ll create a guest.
After the guest boots, it performs some first-boot configuration, then starts as a normal paravirtualized Xen instance, with the text console and graphical console already set up and ready to work with, as shown in Figure 11-2.
Figure 11-2: The graphical console of a freshly installed domU
Templated Linux VM
To ensure that the VM kernels are compatible with both Xen and the domU operating environment, the XenServer product supports installation of only a few RPM-based distros and, of course, the already-mentioned Debian VM templates. This support is implemented through templates, which are essentially canned VM configurations.
Installing a supported distro is almost as easy as installing the Debian templates. Go to the Install dialog, select your distro and an install source (physical media, ISO, or network), enter a name, tweak the parameters if desired, and click Install.
It’s a bit harder to install an unsupported distro. However, the hardware emulation mode allows you to install any Linux distro by selecting the Other Install Media template and booting from the OS CD. From that point, proceed as with a normal install on hardware.
When you have the domain installed, you can configure it for paravirtualization and then convert it to a template.
Install Windows by selecting the XenServer server, selecting Install VM from the context menu, and then filling in the resulting dialog. Select the template that corresponds to the version of Windows that you want to install, and change the CD-ROM/DVD setting so that it points to the install media.
Click Install. Xen will create a new VM. When the machine comes up, it’ll be in HVM mode, with the HVM BIOS configured to boot from the emulated CD-ROM. From that point, you can install Windows in the ordinary way. It’s really quite a turnkey process; Citrix has put a lot of work into making Windows installation easy.
Creating DomU Images with P2V
The final way of installing is with the P2V install tool, short for physical to virtual. The tool creates domU images from physical Linux boxes, allowing you to install domUs on hardware that doesn’t support HVM. Unfortunately, the P2V tool only supports a small number of Red Hat–like systems. Any other systems will cause it to quit with an error.
The tool comes as part of the XenServer install CD. To use it, boot the source machine from the XenServer CD. Interrupt the boot and enter p2v-legacy at the prompt if you’re virtualizing a 32-bit system, or boot to the installer and select the P2V option if you’re virtualizing a 64-bit system. A series of prompts will guide you through network setup and selecting a destination.
Existing filesystems on the machine will be copied and sent to the remote Citrix Xen server, which automatically creates configuration files and uses an appropriate kernel. Note that the P2V tool will conflate partitions in the copy process. In this way it’s similar to the tar(1) process that we describe in Chapter 3, with added autoconfiguration magic.
Converting Pre-existing Virtual or Physical Machines with XenConvert
If you have virtual machines in the VMware VMDK, Microsoft VHD, or crossplatform OVF formats, you can convert them to Xen virtual machines using Citrix’s Windows-based XenConvert utility. XenConvert will also work on physical Windows machines, similarly to the P2V utility.
XenConvert is quite simple to use. First, download the Windows installer from Citrix’s site, at http://www.citrix.com/xenserver_xenconvert_free. Install the package, run the program, and follow the prompts.
XenServer Tools in the DomU
When you have a domain installed, you will almost certainly want to install the XenServer tools, which improve integration between the domain and the management interface. In particular, the tools allow the XenCenter to collect performance data from the domU. Under Windows, the Citrix tools also include paravirtualized drivers, which bypass the (slow) emulated drivers in favor of Xen-style ring buffers and so forth.
To install the tools, select the virtual machine in XenCenter, right-click it, and choose the Install XenServer Tools option from the context menu to switch the emulated CD. An alert box will pop up, advising you of the proper steps to perform.
Under Windows, the installer will autorun. Answer the prompts and let it go ahead with the install.10 Reboot, selecting the PV option at the bootloader. Windows will detect and configure your new PV devices.
With Linux VMs, as the prompt says, perform these commands:
# mount /dev/xvdd /mnt # /mnt/Linux/install.sh
The install.sh script will select an appropriate package and install it. Reboot and enjoy the utilization graphs.
xe: Citrix XenServer’s Command-Line Tool
Citrix also ships a command-line interface alongside the graphical console. This command-line tool is called xe, and it’s recommended for backups and similar automated tasks. In our opinion, it’s definitely less pleasant than the XenCenter for everyday use. It’s probably just our bias, but it also seems more cumbersome than the open source equivalent, xm.
You can use xe either from a separate management host (which can run either Windows or Linux) or in local mode directly on the XenServer host.11
Citrix includes xe as an RPM on the Linux supplement CD in the client_install directory. Make sure you have the required stunnel package. In our case, to install it on Slackware, we did:
# cd /media/XenServer-5.0.0 Linux Pack/client_install # rpm -ivh --nodeps xe-cli-5.0.0-13192p.i386.rpm
When the client is installed on a remote machine, you can run it. Make sure to specify -s, otherwise it’ll assume that you want to connect to the local host and fail.
# xe help -s corioles.prgmr.com
Whether you’re using xe locally or remotely, the commands and parameters are the same. xe is actually a very thin wrapper around the Xen API. It exposes almost all the functionality offered by the API, with a corresponding difficulty of use. If you run it with the help --all command, it outputs a daunting usage message, detailing a huge variety of possible actions.
Fortunately, we can break these commands into groups. In general, there are commands to interact with the host and with virtual machines.
There are commands to get logging information. There are pool commands. We have commands to administer virtual devices such as vifs and vbds.
Although some of the xe commands are similar to xm commands, the xe syntax is a bit more elaborate. The first argument must be a command name, followed by any switches, followed by any command parameters, in name=value syntax. It looks cumbersome, but Citrix has shipped a very nice bash completion setup to make autocomplete work well for the xe-specific parameters. It even fills in UUIDs. Thus:
# xm network-list 1 Idx BE MAC Addr. handle state evt-ch tx-/rx-ring-ref BE-path 0 0 00:16:3E:B9:B0:53 0 4 8 522 /523 /local/domain/0/backend/vif/1/0
becomes, with xe:
# xe vm-vif-list vm-name=aufidius name: eth0 mac: 00:16:3E:B9:B0:53 ip: 192.168.1.64 vbridge: xenbr0 rate: 0
The documentation and the various recipes that are offered on Citrix’s website have more advice on using xe.
XenServer’s Disk Management
The XenServer software reserves a pair of 4GB partitions for itself, leaving the rest of the disk available for domUs. The first partition has the active XenServer install. The second partition is ordinarily left blank; however, if the server is upgraded, that partition is formatted and used as a complete backup of the previous install.
Warning: Note that this backup only applies to the dom0 data; the installer will wipe domU
storage repositories on the disk. The moral? Back up domUs manually before upgrading
The rest of the space is put into a volume group, or, as Citrix calls it, a storage repository. As domUs are created, the server divides the space using LVM. The storage setup, for a single disk, can be seen in Figure 11-3. Each additional disk becomes a single PV, which is added to the storage pool.
Figure 11-3: XenSource disk layout
Each LV gets a very long name that uses a UUID (universally unique identifier) to associate it with a VM.
Xen Storage Repositories
If you log in to the XenServer on the console or via SSH using the root password that you entered during the install, you can use standard Linux commands to examine the installed environment. To continue our example, you can use the LVM tools:
# vgs VG #PV #LV #SN Attr VSize VFree VG_XenStorage-03461f18-1189-e775-16f9-88d5b0db543f 1 0 0 wz--n- 458.10G 458.10G
However, you’ll usually want to use the Citrix-provided higher-level commands because those also update the storage metadata. Equivalently, to list storage repositories using xe:
# xe sr-list uuid ( RO) : 03461f18-1189-e775-16f9-88d5b0db543f name-label ( RW): Local storage name-description ( RW): host ( RO): localhost.localdomain type ( RO): lvm content-type ( RO): user
Note that the SR UUID matches the name of the volume group.
A complete description of xe’s capabilities with regard to storage is best left to Citrix’s documentation. However, we’ll describe a brief session to illustrate the relationship between LVM, Xen’s storage pools, and the hypervisor.
Let’s say that you’ve added a new SATA disk to your XenServer, /dev/sdb. To extend the default XenServer storage pool to the new disk, you can treat the storage pool as a normal LVM volume group:
# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created # vgextend VG_XenStorage-9c186713-1457-6edb-a6aa-cbabb48c1e88 /dev/sdb1 Volume group "VG_XenStorage-9c186713-1457-6edb-a6aa-cbabb48c1e88" successfully extended # vgs VG #PV #LV #SN Attr VSize VFree VG_XenStorage-9c186713-1457-6edb-a6aa-cbabb48c1e88 2 2 0 wz--n- 923.86G 919.36G # service xapi restart
The only unusual thing that we’ve done here is to restart the xapi service so that the various administration tools can use the new storage.
However, Citrix recommends that you perform these operations through their management stack. If you want to do anything more complex, like create a new storage repository, it’s better to use the appropriate xe commands rather than work with LVM directly. Here’s an example of the same operation, using xe:
# xe sr-create name-label="Supplementary Xen Storage" type=lvm device-config-device=/dev/sdb1 a154498a-897c-3f85-a82f-325e612d551d
That’s all there is to it. Now the GUI should immediately show a new storage repository under the XenServer machine. We can confirm its status using xe sr-list:
# xe sr-list uuid ( RO) : 9c186713-1457-6edb-a6aa-cbabb48c1e88 name-label ( RW): Local storage on corioles name-description ( RW): type ( RO): lvm content-type ( RO): user uuid ( RO) : a154498a-897c-3f85-a82f-325e612d551d name-label ( RW): Supplementary Xen Storage name-description ( RW): type ( RO): lvm content-type ( RO): disk
Citrix’s website has more information on adding storage with xe, including the options of using file-backed storage, iSCSI, or NFS. They also cover such topics as removing storage repositories and setting QoS controls on VM storage. We defer to them for further details.
Emulated CD-ROM Access
One of the slickest things about Citrix’s product is their CD-ROM emulation.12 In addition to giving VMs the option of mounting the physical drives attached to the machine, it presents ISO images as possible CDs. When you change the CD, the domU immediately registers that a new disc has been inserted.
XenServer looks for local ISO images in /opt/xensource/packages/iso, and it looks for shared ISO images in /var/opt/xen/iso_import. Both of these paths are on the server, not the admin host. Note that the XenServer host has a very limited root filesystem and devotes most of its disk space to virtual machines; thus, we recommend using shared NFS or CIFS storage for ISOs. However, local ISO storage is still possible. For example, to make a Windows 2003 ISO conveniently accessible to the XenServer VM installer, we can:
# dd if=/dev/cdrom of=/opt/xensource/packages/iso/win2003.iso
Then restart the xapi service as before, and select the new ISO from the drop-down menu in XenCenter’s graphical console tab. You can also use this ISO as an install source when creating virtual machines.
XenServer VM Templates
The templates are one of the nicest features of XenCenter. They allow you to create a virtual machine with predefined specifications with a couple of clicks. Although Citrix includes some templates, you’ll probably want to add your own.
The easiest way to create VM templates is to create a VM with the desired setup and then convert it to a template using the XenSource management software. Right-click the machine in the GUI and select Convert to Template. Conceptually, this is like the golden client concept used by, say, SystemImager; you first tailor a client to meet your needs and then export it as the model for future installs.
# xe vm-param-set uuid=<UUID OF VM BEING CONVERTED TO TEMPLATE> is-a-template=true
Another option is to use the P2V tool. To create a template from a physical machine, boot the machine from the XenServer CD as you would to create a VM, but direct the output of the P2V tool at an NFS share rather than a XenServer host. The template will show up in the XenCenter client’s list of available templates.
XenServer Resource Pools
One of the most compelling features of Citrix’s product is their integration of resource pools. These pools are the manifestation of the utility computing model for Xen, in which a program is decoupled from a physical machine and run in a virtual machine on any member of a cluster of physical machines.
To create a resource pool, just select a XenServer virtualization host in the XenCenter client and create a pool from it.13 When that’s done, you can add more machines to the pool through the interface. (Up to 16 hosts are supported in a pool, although we’ve heard of people using more.) Furthermore, you can add storage to the pool, rather than to an individual machine, and create VMs that use shared storage. When you have domains based on shared storage, you can easily migrate them to other machines in the pool through the XenCenter GUI, as shown in Figure 11-4.
As you can see, Citrix has made migration basically a point-and-click operation.
We’re not going to discuss pool administration at length; we mention it here mostly to emphasize that the feature exists.
Figure 11-4: Adding NFS storage to a pool through XenCenter
Citrix XenServer: A Brief Review
Overall, we’re quite pleased with Citrix’s product. They have a polished tool that takes the drudgery out of Xen administration, and they’ve made a stable product. In our opinion, it’s considerably better than using any of the frontends that are available from the open source version, and it’s at least as reliable.
Along with the XenCenter frontend (the most obvious difference), XenServer does well in ease of installation and manageability. The combination of templates and streamlined domU creation is particularly nice.
Another advantage of the XenServer product is its inclusion of paravirtualized drivers for Windows. Although GPL PV drivers are in development and available (see Chapter 13 for more information), they aren’t as mature as the Citrix implementation. The drivers make a huge difference and aren’t available with the open source product. They may be the single most compelling reason to run XenServer.
Finally, virtually all of the interesting features of open source Xen are supported. Storage and network options are pared down somewhat, but the available options should be enough for most purposes.
It isn’t all roses, however. The biggest problem that we ran into while testing it was its narrow support for obscure platforms, or even less-popular Linux distros like Gentoo or Slackware. Although it’s possible to get other distros running, it’s inconvenient, and convenience is one of XenServer’s key selling points. Another annoyance is the need for a Windows machine to administer the Xen server—previous versions used a cross-platform Java client. However, because the frontend is apparently written in C#, perhaps we’ll see a Mono port at some point.
Can Citrix’s product replace the open source Xen? As always, the answer is maybe. It offers significant improvements in management and some interesting new capabilities, but that’s balanced against the substantial cost and annoying limitations. We’re sticking with the free version, but, then, our time is worthless.
1Sorry, we know, marketing speak. But it is the easiest way for us to convey the aim of the product.
2This is not to disparage the fine work of the people behind polished products we use daily, such as Linux, Mozilla, and Vim. We’re just saying that the last 10 percent is the most difficult, not that it never gets done.
3That’s free as in beer, as the greybeards say.
4We were unable to find coherent pricing information.
5After spending weeks trying to get prices for colocation out of salespeople, Luke suspects gladiatorial combat would be more pleasant than the traditional methods for negotiating price. prgmr.com favors the “the price on the website is the price you pay” model.
6XenExpress was the name of the free product when XenSource was XenSource, before Citrix bought them.
7http://open-ovf.wiki.sourceforge.net/ is a good place to start.
8The XenCenter cannot connect to open source Xen. We tried.
9Although you could run the client inside of a Windows install under the XenSource product, does raise an interesting chicken-and-egg problem.
10By the way, Citrix is, in fact, serious about the drivers not supporting pre-SP2 Windows XP. We tried.
11We are told that you can even use xe on Windows. Not that we would dirty our hands using an OS like Windows to administer a Linux/Xen server.
12After years of being too lazy to set up an automounter, we are easily impressed.
13Some of the documentation claims that this feature is only available to paying customers, but we were able to manage fine. Consult Citrix for further clarification.