Xen dom0 kernels
Xen hypervisor is not usable without Domain-0 ("dom0"). Privileged dom0 guest is the "host" operating system (or a "service console", if you prefer), it has drivers for hardware, it runs the Xen management toolstack, it is used to manage the whole system, and it provides Xen virtual disks and network access for other guests aka domUs (unprivileged domains) . Usually dom0 is running Linux kernel, but Xen dom0 implementations also exist for OpenSolaris and NetBSD.
If any of the info on this wiki page is out of date, you have something to add or change, please contact xen-devel mailinglist.
How to choose a Xen dom0 kernel?
- You should always match Xen hypervisor and Xen dom0 kernel versions. Running too old dom0 kernel with a newer Xen hypervisor might not allow you to use all the latest features available in the newer hypervisor. So make sure your dom0 kernel is compatible with the Xen hypervisor version being used.
- If your Linux distribution includes Xen and dom0 kernel, it might be a good idea to use them. That allows you to easily get the security fixes as a part of the normal package upgrades provided by your distribution.
- Xen PV domU kernel versions can be different from dom0 kernel versions. There's no need to upgrade domU kernel when you upgrade Xen hypervisor and/or dom0 kernel. Xen hypervisor is backwards compatible, ie. it supports older domU kernels. If your domU distribution includes a Xen domU kernel, it's usually best to use it and not compile your own domU kernel.
What Xen dom0 capable Linux kernel versions are available? Where to get them?
Please see XenKernelFeatures wiki page for more information about available features in different Xen enabled kernels.
There are two different types of Xen dom0 capable kernels available today:
- pvops kernels, featuring new rewritten Xen support based on the upstream (kernel.org) Linux pvops framework. This work is going to be submitted to upstream Linux for inclusion.
- Xenlinux kernels based on the "old" patches originally for Linux 2.6.18. These Xenlinux patches won't be integrated to upstream Linux.
Xen 4.0 switched to using Linux pv_ops based dom0 kernel as a default. This is the kernel all users should be using and testing, and all the development should be made against this kernel tree.
- pv_ops Xen dom0 kernel, based on upstream kernel.org linux git tree
- New default dom0 kernel in Xen 4.0 and xen-unstable development trees.
- Most features have been implemented or forward-ported (compared to the old default linux-2.6.18-xen)
- Missing features: scsiback for pvscsi, usbback for pvusb
- Everyone should be testing this pv_ops dom0 kernel and reporting any bugs/issues found! Patches are also very highly appreciated.
- pv_ops dom0 kernel 2.6.31.x is the default dom0 kernel for Xen 4.0.0 release.
- pv_ops dom0 kernel 2.6.32.x is the default dom0 kernel for Xen 4.0.1 release.
- Long-term maintained pv_ops dom0 kernel is available in "xen/stable-2.6.32.x" branch.
- pv_ops dom0 kernel patches are based on the latest Linux development git tree, so it's pretty much up-to-date with the new Linux kernel versions.
- pv_ops dom0 support is planned to be merged into upstream kernel.org Linux kernel, so dom0 support should be included in the standard Linux kernel in the future.
- Xen pv_ops dom0 is based on the upstream Linux pv_ops framework, so it's meant to be suitable for inclusion in upstream Linux kernel.
See this wiki page for more information and for instructions how to get the pv_ops dom0 kernel: http://wiki.xensource.com/xenwiki/XenParavirtOps
Presentation by Jeremy about pv_ops dom0 kernel at Xen Summit Asia 2009 (November 2009): http://www.xen.org/files/xensummit_intel09/xensummit-asia-2009-talk.pdf
For pv_ops dom0 status updates, changelog etc see http://wiki.xensource.com/xenwiki/XenParavirtOps wiki page.
Some help and tips for migrating from linux-2.6.18 to pvops dom0 kernel available from this wiki page: 2.6.18-to-2.6.31-and-higher
List of older Linux 2.6.18 "Xenlinux" based source trees and/or patchsets, and the various forward-ports of them:
- Original "Xenlinux" kernel tree, based on Linux 2.6.18
Changelog at: http://xenbits.xen.org/linux-2.6.18-xen.hg
- This was the default dom0 kernel in all Xen 3.x releases, up to and including Xen 3.4.x.
- This tree is fully functional, includes all the Xen features and has been tested the most.
- Good choice if Linux 2.6.18 has all the needed drivers for your hardware.
- If you're having a problem with one of the newer kernels, it is good to try and verify with this kernel for reference.
- This tree has some driver backports from newer kernels to make it compatible with more/newer hardware
You can get this tree with Mercurial: "hg clone http://xenbits.xen.org/linux-2.6.18-xen.hg"
- These Xenlinux patches were considered too intrusive and had too many changes to core x86 code so they were not accepted into upstream Linux kernel.
- Xen 4.0 and xen-unstable moved away from this kernel and started using using pv_ops tree as a default dom0 kernel.
- But you can still use linux-2.6.18-xen with Xen 4.0 if you want.
Citrix XenServer / XCP Linux 2.6.27 and 2.6.32 kernel
- Based on Novell SLES11 2.6.27 kernel, with modifications and additions.
- Based on Novell SLES11 SP1 2.6.32 kernel, with modifications and additions.
XCP (Xen Cloud Platform) uses this Citrix XenServer kernel as is.
XCI (Xen Client Initiative) kernel is based on this Citrix XenServer kernel.
Available from the mercurial patch queue and in kernel-dom0 directory in source-1.iso from: http://www.xen.org/products/cloud_source.html
- XCP v0.1 includes: kernel-2.6.27.29-0.1.1.xs0.1.0.669.1028.src.rpm
- XCP v0.1.1. includes: kernel-2.6.27.42-0.1.1.xs0.1.1.737.1065.src.rpm
- XCP v0.5 includes: kernel-2.6.27.42-0.1.1.xs0.5.0.47.111160.src.rpm
More information about XCP: http://www.xen.org/products/cloudxen.html
See this email for information about SLES11, XenServer, XCP, and XCI kernel relations: http://lists.xensource.com/archives/html/xen-devel/2009-12/msg00033.html
XCP dom0 kernel patch queue announcement (2010/03): http://lists.xensource.com/archives/html/xen-devel/2010-03/msg00596.html
XCP dom0 2.6.27 kernel patch queue mercurial repository: http://xenbits.xen.org/XCP/linux-2.6.27.pq.hg
XCP dom0 2.6.32 kernel patch queue mercurial repository: http://xenbits.xen.org/XCP/linux-2.6.32.pq.hg
- XCI (Xen Client Initiative) Linux 2.6.27 Xen kernel tree
Xen dom0 kernel used in XCI development, based on XenServer 2.6.27 kernel.
- This tree has XCI specific patches and modifications.
See this mail for some building related information (June 2009): http://lists.xensource.com/archives/html/xen-devel/2009-06/msg00259.html
XCI project page with more information: http://www.xen.org/products/xci.html
XCI source including build instructions: http://www.xen.org/products/xci_source.html
- Novell OpenSUSE "Xenified" Xen kernel forward-ported patches
- Andrew Lyon has rebased Novell's OpenSUSE Xen kernel patches against standard kernel.org Linux 2.6.29, 2.6.30, 2.6.31, 2.6.32, 2.6.33, 2.6.34.
- These patches are based on the original Xenlinux 2.6.18 patches forward-ported to newer kernels by Novell / OpenSUSE.
These patches are based on the Suse Linux Enterprise 11 (SLES11) Linux 2.6.27 and SLES11 SP1 2.6.32 xen kernel patches: http://lists.xensource.com/archives/html/xen-devel/2009-07/msg00176.html
Announcement for 2.6.29 patches: http://lists.xensource.com/archives/html/xen-users/2009-04/msg00004.html and http://lists.xensource.com/archives/html/xen-devel/2009-06/msg00127.html
Announcement for 2.6.30 patches: http://lists.xensource.com/archives/html/xen-devel/2009-07/msg00027.html
Announcement for 2.6.31 patches: http://lists.xensource.com/archives/html/xen-users/2009-10/msg00342.html
Announcement for 2.6.31-9 patches: http://lists.xensource.com/archives/html/xen-users/2009-12/msg00411.html
Announcement for 2.6.31-10 patches: http://lists.xensource.com/archives/html/xen-users/2010-01/msg00032.html
Announcement for 2.6.31-14 and 2.6.32-1 patches: http://lists.xensource.com/archives/html/xen-users/2010-04/msg00091.html
Download the patches from here: http://code.google.com/p/gentoo-xen-kernel/downloads/list
Or from here: http://x17.eu/xen/
Link to OpenSUSE "Kernel Of The Day" development kernels, with possibly newer Xenlinux dom0 patches: ftp://ftp.suse.com/pub/projects/kernel/kotd/master/
Novell SLES11 SP1 2.6.32 kernel-xen: ftp://ftp.suse.com/pub/projects/kernel/kotd/SLE11-SP1/
OpenSUSE kernel factory: http://download.opensuse.org/repositories/Kernel:/HEAD/openSUSE_Factory/
OpenSUSE 11.2 kernels: http://download.opensuse.org/repositories/Kernel:/HEAD/openSUSE_11.2/
OpenSUSE 11.3 kernels: http://download.opensuse.org/repositories/Kernel:/HEAD/openSUSE_11.3/
Git mirror: http://www.gitorious.org/opensuse/kernel-source
Git mirror, master branch: http://gitorious.org/opensuse/kernel-source/commits/master
- Novell SLES11 Linux 2.6.27 Xen kernel patches
- Shipping in Novell Suse Linux Enterprise 11 kernel, and thus has gotten much more testing and bugfixing compared to the other various forward-ports.
- These patches are based on the original Xenlinux 2.6.18 patches and forward-ported to Linux 2.6.27 kernel by Novell.
Available from: ftp://ftp.suse.com/pub/projects/kernel/kotd/SLE11_BRANCH/
- And also from Novell SLES11 installation media and the usual Novell package updates download channels
- Novell SLES11 SP1 Linux 2.6.32 Xen kernel patches
- SLES 11 SP1 ships with Linux 2.6.32 kernel
- These patches are based on the original Xenlinux 2.6.18 patches and forward-ported to Linux 2.6.32 kernel by Novell.
Available from: ftp://ftp.suse.com/pub/projects/kernel/kotd/SLE11-SP1/
- Redhat Enterprise Linux 5 (RHEL5) kernel-xen
- Based on Linux 2.6.18 with a LOT of patches, fixes and driver and feature backports from Redhat
- Used also on CentOS 5, Scientific Linux 5 and other RHEL5 clones
- Lots of driver backports included so drivers are pretty much up to date, even the kernel version (2.6.18) seems old
- Also feature backports like EXT4 filesystem etc
- Known to be very stable, but doesn't support latest Xen features that can be found from xen.org linux-2.6.18-xen.hg
Is known to work with Xen 3.4.x hypervisors (http://gitco.de/repo/), and of course with the official RHEL5 Xen 3.1.2 hypervisor.
Available in kernel-2.6.18-*.el5.src.rpm from: ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/SRPMS/
- RHEL 5.4 ships with kernel-2.6.18-164.*.el5.src.rpm
- RHEL 5.5 ships with kernel-2.6.18-194.*.el5.src.rpm
- Unmaintained linux-2.6.27-xen tree on xenbits
- This kernel tree is not maintained, and is known to contain bugs, so it should not be used.
If you want dom0 kernel based on Linux 2.6.27, you should use SLES11, XenServer/XCP, or XCI 2.6.27 kernel and not this one.
Don't use this one: http://xenbits.xen.org/ext/linux-2.6.27-xen.hg
Xen dom0 kernels included in Linux distributions
- Redhat Enterprise Linux 5 (RHEL5) and CentOS 5
- Includes Xen dom0 kernel based on Linux 2.6.18, with a lot of patches and fixes by Redhat.
- Redhat has also backported a lot of drivers and support for new hardware and features into their version of Linux 2.6.18.
- Good choice as dom0 because RHEL5 has long lifecycle, and it's actively maintained and bugfixed.
- Good choice because it's tested and certified to run on many vendors server hardware.
- Good choice especially if you are trying out Xen virtualization for the first time, and want to use a distribution that has well working and tested Xen included.
- Fedora
- Fedora 8 is currently the latest release to include Xen dom0 kernel.
- Fedora 9, 10, 11 and 12 do not contain Xen dom0 kernels (but they do contain Xen hypervisor and tools and Xen domU enabled kernels).
- Fedora is planning to add support for Xen dom0 again when pv_ops dom0 is included in the upstream kernel.org Linux kernels.
For more information: http://fedoraproject.org/wiki/Features/XenPvopsDom0
M A Young is building unofficial pv_ops Xen dom0 kernel RPMs for Fedora. Download: http://fedorapeople.org/~myoung/dom0/
- See fedora-xen and/or fedora-virt mailinglist archives for more information.
- Debian
- Debian 4.0 ("etch") contains 2.6.18 Xen dom0 kernel.
- Debian 5.0 ("lenny") contains 2.6.26 Xen dom0 kernel based on early version of OpenSUSE forward-ported patches. Some users have experienced stability problems with this kernel, when used with newer Xen 3.3 and 3.4 hypervisors. Also, some users have reported live migrations being broken with this lenny's kernel.
- Debian is planning to ship pv_ops dom0 kernel with the upcoming Debian 6.0 ("Squeeze")
- Ubuntu
- Ubuntu 8.04 LTS (Hardy Heron) has Xen dom0 kernel (based on Linux 2.6.24) available in the universe repository (so it's not part of the official release - it's community supported). Unfortunately many users have reported various bugs with this kernel - both as dom0 and as domU.
- Ubuntu 8.10 (Intrepid) and later ubuntu versions unfortunately don't include Xen dom0 kernels in the repositories. You have to compile/download your own dom0 kernel, or use Debian kernels.
- Gentoo
- Gentoo has multiple dom0 kernels available: xen.org-based 2.6.18 (latest is xen-sources-2.6.18-r12) and rebased kernels with OpenSUSE patches (latest is xen-sources-2.6.31-r11).
- OpenSUSE
- Novell is forward-porting the original Xenlinux 2.6.18 patches for new kernels in OpenSUSE (and SLES).
- Currently (as of May 2010) patches and Xen dom0 kernel packages exist up to Linux 2.6.34.
- OpenSUSE 11.2 ships with Linux 2.6.31 based Xen kernel using the forward-ported Xenlinux patches.
- OpenSUSE 11.3 will ship with Linux 2.6.34 based Xen kernel using the forward-ported Xenlinux patches.
- Novell Suse Linux Enterprise (SLES)
- SLES10 and SLES11 contain Xen dom0 kernels.
- SLES10 is based on Linux 2.6.16.
- SLES11 is based on Linux 2.6.27 with forward-ported original Xenlinux 2.6.18 patches.
- SLES11 SP1 ships with a Linux 2.6.32 dom0 kernel based on the forward-ported Xenlinux patches.
- Good choice as dom0 because SLES releases have long lifecycle and they are actively maintained and bugfixed.
- Good choice because it's tested and certified to run on many vendors server hardware.
Please see XenKernelFeatures wiki page for information about features in different Xen enabled kernels!
Discussion about different Xen dom0 kernels on xen-devel mailinglist June/2009: * http://lists.xensource.com/archives/html/xen-devel/2009-06/msg00241.html
