Dive into the Xen hypervisor

What to know to start

Xen is a type 1 hypervisor that creates logical pools of system resources so that many virtual machines can share the same physical resources.

Xen is a hypervisor that runs directly on the system hardware. Xen inserts a virtualization layer between the system hardware and the virtual machines, turning the system hardware into a pool of logical computing resources that Xen can dynamically allocate to any guest operating system. The operating systems running in virtual machines interact with the virtual resources as if they were physical resources.

Figure 1 shows a system with Xen running virtual machines.

Figure 1. The Xen architecture
Xen architecture

Xen is running three virtual machines. Each virtual machine is running a guest operating system and applications independent of other virtual machines while sharing the same physical resources.

Features

The following are key concepts of the Xen architecture:

  • Full virtualization.
  • Xen can run multiple guest OS, each in its on VM.
  • Instead of a driver, lots of great stuff happens in the Xen daemon, xend.

Full virtualization

Most hypervisors are based on full virtualization which means that they completely emulate all hardware devices to the virtual machines. Guest operating systems do not require any modification and behave as if they each have exclusive access to the entire system.

Full virtualization often includes performance drawbacks because complete emulation usually demands more processing resources (and more overhead) from the hypervisor. Xen is based on paravirtualization; it requires that the guest operating systems be modified to support the Xen operating environment. However, the user space applications and libraries do not require modification.

Operating system modifications are necessary for reasons like:

  • So that Xen can replace the operating system as the most privileged software.
  • So that Xen can use more efficient interfaces (such as virtual block devices and virtual network interfaces) to emulate devices — this increases performance.

Xen can run multiple guest OS each in its on VM

Xen can run several guest operating systems each running in its own virtual machine or domain. When Xen is first installed, it automatically creates the first domain, Domain 0 (or dom0).

Domain 0 is the management domain and is responsible for managing the system. It performs tasks like building additional domains (or virtual machines), managing the virtual devices for each virtual machine, suspending virtual machines, resuming virtual machines, and migrating virtual machines. Domain 0 runs a guest operating system and is responsible for the hardware devices.

Instead of a driver, lots of great stuff happens in the Xen daemon

The Xen daemon, xend, is a Python program that runs in dom0. It is the central point of control for managing virtual resources across all the virtual machines running on the Xen hypervisor. Most of the command parsing, validation, and sequencing happens in user space in xend and not in a driver.

IBM supports the SUSE Linux Enterprise Edition (SLES) 10 version of Xen which supports the following configuration:

  • Four virtual machines per processor and up to 64 virtual machines per physical system.
  • SLES 10 guest operating systems (paravirtualized only).

Deploying virtualization

To deploy virtualization for Xen:

  • Install Xen on the system.
  • Create and configure virtual machines (this includes the guest operating system).

Install the Xen software using one of the following methods:

  • Interactive install: Use this procedure to install directly on dedicated virtual machine on the Xen server. This dedicated virtual machine is referred to as the client computer in the install procedure.
  • Install from CommCell console: Use this procedure to install remotely on a dedicated virtual machine on the Xen server.

See Related topics for more info on deploying viritualization.

Managing your virtual machines

There are several virtual machine managers available including:

  • Open source mangers: OpenXenManager, an open source clone of Citrix’s XenServer XenCenter and manages both XCP and Citrix’s XenServer. Xen Cloud Control System (XCCS) is a lightweight front end package for the excellent Xen Cloud Platform cloud computing system. Zentific, a web-based management interface for the effective control of virtual machines running upon the Xen hypervisor.
  • Commercial managers: Convirture: ConVirt is a centralized management solution that lets you provision, monitor, and manage the complete life cycle of your Xen deployment. Citrix XenCenter is a Windows-native graphical user interface for managing Citrix XenServer and XCP. Versiera is a web-based Internet technology designed to securely manage and monitor both cloud environments and enterprises with support for Linux, FreeBSD, OpenBSD, NetBSD, OS X, Windows, Solaris, OpenWRT, and DD-WRT.

Choosing Xen

On the pro side:

  • The Xen server is built on the open source Xen hypervisor and uses a combination of paravirtualization and hardware-assisted virtualization. This collaboration between the OS and the virtualization platform enables the development of a simpler hypervisor that delivers highly optimized performance.
  • Xen provides sophisticated workload balancing that captures CPU, memory, disk I/O, and network I/O data; it offers two optimization modes: one for performance and another for density.
  • The Xen server takes advantage of a unique storage integration feature called the Citrix Storage Link. With it, the sysadmin can directly leverage features of arrays from such companies as HP, Dell Equal Logic, NetApp, EMC, and others.
  • The Xen server includes multicore processor support, live migration, physical-server-to-virtual-machine conversion (P2V) and virtual-to-virtual conversion (V2V) tools, centralized multiserver management, real-time performance monitoring, and speedy performance for Windows and Linux.

On the con side:

  • Xen has a relatively large footprint and relies on Linux in dom0.
  • Xen relies on third-party solutions for hardware device drivers, storage, backup and recovery, and fault tolerance.
  • Xen gets bogged down with anything with a high I/O rate or anything that sucks up resources and starves other VMs.
  • Xen’s integration can be problematic; it could become a burden on your Linux kernel over time.
  • XenServer 5 is missing 802.1Q virtual local area network (VLAN) trunking; as for security, it doesn’t offer directory services integration, role-based access controls, or security logging and auditing or administrative actions.