Launchpad Entry: LSCSupportInEucalyptus
Created: May 3, 2010
Contributors: Bob Blair
Spec and plan the work to be done to add Linux Containers as a Virtual Machine target for Eucalyptus.
Where cloud administrators specify the virtual machine type of an image to be started using Eucalyptus, they can specify Xen, KVM or Linux Clusters. Given a corresponding virtual machine description, they work mostly the same.
Eucalyptus is a key component of Ubuntu server cloud strategy. Many data centers consider it essential to manage and administer their private clouds. Its conceit of working like EC2, and using EC2 images, makes it potentially important in the hybrid cloud space as well. Eucalyptus currently supports only two target VMMs: Xen and KVM. This has the side-effect of limiting the hardware used in Eucalyptus clouds to the machine types fully supported by these VMMs, that is 64-bit X86 architectures. Other architecures, which might otherwise have advantages in cloud computing, are shut out of Eucalyptus clouds for this reason. If Eucalyptus can be made to support LXC, which is widely portable, as a target, other hardware architectures can easily be used.
- Greatly increases hardware choices for cloud implementers who manage and administer using Eucalyptus. Increased choice could lead to better cost/performance, lower power utilization, new function, etc.
- Increases the density of virtual machines. Even hardware that supports a 64-bit X86 architecture can benefit from LXC support because LXC provides a light-weight isolation mechanism that potentially can support 10x or more partitions compared to Xen or KVM on the same box.
- It's a sort of synergy play. Eucalyptus and LXC are both important Ubuntu server components. It makes sense for them to work together.
- There are problems in making LXC fit the EC2/Eucalyptus configuration model. Although LXC supports the libvirt interfaces used by Eucalyptus node controller, it does not support any EC2 VM, image or ramdisk format. Fixing this (or working around it) will be the main part of the work.
- It may be some time before Amazon chooses to support LXC as a target. Until that happens, Eucalyptus would be a position of supporting function that can't be supported through EC2 interfaces.
- LXC is less flexible that KVM or Xen. With real hypervisors, you can run a wide variety of kernels on the same hardware. With Linux Containers, you run on the kernel which is running on the hardware.
- Implementation of checkpoint and restart, while long available in commercial container products, is still being worked on in LXC.
There is work to be done in these areas:
- Add LXC as a Eucalyptus target. This involves
- adding handlers for LXC in the node controller b. adding logic that detects invalid domain definition combinations.
- Add any additional behavior required in LXC libvirt support. Recent traffic on the lxc-user list suggests that the lxc project may have this work in mind for July, 2010
- Come up with a strategy for using EC2 kernel/ramdisk to load containers, or alternately to distribute LXC snapshots
- Determine what EC2 device definition (especially network definition) can be supported in LXC. For example, does LXC support as rich a bridging function as do KVM and Xen?
- Remote connection to LXC containers using RDP and AWS get-password.
In this sprint, we propose to
- validate the list of tasks,
- size the work,
- do a design,
- get buy-in from LXC and Eucalyptus projects,
- and schedule resources for implementation.
An implementation plan is a deliverable of this effort.
- how users will be pointed to the new way of doing things, if necessary. (TBD)
It's important that we are able to test new features, and demonstrate them to users. Use this section to describe a short plan that anybody can follow that demonstrates the feature is working. This can then be used during testing, and to show off after release. Please add an entry to http://testcases.qa.ubuntu.com/Coverage/NewFeatures for tracking test coverage.
This need not be added or completed until the specification is nearing beta.
This should highlight any issues that should be addressed in further specifications, and not problems with the specification itself; since any specification with problems cannot be approved.
BoF agenda and discussion
Use this section to take notes during the BoF; if you keep it in the approved spec, use it for summarising what was discussed and note any options that were rejected.