top of page

Integrating Open Stack with LXC


OpenStack is no new. But we decided to implement OpenStack into our production environment. We started off with implementation of OpenStack with two objectives on our mind. One, implement OpenStack and use it for a while in the production environment, primarily for non-critical operations. Two, refine and customize the implementation to suite our on going needs.

We started off implementing Icehouse using Ubuntu 12.02, using four nodes. Two for compute and rest for controller and network respectively. Soon we ran into packages and their dependency issue (I will skip the issue part as they could have been over come ). So we decided to switch to latest version i.e. 14.04. completed the implementation with few hiccups but those were mostly human errors.

We started using this environment for our Development and QA needs, where we need to bring up and tear down nodes for engineering activities. Soon we realized that not all our requirements need real hardware emulation and most of it could be realized with containers alone. We made a decision to integrate nova-compute with LxC instead of QEMU on one of the compute nodes.

We modified nova.conf and change the compute driver to nova.virt.lxc.LXCDriver, after installing lxc. We also modified nova-compute.conf to virt_type to lxc. With these changes the LxC driver was invoked but the instance were not created as it threw exception while formatting virtual disk. We identified the issue and fixed it by forcing un-partitioned disk to be used for the container. That was it, we got our first light weight VM up and running. The biggest advantage of container based technology is it allows us to create much larger number of VMs on this new compute node as oppose to the QEMU one.

bottom of page