Server virtualization with Citrix XenServer
Hot Off the Press
In the summer of 2007, Citrix invested around US$ 500 million to acquire Xensource, the developers of the free Xen hypervisor. Xensource and its free hypervisor form the basis for what is probably the biggest rentable cloud today: the Amazon Web Service. Based on this extremely mature technology, Citrix launched Version 5.6 of its XenServer product family in May 2010. XenServer, the product built around the hypervisor, includes a number of services and additional software tools that help administrators build and manage anything from a simple server to a full-fledged, virtualized datacenter.
From Xen to XenServer
Currently, four different product versions are available: Free, Advanced, Enterprise, and Platinum. The three commercial products have licensing based on server instances rather than processor cores. Depending on the functional scope, the prices are between US$ 1,000 and US$ 5,000 including 12 months of free upgrades, news, and information.
For newcomers to the world of server virtualization, Citrix offers XenServer Free, which you can download  without registering. However, you do need to apply for a free license if you want to run the server for more than 30 days, which means registering on the Citrix website. The license is then valid for one year. Besides the XenServer ISO, which installs the host system after you burn it onto a CD, Citrix also offers other free services.
In addition to a support CD for the installation of various Linux guest systems, Citrix offers XenCenter (Figure 1), a Windows-based management application for the host and virtualized guest systems. XenCenter provides a GUI and thus facilitates management of one or more XenServers. To help you migrate physical and virtual systems to a XenServer instance, Citrix also offers XenConvert, a conversion tool that supports both Windows and Linux systems (Figure 2). It supports the VHD, OVF, VMDK, and XVA file formats.
XenServer offers both full hardware virtualization (HVM) and paravirtualization (PVM) for guest systems. Hardware virtualized guest systems use the advanced features of modern x86 CPUs (Intel's VT-x or AMD-V). Paravirtualization works without these processor capabilities but does involve modifying the guest system itself; this step is important for low-level drivers. XenServer includes drivers in the form of installable tools for Linux and Windows guest systems.
As of version 5, XenServer is certified for running Windows guests, including an official certificate via the Microsoft Server Virtualization Validated Program (SVVP) for Intel and AMD processors. On the hardware front, XenServer supports up to 256GB RAM, 64 cores, and up to 16 NICs per server. Fibre Channel, NFS, iSCSI, and local disks (Direct Attached) are support as storage. Eight CPUs and a maximum of 32GB can be assigned to each virtual guest.
Several hardware vendors provide drivers and modules for XenServer free of charge. For example, HP offers the System Information System, based on the HP SNMP Agent as a free download for XenServer 5.6 and above. Thus, you can load the popular HP system information GUI, which provides a plethora of useful information concerning the server. The SMTP Agent that installs at the same time lets you remotely monitor XenServer using, say, Nagios. The close link between Citrix and Microsoft is demonstrated by the availability of graphical management tools. Basic management tasks on the host system (Dom0) can be handled using the Curses-based xcconsole and the xe command-line tool. However, XenCenter – the mature, graphical management tool – is only available for Windows. XenCenter makes it easy to start and stop virtual servers and monitor the system load. At the same time, XenCenter lets you log in via the console or the integrated VNC client, which is a big help on systems with a graphical interface after you complete the install.
Snapshots and Backups
Like most other client or server virtualization products, XenServer can also create point-in-time snapshots of the virtual machines. The product distinguishes between exporting virtual machines to back up files while the virtual machine is stopped, or creating live snapshots while the virtual machine is running.
You can use three approaches to create snapshots: the xe command-line tool on the host system, XenCenter, and via a documented API. You can only export to XVA files while the virtual machine is switched off. Importing snapshots is very easy in comparison. A snapshot that you create at server runtime acts like a template in XenServer. The Citrix forum includes scripts that create regular backups for a whole bunch of virtual machines. Third-party products, such as Alike by QuorumSoft, IC-Cider by Mysoftit, or Backup Exec System Recovery by Symantec, add more convenience.
Administrators who aren't afraid of the command line can also save virtual machines directly using a trick. To do so, you need to configure a cronjob on the host system to run a shell script that first creates a snapshot using the xe command-line tool and then exports the snapshot to Xen's own XVA format. Following this, you can delete the snapshot and keep backups that are easy to restore.
Installing XenServer on a powerful server system is typically fast and painless. But, you will need to consider the network and disk capacity and assignments, as these might be difficult to change at a later stage depending on the technology you use. My installation on a HP ProLiant ML350 G6 was easily done; I was able to boot the server directly from the XenServer CD. Following this, I assigned disk space on the RAID5 system with an LVM filesystem.
Administrators can use templates to set up new virtual machines; templates are available for Windows (2000, XP, Vista, 7, and Server 2008) and for Linux (CentOS, Debian, Oracle, SUSE). You can handle the setup at the command line on the host system, which turns out to be a Red Hat 4.1.2-based CentOS (kernel version 2.6.27), or use the XenCenter application to click and install.
Setting up the hardware for the virtual machines is easy. You need to specify the number of virtual processors (VCPUs), the RAM size, and local or network-based disk space. You can monitor the individual virtual machines and the XenServer itself via a simple, integrated monitoring tool that quickly reveals memory, CPU, and disk I/O bottlenecks. The free version only gives you historic data from at least 24 hours in the past, and the weekly, monthly and yearly reviews are available only as of the Advanced version. Free RRD tools like Cacti or the RRD-Tools for Nagios can easily lift these restrictions.