One really great feature of Xen is that there are several choices of toolstacks that can be used to manage it. Before the introdcution of libxenlight, there was a complicated and inefficient toolstack situation. The issue was that xend, xapi, libvirt, etc. all needed to manage many common low-level operations, which led to code duplication, ineffeciences, bugs, and wasted effort (e.g fixing the same bug in all of of the toolstacks). Further, the default toolstack at the time (xend) was difficult to understand, modify, and extend.
Libxenlight (libxl)
Libxenlight is a small lower-level library written in C. It is meant to be simple to understand and easy to modify and extend. Basically, it is meant to be the common bottom third of any Xen toolstack. It was created to provide a simple and robust API for all the toolstack to use (instead of all of the toolstacks each implemented this common functionality). It was also created to be a common codebase to do Xen operations.
libxl Design Principles
- Implement Mechanisms, not policies
- Stateless
- Hide xenstore, libxenctrl, and libxenguest from higher levels
- Be as simple as possible
xl
The xl command line tool is the command line interface to libxenlight and the default toolstack for Xen as of Xen 4.1
XAPI
The Xen management API (xapi) is the default toolstack for Citrix XenServer and XCP. XAPI is fully open source and has been ported to Linux distributions (seeProject_Kronos). At the time of this writing, work is in progress to port XAPI to use libxenlight. For more information see [the XAPI source code], the [the XAPI mailing list], or the IRC channel (#xen-api on Freenode).
libvirt
libvirt is a virtualization API/toolkit used to manage various virtualization technologies. There is a libxenlight port of libvirt.
XEND
As of Xen 4.1, the xend toolstack is deprecated. xl should be used instead.
Command Line Interface (CLI) Tools
The table shows the command line tools to use with each of the toolstacks.
Toolstack CLI Tools
Toolstack | libxl | xend (deprecated) | ||
CLI tool | xe |