Tag Archives: Linux

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.

Project Kronos: XenAPI on Debian and Ubuntu

The XCP team would like to formally announce Project Kronos, our port of XCP’s XenAPI toolstack to Debian and Ubuntu dom0. This will give users the ability to install Debian or Ubuntu, and then just do ‘apt-get install xapi’ in order to build a system that is (roughly) functionally equivalent to a standard XCP distribution.

This project provides a number of benefits. First of all, it will provide Xen users with the option of using the same API and toolstack that XCP and XenServer provide. It will give early adopters the chance to try out new changes to the XenAPI before they get released in new XCP and XenServer versions. And because we’ve ported all of our toolstack to build on Debian, it’s now much, much easier to build our tools outside of an SDK VM.

Some useful links:

To use the xapi autobuilder, just clone the repository and type ‘make’. This will pull in all the dependency repositories and build them using pbuilder. If you want to build individual packages, dig into the build scripts a bit to see what’s going on — hopefully we’ll have a little better documentation soon.

Please follow the instructions and play along! This is very much a work in progress, and things are expected to change rapidly. We don’t expect everything to work properly yet, but we think it’s ready enough to at least share our progress. If you do decide to test this out, please report any bugs you find or problems you encounter to the xen-api mailing list, with the subject line “Xapi on Debian: <blah>”. There are also XCP contributors lurking on #xen-api on freenode who may be able to answer questions about build or install problems.

Thanks to everyone who’s helped out with this project, and to everyone who is about to give it a try. Happy hacking!

XCP 1.1 Beta Release

The XCP project team would like to let you know that we have released XCP 1.1 beta today. While this is only a minor version bump from XCP 1.0, there are quite a few new features included with this release:

  • Security updates and bug fixes
  • IntelliCache: Enables you to use a combination of Shared storage and local storage caching.
  • Local Storage Spans All Physical Volumes: When EXT local storage is used on a host containing multiple physical disks, the local Storage Repository (SR) now spans all the disks in a single LVM volume group.
  • Reset-on-boot VM behaviour: Disks with the on-boot option set to reset, is now available for disks in any type of SR. (Previously it was only available for disks in NFS and EXT SRs.)
  • Block SCSI Generic Support: BSG support added enabling full compatibility with Emulex and QLogic management functionality.
  • Enhanced guest OS support: Support for Red Hat Enterprise Linux (RHEL) 6.

The beta will continue until the community is satisfied that we have resolved all critical bugs, but we hope to publish XCP 1.1 final release in late July. If you do believe you have found a bug with the beta, please report it to the xen-api mailing list with the subject “XCP BETA BUG: <brief description of bug>“.

The next major release of XCP will be released as beta later this month. For more information, see the XCP Roadmap page on the Xen.org wiki.

XCP on Ubuntu

My name is Mike McClurg, and I am a Citrix developer working on the Xen API (xapi) and the Xen Cloud Platform. I have recently been chosen as the new lead for the XCP project, and there are a few exciting new developments that I’d like to share with you.

As you may have heard, both Citrix and Canonical have recently announced their support for OpenStack, an open source cloud controller sponsored by Rackspace and NASA. In order to make the Xen API toolstack the best solution for running OpenStack on the Xen platform, we’ve decided to port XCP’s Xen API toolstack to Ubuntu. This would allow you to do ‘apt-get install xapi’, and effectively turn your Ubuntu machine into a Xen Cloud Platform server.

As part of this project, we aim to move XCP to a fully open development process that will allow much greater participation from the Xen community. Building individual toolstack components will no longer require an SDK environment. XCP source repositories will be updated more frequently. Releases of the monolithic, CentOS-based XCP appliance will become more frequent as well.

With the recent announcement of full Xen dom0/domU support in Linux 3.0, and the Xen API toolstack moving to support Ubuntu and other distributions, this is a really exciting time to be a part of Xen.

XCP Community Call #3

There will be another Xen Cloud Platform (XCP) call this week on Thursday, October 14th. We’ll post an agenda and some slides before the meeting happens. If there is anything anybody particularly wants to discuss, please get in touch!

Call details below:

Meeting Date:  October 14, 2010
Time:  2:00 pm UK (London) / 9:00 am US EST
Location: IRC #xen-api on Freenode
Dial-In: 1.888.371.8921  Code: 14588484

International dial in numbers:

Previous calls (and place to find slides and agenda when they are posted):

Manipulating VM tags using xe

As far as I can see, the “xe” command in XCP and XenServer is missing the options to implement the underlying VM.get_tags, VM.set_tags, VM.add_tags and VM.remove_tags Xen API calls to manipulate tags associated with VMs.

Am I missing something, or is there some reason why these options have been omitted?