Summary

Being bound to real hardware for testing of a cloud computing platform is very ironic and very annoying. Adding user-mode-linux as a supported hypervisor will let us test stuff at scale in the cloud.

Release Note

For testing purposes, user-mode-linux support has been added to OpenStack Compute. It works, but is intended exclusively for testing purposes, not for production use.

Rationale

User-mode-linux excels by (like QEmu) not requiring any particular host kernel support, and at the same time being fast enough to actually be usable (unlike QEmu).

User stories

Soren is a Nova developer. He does not have a lot of hardware (and what little he has is quite noisy), so he wants to run his tests in the cloud. He installs Nova and configures the libvirt plugin to use uml instead of kvm, et voila!

Assumptions

We assume libvirt's user-mode-linux support is in good shape1.

We assume Ubuntu's user-mode-linux package is in good shape2.

Design

Nova already has libvirt support and libvirt supports user-mode-linux, so extending the libvirt plugin to support user-mode-linux seems like the most obvious approach.

Implementation

The libvirt_type flag gets another valid option: "uml". If specified as such, the libvirt_uri (a new) flag will be set to "uml:///system" and a different libvirt xml template will be used.

Test/Demo Plan

An example image can be found at http://nova.openstack.org/~soren/ubuntu-lucid-uml.img.gz

wget http://nova.openstack.org/~soren/ubuntu-lucid-uml.img.gz
gzip -d ubuntu-lucid-uml.img.gz
euca-bundle -i ubuntu-lucid-uml.img
euca-upload-bundle -b uml-image-bucket -m /tmp/ubuntu-lucid-uml.img.manifest.xml
euca-register uml-image-bucket/ubuntu-lucid-uml.img.manifest.xml

Set  --libvirt_type=uml  in /etc/nova/nova-compute.conf

Run an instance with this image. You should be able to succesfully log in over ssh as the user ubunt with password ubuntu. euca-get-console-output should also work as well as the various EBS related operations.


CategorySpec

  1. This is true.. Now. (1)

  2. This is also true.. Now. (2)

Wiki: UserModeLinuxSpec (last edited 2010-09-01 08:33:59 by SorenHansen)