BexarLXCContainers


 * Launchpad Entry: NovaSpec:bexar-nova-containers
 * Created: 2010-11-15
 * Contributors: Chuck Short

Summary
LXC is a leading technology for containers running on modern Linux distributions. This spec deals how we add LXC containers to nova.

Release Note
Openstack now supports LXC containers. LXC (Linux Containers) is an operating system-level virtualization method for running multiple isolated Linux systems (containers) on a single control host. LXC does not provide a virtual machine, but rather provides a virtual environment that has its own process and network space.

Rationale
LXC provides developers a lightweight virtualization technology to test Openstack. LXC provides a way to extend openstack to other architectures such as ARM.

User stories
Fred is an Openstack developer that wants to use a lightweight virtualization technology to test Openstack.

Roger is a system administrator who wants to deploy a large data center using Openstack and chooses LXC as his prefered choice of virtualization technology.

Assumptions
User already had LXC and libvirt installed.The image will be compatible with LXC.

Design
Nova will run a modified image that will run LXC through libvirt.

Implementation

 * 1) User will have a LXC compatible image that looks like a normal EC2 image and use euca-bundle-image to make it available for Nova.
 * 2) User will ask run the image.
 * 3) Nova compute will mount the image over via losetup.
 * 4) Nova compute will create a directory where the containers is going to be located
 * 5) Nova compute will copy the contents of the image to the directory that was created previously.
 * 6) Nova compute will invoke libvirt to get the LXC container to run.