Choice of Toolstacks: Difference between revisions
Lars.kurth (talk | contribs) m (→XAPI / XE) |
Lars.kurth (talk | contribs) m (→XAPI / XE) |
||
Line 31: | Line 31: | ||
===XAPI / XE === |
===XAPI / XE === |
||
The Xen management API ([[XAPI|xapi]]) is the default toolstack for Citrix [[XenServer]] and [[XCP]]. XAPI is fully open source and has been ported to Linux distributions (see [[Project Kronos]]). At the time of this writing, work is in progress to port XAPI to use libxenlight. For more information see |
The Xen management API ([[XAPI|xapi]]) is the default toolstack for Citrix [[XenServer]] and [[XCP]]. XAPI is fully open source and has been ported to Linux distributions (see [[Project Kronos]]). At the time of this writing, work is in progress to port XAPI to use libxenlight. For more information see [https://github.com/xen-org/xen-api the XAPI source code], the [http://lists.xen.org/mailman/listinfo/xen-api the XAPI mailing list], or the IRC channel (#xen-api on Freenode). |
||
'''Also see:''' |
'''Also see:''' |
||
Line 43: | Line 43: | ||
By far the most versatile and feature-complete Xen toolstack is XAPI. XAPI is production-ready and purpose-built for Xen. It is default in Citrix XenServer and XCP. It is the API that cloud orchestration software such as |
By far the most versatile and feature-complete Xen toolstack is XAPI. XAPI is production-ready and purpose-built for Xen. It is default in Citrix XenServer and XCP. It is the API that cloud orchestration software such as |
||
* CloudStack |
* [[:Category:CloudStack|CloudStack]] |
||
* [[OpenNebulaXCP|OpenNebula]] |
* [[OpenNebulaXCP|OpenNebula]] |
||
* [[:Category:OpenStack|OpenStack]] |
* [[:Category:OpenStack|OpenStack]] |
Revision as of 12:32, 28 May 2012
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 simple to understand and easy to modify and extend. Libxl is (or will be) shared by all Xen toolstacks. It was created to provide a simple and robust API for all the toolstack to use (instead all of the toolstacks each implementing 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
Also see
- Libxl improvements (in Xen 4.2)
- Stefano's libxenlight [video] and [slides] at Xen Summit NA 2010.
Choice of Toolstacks
This section describes the various toolstacks (and the console that is used to run it).
Default / XL
xl is a lightweight command line toolstack built using libxenlight. xl is shipped along with Xen and is the default toolstack for Xen as of Xen 4.1.
xl was designed to be backwards compatible with the xm CLI for xend.
Also see:
- Open source projects interfacing/using the default stack
- Commercial products interfacing/using the default stack
XAPI / XE
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 (see Project 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).
Also see:
- Why XAPI? discussion section includes comparison to libvirt
- Nuts and Bolts from Steven Maresca (not only why XAPI, but how to use it)
- Open source projects interfacing with/using XAPI
- Commercial products interfacing with/using XAPI
- More info on XCP
Why Choose XAPI?
By far the most versatile and feature-complete Xen toolstack is XAPI. XAPI is production-ready and purpose-built for Xen. It is default in Citrix XenServer and XCP. It is the API that cloud orchestration software such as
use to interact with Xen. It is available to be installed on standard Linux distributions such as Debian and Ubuntu (Project Kronos). With support for Fedora and CentOS coming soon too (Project Zeus Fedora Spec). Finally, there are several design decisions that make it a better choice than libvirt (see [Why XAPI?]).
libvirt / VIRSH
libvirt is a virtualization API/toolkit used to manage various virtualization technologies. There is a libxenlight port of libvirt.
Also see:
Default / XEND (Deprecated in Xen 4.1)
XEND is the previous toolstack and continues to be included as part of the Xen source releases. However as of Xen 4.1 XEND is now deprecated and will likely be removed in a future release. It is recommended that new deployments use one of the other toolstacks discussed above.
xl was designed to be command line compatible with the xm CLI to xend and this should provide the easiest upgrade path.
Command Line Interface (CLI) Tools
The table shows the command line tools to use with each of the toolstacks.
Toolstack | xl | XAPI | libvirt | xend |
CLI tool | xl | xe | virsh | xm |
Note: xl does not have a toolstack/cli split since the toolstack is the cli. Hence it appears under both headings.
Toolstack Feature Comparison
Features | xl | xapi | libvirt |
Purpose-built for Xen | X | X | |
Basic VM Operations | X | X | X |
Managed Domains | X | X | |
Live Migration | X | X | X |
PCI Passthrough | X | X | X |
Host Pools | X | ||
Flexible, Advanced Storage Types | X | ||
Built-in advanced performance monitoring (RRDs) | X | ||
Host Plugins (XAPI) | X |
Discussion
The power and flexibility of the management of Xen is an important feature. Users have a choice to use xl, XAPI, libvirt, or other toolstack to manage their Xen system(s).
- xl is very lightweight and is a great choice for develpers or users who are most comfortable with Unix like CLI tools.
- XAPI is a powerful toolstack that provides domain life-cycle management, pool-awareness (multiple Xen systems added to a central logical pool), and many other advanced features available with Xen.
- libvirt is a generalized virtualization layer for managing various virtualization technlogies with a common toolkit (or toolstack).