Libvirt Simulation for Cloud - Proposal

This proposal has been rejected.


One Line Summary

Linux Virtualization Stack simulation using libvirt APIs


Virtualization stack in Linux usually comprise of hypervisors like Linux Containers (LXC), Kernel Based Virtual Machine (KVM), Xen etc. For managing these hypervisors, the opensource community came up with a common library called libvirt which has specific drivers that hook onto these core hypervisors and manage them. Cloud computing is one of the major areas where libvirt library is extensively used as part of the Cloud management stack. Software Simulation is a proven technique by which usage and performance of products are verified without having to spend time, effort or money on getting a real physical infrastructure setup done. Simulation helps in familiarising and verifying a product in a controlled environment thereby the users can acquire amble exeperience to deploy (and develop) more stable product. In Cloud computing, simulation based approaches offer significant benefits. It allows cloud customers to test their services in repeatable environment and to rectify performance bottlenecks before deploying their services on real Clouds. For the Cloud vendors, simulation environments allow evaluation various resources leasing scenarios under varying load and pricing distributions. Such studies could aid the providers in optimizing the resource access cost with focus on improving profits. Considering the relevance of libvirt in Linux virtualization stack and benefits of having simulation components in Cloud, we are proposing a simulation module for libvirt. Libvirt already has a test driver that is used for testing libvirt without any hypervisor backend. We are working on to enhance the test driver approach by adding simulation APIs to libvirt.

The enhanced simulation module enable to create multiple hosts on a single physical server. One can access this simulated host through network and run majority of libvirt commands. These simulated libvirt commands in turn will have algorithms implemented to simulate processing delays. For example the time delay for completion of image cloning. Libvirt simulation module can be used by

  • Cloud Management Software Stack. Any Cloud management software can be tested functionality wise or stress tested for managing multiple libvirt hosts.
  • Researchers and Developers for developing algorithms for advanced resource scheduling, Power utilization, allocation VM to different hosts etc.

On merging this simulation module with scripts that can generate management stack requests, such a simulation can benefit development of KVM, LXC and other hypervisors in a simulated cloud environment.

In this paper we would like to discuss on the libvirt simulation module design as well as the challenges that we are facing while developing this module.


cloud, virtualization, libvirt, simulation


  • Biography

    Venugopala C, has completed his B.E in Computer from National Institute of Technology Karnatataka (NITK), Surathkal (formerly Karnataka Regional Engineering College). Joined IBM India in 2004 as a Software Engineer. Past 3 year he is part of IBM Cloud Computing product design and development. Currently working as “Cloud Solution Architect and Senior Developer” at IBM India Software Lab. He involved in cloud first of kind customer cloud implementations,engaged as cloud solution architect and development lead.

  • Biography

    Supriya Kannery has been working with Linux kernel support and validation of KVM for cloud solutions at Linux Technology Centre, IBM for 5 plus years.