Issue #17 March 2006

An interview with Brian Stein

Brian Stein is the Engineering Manager of Emerging Technologies at Red Hat. Emerging Tech is the group that investigates and integrates cutting-edge research and development for possible release as part of Red Hat® Enterprise Linux®. It is this group that has paved the way to Xen and virtualization for Enterprise Linux users--two hot topics in the industry today. We wanted to know what they were up to, so we asked.

RHM: What is Xen, exactly? What are the pieces that make up Xen?

Brian Stein: Generally people use the term Xen to refer to the project from the folks at Xen Source. Xen provides hypervisor-based virtualization primarily for Linux.

The initial goal of the Xen project was high-performance virtualization. The approach was to modify the guest operating system specifically for virtualization. As it turns out, this reduces a large amount of the overhead found with full virtualization on x86 (and x86_64) systems. This class of hypervisor virtualization is generally termed paravirtualization.

There are three major components which make up Xen:

  • hypervisor - also known as virtual machine monitor; virtualizes system resources, provides scheduling of host/guests, intra guest communication and security
  • xenoLinux kernel - a Linux kernel modified to run in a paravirtualized environment; includes both dom0 (host) and domU (virtual machines--more on this later)
  • host components (device drivers, daemons, ...) - virtual device device drivers, xenbus, xenstore

RHM: I understand that an operating system needs to be ported to run on Xen. Which operating systems currently run on Xen? Which ones will Fedora™ Core 5 support? What about Red Hat Enterprise Linux 5?

Stein: The most common method of operation for Xen is support paravirtualization, where the guest OS needs to be modified tsupport being virtualized. Xen also supports unmodified guests (i.e., full virtualization) with the appropriate hardware support from AMD or Intel.

There are many operating system efforts to run as a guest on the Xen hypervisor, including Linux, BSD, and Open Solaris.

For Fedora Core 5 the focus was Linux and getting it out the door. In fact, the focus was more narrow in that we test our host/guest in tandem and testing full virtualized guests (e.g., unmodified Red Hat Enterprise Linux 3 as a guest). There is nothing stopping someone from running another modified guest of a compatible version on Fedora Core 5--mileage may vary.

The focus with Red Hat Enterprise Linux 5 will be to expand coverage and officially support a number of operating systems, both in paravirtualized and fully virtualized modes.

RHM: What is "Dom0" and what is "DomU"? What does each do, and how do they work together?

Stein: Dom0 is shorthand for domain 0, also known as the host. The host operating system provides hardware support (back-end drivers, ACPI), interfaces for guest control (eg, create, suspend).

Depending on the use, dom0 may be a full distro install or a lean host install. We expect the latter in large datacenter deployments, the former for desktop development and workstation use.

The hypervisor and dom0 provide the virtualization platform for guests.

DomU is short for unprivileged domain, otherwise the guest or virtual machine. This is equivalent to the typical machine installation on bare metal, with a different kernel and device drivers.

Each domU is instantiated in the dom0 once storage is identified and virtual machine parameters such as CPU and RAM are set. Starting in FC5 we've provided an anaconda installer to walk users through the process of creating and installing guests.

RHM: How does networking with Xen work? How can different virtual machines all share the same ethernet card?

Stein: Without getting into the mechanics of the device driver model in Xen, all interfaces in the guest are virtual by default. The guest does not interact directly with hardware, but through the driver/hypervisor interface.

The hypervisor and dom0 device drivers provide transparent sharing of resources. In some cases enforcing strict resource limitations (e.g., the amount of RAM provided to a domU).

For networking, dom0 basically acts as a networking switch routing traffic to each domU.

RHM: Can you save virtual machines and restart them later? Can you move them from machine to machine? Can you move a Xen instance from one platform to another?

Stein: Guests can be suspended in memory or disk and resumed at a later time. Xen guests can be migrated between machines while running ("live migration") or suspended to disk and restarted on available hardware.

Xen migration between platforms only works where the host supports the specific guest. For example, a 32-bit guest could migrate from a 32-bit host to a 64-bit host (x86 -> x86_64). Obviously a 64-bit guest would not be relocatable to a 32-bit host.