XenEdgy

Revision 8 as of 2006-06-23 12:23:08

Clear message

Xen in Edgy

Xen is really exciting and several Edgy specs depend on or are related to Xen.

Supporting Xen in the normal Ubuntu kernels is not practical for Edgy, unfortunately (see XenEnabledKernel).

This spec documents our plan to get some kind of Xen support in Edgy.

Goal

Some reasonably straightforward way of converting an existing install into one which runs as dom0 under Xen, including all of the pieces that are needed to make this work and be useful.

Restrictions

  • The kernel will not be a normal Ubuntu kernel so hardware support may not be as good - in particular, drivers from linux-restricted-modules are not going to be supported.
  • Significant support effort for problems with this kernel is not likely to be available.
  • In the default setup, domU's will not be able to talk to the general Internet. Instead, they will talk only to the dom0 via a private network range. (This might be considered an advantage.)
  • The arrangements for dealing with the TLS libc problem are not wholly wonderful but unlikely to be catastrophic.
  • Security support is not likely to be usefully available; particularly, because we're not using upstream kernels, proper kernel security support is impractical.
  • Therefore, these packages will be in universe.

Pieces

  • Xen hypervisor and tools package. We will sync this from Debian. (xen-3.0) with minor changes.
  • Kernel. We will provide a stock upstream kernel patched with the Xen guest support.

  • libc6-xen (already exists).
  • update-grub change to detect Xen setups and add them to the menu. The system will dual boot into Xen+xenkernel and stock ubuntu kernel.

Design

Xen hypervisor and tools package

This is reasonably well-developed upstream and in Debian and we don't expect many changes will be needed.

The default networking setup for talking to domU's will be vif-route (ie, normal packet forwarding - except that we won't turn on forwarding) rather than the bridge. This is less intrusive than bridge-based setup in Xen. We will by default use fixed statically allocated range: 172.20.216.0/24, with .1 reserved for the dom0. (This range was chosen randomly. See also http://www.chiark.greenend.org.uk/ucgi/~ijackson/cam-grin?id=ea9920c2a2ff3e58)

RecommendsSupport is needed to pull in libc6-xen.

Kernel

There will be a completely separate kernel source package which contains a stock upstream kernel with the Xen patches applied. The Xen patches are intended for specific upstream kernels (2.6.12 in current xen-3.0 in sid) so we will use whatever upstream kernel version corresponds to the patch in the xen-3.0 we are using. This means the Xen-enabled kernel version in use may change relatively late in the release cycle (compared to the main Ubuntu kernels).

To avoid confusing naive users, these Xen-guest kernel packages will be called xen-kernel* instead of linux-kernel*. This should avoid users accidentally installing these kernels instead of the normal ones (which would be Bad).

update-grub

The Xen-enabled kernels will have names which show that they are for use with the Xen hypervisor. update-grub will be changed to recognise these and add entries to boot xen with xen kernels, in addition to the normal entries for normal kernels.

xen-support package

Metapackage which depends on the appropriate hypervisor, kernel, and tools.