Scalable System Environment Caching and Sharing for Distributed Virtual Machines

Virtual machines have become very widely used in many software development communities. Developers can conveniently provision specific machine configurations using VMs, and those VMs can contain operating systems, libraries, and other applications required to build and execute their software under development. However, the size of full VM images and network bandwidth limitations makes large-scale reuse of VMs among distributed groups of developers extremely difficult. In this paper we address the problem of provisioning software configurations realized as virtual machine images rapidly and incrementally from a set of pristine VM states, by caching and sharing configuration fragments between developer groups. We first formally model the entire configuration space that might be cached and shared between groups, describe the design of our infrastructure to incrementally provision configurations from its fragments, and finally evaluate the performance of our approach with an example scenario common in software testing. Our experimental results show that our approach can help developers reduce the time and resource requirements for provisioning software configurations.

[1]  Adam A. Porter,et al.  Effective and scalable software compatibility testing , 2008, ISSTA '08.

[2]  Renato J. O. Figueiredo,et al.  VMPlants: Providing and Managing Virtual Machine Execution Environments for Grid Computing , 2004, Proceedings of the ACM/IEEE SC2004 Conference.

[3]  Eyal de Lara,et al.  SnowFlock: rapid virtual machine cloning for cloud computing , 2009, EuroSys '09.

[4]  Adam A. Porter,et al.  Overlap and Synergy in Testing Software Components across Loosely Coupled Communities , 2012, 2012 IEEE 23rd International Symposium on Software Reliability Engineering.

[5]  Dejan S. Milojicic,et al.  OpenNebula: A Cloud Management Tool , 2011, IEEE Internet Computing.

[6]  Adam A. Porter,et al.  Testing component compatibility in evolving configurations , 2013, Inf. Softw. Technol..

[7]  Andres Löh,et al.  NixOS: a purely functional Linux distribution , 2008, ICFP.

[8]  Adam A. Porter,et al.  Towards incremental component compatibility testing , 2011, CBSE '11.

[9]  Chandramohan A. Thekkath,et al.  Petal: distributed virtual disks , 1996, ASPLOS VII.

[10]  Sander van der Burg,et al.  Automating System Tests Using Declarative Virtual Machines , 2010, 2010 IEEE 21st International Symposium on Software Reliability Engineering.