Introducing Thomas Goirand, XCP packager

I’d like to introduce you to Thomas Goirand, who has volunteered to help us package the XenAPI toolstack for Debian as part of the Kronos project. Thomas is a Debian package maintainer and CEO of GPLHost. Thomas attended DebConf in Bosnia two weeks ago, where he did a great deal of work for the XCP-to-Debian packaging effort. We asked Thomas to write a short summary of his history with Xen, and his Project Kronos packaging efforts to date.

Hi my name is Thomas Goirand and I am CEO of GPLHost and Debian maintainer.
GPLHost has been providing a VPS hosting service based on Xen, since Xen 2.07 and we have been extremely happy with Xen. In particular on performance, stability and feature richness. When the idea of cloud computing started to take off, GPLHost was thinking about providing a cloud computing service. But we were in the same situation as in 2004/2005, when there was only UML as hypervisor and there was no open source technology that was fitting the bill. So when OpenStack started as a project, it was quite natural that we wanted to contribute and offer Openstack to our customers.

OpenStack development was one of the rare instances, where Debian was downstream of Ubuntu as OpenStack is developed on Ubuntu first, closely following the Ubuntu release cycle. One would think that Opestack code for Debian and Ubuntu is identical: Not true! About 2-3 dozens of patches were necessary to have OpenStack Nova, Glance and Swift ready for a Debian upload. Examples of differences are: Ubuntu uses upstart, when Debian uses insserv. As a consequence, init scripts had to be written nearly from scratch. Anyway, this work is done and OpenStack is available in Debian SID, as well as in our private repository for the Squeeze backport. By the way, I am searching for co-maintainers for these important packages.

In its current state, OpenStack can only be used with KVM as hypervisor, if you want to use Debian. You can of course use OpenStack with XCP, which is a CentOS appliance. But since I am a Debian developer and all GPLHost infrastructure is based on Debian, running an RPM based distribution is not an option. So I investigated if it is possible to package Xen-API (xapi) for Debian. The answers I got from both the OpenStack and xen-devel list were quite disappointing: XCP was, from the beginning, designed as an appliance, with many core packages being modified (kernel, lvm, and other libraries…). Porting it would be hard, because a lot of packages would have to be modified. This would make it quite difficult to port without the help of upstream XCP (yes, I’m talking about Citrix here).

Later, someone told me that my questions on public mailing lists sparked some internal discussion inside the XCP project which is led by Citrix. This led to the creation of project Kronos, whose goal it is to make Xen-API independent of CentOS and to also move away from an appliance only model. The first goal is to have a full Xen-API support for Ubuntu and that “apt-get install xen-api” would magically install everything. But the work would be done in Debian first and synched from SID to Ubuntu (which is part of the normal release cycle for Ubuntu). I was delighted. Of course, as Ian Campbell told me at Debconf 11, “it was ready to burst”, and I believe it would have probably happen anyway, even without me asking. Nevertheless, I am happy I asked at the time and am also happy to work on the packaging.

Anyway, the XCP project started porting their code from the CentOS XCP appliance. Since then, I started the packaging work, together with the help of “upstream” XCP (as in: Mike McClurg, Jonathan Ludlam, and others at Citrix in Cambridge).

Currently, the following packages are more or less ready:

  • libblktap
  • Xen 4.1.1 (modified current packaging to build the Xen OCaml libraries)

The following will still need to be built:

  • blktap DKMS package (since blktap wont ever make it to kernel.org)
  • xen-api-libs
  • xen-api

Even though I don’t really know much about OCaml, I know enough about Debian packaging to help out. And thanks to the help of Ian Jackson and Ian Campbell, who are both Debian Developers working on Xen and thanks to the OCaml task force at Debian who all agreed to review the packages, I believe it will be possible to create packages with good quality straight from the start. For those of you who never wrote packages (being RPM or .debs), you got to understand that writing quality packages is a tedious task and that it really improves quality to have more than a pair of eyes looking at the result.

Since DebConf 2011 we have the Linux 3.0 kernel available in Debian, including upstream kernel.org support for Xen dom0 (others have already blogged about the inclusion of the dom0 features in kernel.org for the 3.0 release). Thanks you to the Debian kernel team and in particular to Ben Hutching who did this one upload. With a little bit of extra effort, it will soon be possible to run XCP directly from Debian, with Xen 4.1.1 and Linux 3.0, all of which are available right now in SID. This means that this support should be available in Ubuntu as well: it looks we may be too late for Ubuntu 11.10, so we are working towards having XCP support in Ubuntu for the 12.04 LTS release (well, in my case, I’m working for Wheezy support, not for Ubuntu…).

All this is very exiting, and I am really looking forward to the work being done, for the first tests, with XCP first and then with OpenStack.