Recent Changes Let Xen Project Work Out of the Box in OpenStack
Members of the Xen Project development team have always believed that the hypervisor must be available for integration into other Open Source projects. In particular, the initiators of the Xen Project envisioned the day when compute resources would be available in a dynamic form, which has since been codified in the technology we now call Cloud Computing.
However, most members of the project team have usually left the details of integration into other projects to those interested individuals who were participating in those other projects. In the case of OpenStack, however, it became apparent that the Xen Project team would need to be engaged to make the integration as transparent as it should be.
Improvements to Libvirt
Xen Project has always supported the libvirt toolset, but in recent years, the quality of integration into libvirt has suffered. As libvirt has become a key cross-platform integration technology in recent years, this deficiency became problematic with OpenStack and other projects which rely on libvirt.
But over the past year, Jim Fehlig has led the charge to bring Xen Project support in libvirt up to par. In addition, the interface had to be re-engineered to use the libxenlight library which has become the predominant interface for Xen Project in the past few releases. The needed improvements have made integration into OpenStack reasonable. But that was only the beginning of the battle.
OpenStack Involvement and Improvements
Even with greatly improved libvirt support, OpenStack itself had to use the interface in a way which made sense with the Xen Project Hypervisor. The existing integration logic within OpenStack was good, but it needed a couple of patches to make basic functions work correctly. Anthony Perard stepped in and produced the needed patches which have recently been accepted into OpenStack.
This marks the beginning of an increasing involvement of Xen Project within the OpenStack community. In addition to committing to make the hypervisor work well within OpenStack, the Xen Project team has begun making plans to eventually raise the hypervisor from Group C support in OpenStack to Group A. Also, Xen Project developers will be examining ways to help make the hypervisor even more usable in OpenStack in the future.
Greatly Improved Documentation
If you looked for OpenStack integration information on the Xen Project Wiki just 6 months ago, you would have found absolutely nothing dealing with integration via libvirt. Now, however, you can find information on integrating the hypervisor with OpenStack, a HowTo on building a Xen Project-based Ubuntu OpenStack, instructions on installing DevStack, and more.
Presentations at FOSDEM and openSUSE Mini-Summit, plus a Video Demo
Attendees of this year’s FOSDEM’15 had the opportunity to hear Stefano Stabellini talk about using the Xen Project Hypervisor in OpenStack. They also had the opportunity to see Anthony Perard’s demonstration of building a functional Xen Project-based DevStack in under 15 minutes, which eventually birthed this HowTo video:
This was followed by a presentation at the openSUSE Mini-Summit at the Southern California Linux Expo (SCALE 13x) given by Peter Linnell of SUSE and Russell Pavlicek. This presentation discussed how the Xen Project Hypervisor works out-of-the-box with the SUSE OpenStack Cloud.
What Comes Next?
To move the Xen Project Hypervisor to Group B or A in OpenStack, we need a fully functional testbed which can run the required tests every time the OpenStack software is improved. Our team is already hard at work constructing this testbed so our hypervisor can be promoted to a higher support group.
We may have improved Xen Project’s documentation around OpenStack, but we also need to raise the quality of documentation within the OpenStack itself. For example, if you look at OpenStack’s Xen Project via Libvirt wiki page, it is (as of this writing) empty. We need proper documentation to reflect the libvirt integration which is currently used by a variety of OpenStack implementations, both in the OpenStack wiki and in its formal documentation.
Watch our blog for more advances as they happen!