Stateful-Swapping in the Emulab Network Testbed

Prashanth Radhakrishnan
School of Computing
University of Utah, Salt Lake City, UT 84112

Master's Thesis


Time-sharing is a useful feature in heavily utilized public network testbeds. Emulab, the popular network research testbed, supports a primitive form of time-sharing by swapping-out idle experiments to free up physical resources. However, the swap-out operation destroys experiment runtime state and experimenters have to manually recreate the state upon a subsequent swap-in--a tedious and sometimes impossible proposition.

For a testbed to realize the full benefits of time-sharing, the experiment swapping operation should be stateful, transparent and fast. Towards this end, we are extending Emulab with a stateful-swapping facility.

We address two key challenges in building this system involving state management and providing application transparency: how to efficiently handle experiment runtime state of several gigabytes so that time-sharing can be fast and how to prevent experiments from perceiving periods of swap-out.

Our approach leverages the advances in Virtual Machine Monitors (VMM) and Storage Virtualization. We address state-related challenges by applying caching, copy-on-write, pipelining and gray-box techniques. To prevent the perception of swap-out periods, we virtualize an experiment's notion of time.

This thesis presents the design, an initial implementation and evaluation of the stateful swapping infrastructure.

The full thesis is available in PDF format.