XenAPI
- Launchpad Entry: NovaSpec:austin-xenapi
- Created: 7 September 2010
- Contributors: Ewan Mellor
Summary
XenServer: Commercial, supported product from Citrix.
Xen Cloud Platform: Open-source equivalent of XenServer (and the development project for the toolstack).
XenAPI: The management API exposed by XenServer and Xen Cloud Platform.
This specification covers Nova support for XenServer and Xen Cloud Platform through XenAPI. Note that this does not imply support for other Xen-based platforms such as those shipped with RHEL 5 or SUSE.
Release Note
Nova may now use XenServer or Xen Cloud Platform as a virtualization platform.
Rationale
User stories
Assumptions
The OpenStack project will not ship the XenAPI.py module. Users will need to get that from http://wiki.xensource.com/xenwiki/XCP_SDK or http://community.citrix.com/cdn/xs/sdks.
Design
The pre-existing interface between Nova and the virtualization platform is through libvirt, with various calls to libvirt (and virsh) from Nova's compute and monitoring layers. There is also a libvirt simulation module, for unit testing without making calls to the a platform.
In order to add XenAPI support, we propose a new layer (nova.virt) that abstracts over the calls to libvirt. Through this abstract interface, the main body of Nova can make virtualization calls without reference to any particular platform. This interface will then be implemented by modules for libvirt (nova.virt.libvirt_conn), XenAPI (nova.virt.xenapi), or a simulator(nova.virt.fake).