Jump to: navigation, search

XenAPI

Revision as of 21:03, 7 September 2010 by EwanMellor (talk)
  • 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).