XL
Introduction
xl was introduced in the Xen 4.1 release, however xend remained the default. As of Xen 4.2 however xend will be deprecated (and may eventually be removed) and xl should now be used by default.
xl is based on the xenlight library (libxl), a library designed to provide a common "bottom third" for any Xen toolstack.
Features
- PV and HVM guests.
- Basic guest lifecycle operations: create, shutdown, reboot, pause, unpause, list, rename etc.
- Guest device support, including hotplug and unplug:
- Network devices (both para-virtualised and emulated)
- Block devices (both para-virtualised and emulated)
- Virtual framebuffer, keyboard and mouse both para-virtualised and emulated)
- Including SDL, VNC and SPICE output
- PV console devices
- Live migration and save/restore of guests,
- Passthrough of PCI devices to guests.
- VCPU pinning
- CPU pools, including cpupool-per-NUMA node.
- Control of CPU scheduler parameters
- TMEM
- XSM/Flash policy control.
- Control of CPUID features exposed to guests.
- Support for both the traditional Xen for of qemu (qemu-xen-traditional) and upstream qemu versions (qemu-xen)
See also XL vs Xend Feature Comparison
Upgrading from xend
The xl toolstack is intended to remain backwards compatible with existing xm domain configuration files. It is therefore expected that any existing configurations should work with xl (although note the exceptions in Anti-Features below):
Unlike xend the xl toolstack will not perform any host networking configuration for you. The xend code to reconfigure on startup is extremely fragile, prone to bugs when either distro or Xen are upgraded and rather difficult to debug. Instead xl takes the approach of deferring such network configuration to the distribution configuration tools which are usually well understood and documented. Therefore upon upgrading to xl it is necessary to configure your host networking stack appropriately. Please see HostConfiguration/Networking for more details on how to do this.
You can find a feature by feature comparison of XL and Xen in XL vs Xend Feature Comparison.
Please report any other configuration file incompatibilities to the Xen developers on the xen-devel mailing list.
xl Upgrade Checklist
- Configure your host networking using the configuration tools provided by your distribution. (See: HostConfiguration/Networking)
- Remove any python code from domU configuration files.
- Disable xend startup script.
- Use xl command instead of xm
Anti-Features
The following are explicitly not supported by xl:
- Managed Domains (a la xm vm-create). Suitable alternatives: xapi, which is available as part of XCP or via Project Kronos or libvirt or some very simple scripting (e.g. the xendomains initscript). Also see Choice of Toolstacks
- Python code in configuration files. See: PythonInXlConfig
Documentation
Document related to xl and xl.cfg | Description |
---|---|
xl(1) | Xen management tool, based on LibXenlight |
xl.cfg(5) | XL Domain Configuration File Syntax |
xl.cfg(5), disk configuration | This document specifies the xl config file format disk configuration option. |
xl.cfg(5), network configuration | This document specifies the xl config file format vif configuration option. |
xl.cfg(5), tsc_mode configuration | In Xen 4 a new config option called tsc_mode may be specified for each domain. This document is targeted for Xen users and administrators that may need to select a non-default tsc_mode. |