Ubuntu – Ubuntu 14.04, Xen 4.4 and XAPI toolstack

virtualizationxen

Just decided to start over with XEN on a completly different box I have.

In preparation, I started to look into the package details based on information found on both the Ubuntu howto wiki for Xen installation and information found on the Xen Project website.

Based on what I read on the XenProject website, it recommends using XAPI as the toolstack of choice.
XenProject Wiki – Toolstack Comparison

Now I know XCP is deprecated and no longer in use for the most part.
But it doesn't appear that the XAPI toolstack has been deprecated. At least I'm not seeing any information to that effect.

And when I'm trying to find information on this, specifically to Ubuntu 14.04, I'm just finding information on using the xl toolstack.

What am I missing here?
Is the XAPI toolstack now integrated into other components (hypervisor, kernel, etc)?
Did the XL toolstack replace XAPI completely?

Best Answer

The Answer

The XAPI toolstack is not dead. It is in active development here: https://github.com/xapi-project/xen-api

However, xapi never really ran right(imo) on debian derivatives. That has been changing since xen became a linux foundation project. If you really want xapi on debian, then I'd recommend you compile the xenserver core referenced in the xen-api github readme.

There are a couple of things you need to know..

First, some terminology,

The Xen Hypervisor is the thin layer that domains (or vms, referred to as dom0 or domu) talk to when they want resources. It is now part of the linux kernel, so it no longer requires a custom kernel to run. The hypervisor does not have a shell or any easy way to mess with it directly. It is generally configured and managed from a SPECIAL vm we call dom0, on which the toolstack is installed.

The Toolstack is a set of programs used to manage all domains on a host and to generally tell the Xen Hypervisor what to do. As you know, the primary toolstacks of choice are xe(XAPI/XCP), xl(xenlight/libxl), and xm(xend).

There exist other tools that talk to the various toolstacks and provide another layer of abstraction. The most well known of these is libvirt.

Not too long ago(ok, maybe awhile ago), xen hypervisor development was taken over by the linux foundation, which opened up a lot of doors as far as development was concerned. The most important things that you need to know are:

  1. xm is going away. This limits your future-proof toolstack choices to xl(libxl) or xapi.
  2. The xapi toolstack is working towards building xapi on top of libxl.

Ok, now to the effectively useful information. The differences between libxl and xapi.

xenlight, libxl, the xl toolstack

The xl toolstack is effectively a command line tool to manage the xen hypervisor. It generally is given a vm .cfg file like the ones in the ubuntu archive (http://archive.ubuntu.com/ubuntu/dists/trusty/main/installer-amd64/current/images/netboot/xen/xm-debian.cfg) and turns them into running vms via xl create .

It doesn't manage the creation of filesystems on iscsi targets or lvm systems. It is pretty dead simple and if you are starting with xen, it is imho the best place to get started as you can get a feel for what xen is doing and why. Additionally, the config files are human readable plain text, and when something is misconfigured it's easy to figure out how.

Here are some useful xl commands:

  • xl list
  • xl console
  • xl info

xe, xapi, XCP(misnomer, XCP is now known as XenServer, which is a full distro)

The xapi toolstack makes scaling xen vm deployment trivial. There are two parts to xapi, the xe command line tool and the xapi api which is accessible via rpc via a web interface. XAPI is what XenCenter talks to and is a fundamentally different experience from the simplicity of xl. With xapi, there are tools for managing lvm partitions, snapshots, remote storage, advanced networking, performance statistics, patches, etc etc etc.

It is much much more than a hypervisor toolstack in that it manages all parts of the host system. If you want to get used to xapi, the best route is to install Citrix XenServer and manage it from XenCenter. Once you get a feel for the GUI, ssh into your XenServer and start playing with the xe command. Everything, including the uuids that are associated with vms, are tab-completable and the help documentation is fairly complete.

The End

If you have more questions you can email me at b@ethe.us