XenServer/XenAndXenServer
<<TableOfContents()>>
Using Xen, XCP and XenServer with OpenStack
Xen and/or XenServer power some of the worlds largest clouds, including Amazon and Rackspace.
There are several ways to use the Xen hypervisor with OpenStack:
- Use Xen directly through libvirt
- Use XenServer or Xen Cloud Platform (XCP) to manage Xen using xapi/XenAPI
- Convert your Debian/Ubuntu or RedHat/Fedora/CentOS box into an XCP Domain0 using Project Kronos, then use xapi as above
Please note:
- Xen is a hypervisor (see: http://xen.org/files/Marketing/WhatisXen.pdf)
- XenServer is a commercial product, supported by Citrix
- XCP is an OpenSource version of XenServer (see: http://xen.org/products/cloudxen.html)
- XenServer and XCP include Xen, but also include a Dom0 VM that includes lots of management tools, including xenapi
- Kronos is an XCP project to make xenapi and other core parts of XCP available via apt-get on Debian and Ubuntu
XenServer Deployments
When deploy OpenStack on XenServer you will get something similar to this:
File:XenServer$$XenXCPAndXenServer$DevStackDiagram.png
Key things to note:
- The hypervisor: Xen
- Domain0 control VM: runs xapi/XenAPI and is provided by XenServer or XCP (or yourself using Kronos)
- The nova code runs in a Para-virtulized virtual machine, running on the hyper visor it is wanting to manage
- Nova uses xapi python bindings to talk to the hypervisor, and it uses a host local network, called the Guest Installer Network, that has a DHCP server
Some notes on the networking:
- The above diagram assume FlatDHCP networking (the DevStack default)
- There are three main OpenStack networks: Management traffic (Rabbit, MySQL, etc), Guest network traffic (controlled by nova-network) and Public traffic (floating ips, public api end points)
- Above we show how you can use VLANs to reduce the required number of network cards on the server, in this case running the instance traffic on a VLAN when exiting the XenServer machine.
XenServer pools
Before 2012.1, all XenServer machines used with OpenStack are deployments are standalone machines, usually only using local storage.
However in 2012.1 and later, the host-aggregates feature allows you to create pools of XenServer hosts (configuring shared storage is still an out of band activity). This move will enable live migration when using shared storage.
Getting started with XenServer and OpenStack
To get started working with XenServer, use DevStack. You will need to:
- Install XenServer (get started by registering and downloading the latest free edition of XenServer)
- Get another machine (probably best with Ubuntu 11.10) with enough disk space to build DevStack VM images
- Then follow the [[XenServer/DevStack|DevStack XenServer readme]]
Further Reading
Users have created some docs on getting started with XCP and OpenStack:
Xen and libvirt
It may possible to talk directly to Xen using libvirt.
However, it is easiest to get started using XenServer or XCP, because this approach is better tested and documented.