SnowFlock: Virtual Machine Cloning as a First Class Cloud Primitive

H. Andres Lagar-Cavilla, Joseph Whitney, Roy Bryant, Philip Patchin , Michael Brudno, Eyal de Lara, Stephen M. Rumble, M. Satyanarayanan , Adin Scannell

Transactions on Computer Systems (TOCS), vol. 19, no. 1, ACM, February 2011



<p>A basic building block of cloud computing is virtualization. Virtual machines (VMs) encapsulate a user's computing environment and efficiently isolate it from that of other users. VMs, however, are large entities, and no clear APIs exist yet to provide users with programatic, fine-grained control on short time scales.</p> <p>We present SnowFlock, a paradigm and system for cloud computing that introduces VM cloning as a fi rst-class cloud abstraction. VM cloning exploits the well-understood and effective semantics of UNIX fork. We demonstrate multiple usage models of VM cloning: users can incorporate the primitive in their code, can wrap around existing toolchains via scripting, can encapsulate the API within a parallel programming framework, or can use it to load-balance and self-scale clustered servers.</p> <p>VM cloning needs to be efficient to be usable. It must efficiently transmit VM state in order to avoid cloud I/O bottlenecks. We demonstrate how the semantics of cloning aid us in realizing its efficiency: state is propagated in parallel to multiple VM clones, and is transmitted during runtime, allowing for optimizations that substantially reduce the I/O load. We show detailed microbenchmark results highlighting the efficiency of our optimizations, and macrobenchmark numbers demonstrating the eff ectiveness of the diff erent usage models of SnowFlock.</p>