Launchpad Entry: austin-user-mode-linux
Created: 2010-09-01
Contributors: SorenHansen
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.