Hardware virtualization is a technology that exposes virtual machines (VMs), a layer of emulated hardware, to software. It enables an operating system and its processes to execute on this layer, while making them decoupled from physical hardware. A key benefit of this decoupling is guaranteed executability of software. VMs can reliably run regardless of the hardware and software environment of the physical machine. Therefore, software needs to be prepared once for each VM, rather than for each machine on which they may run. This executability further provides the capability to transfer computation. Pre-configured VM images can be copied to a remote machine for instantiation, or running VMs can be transferred to a remote machine for continued execution on the remote site.
Unfortunately, the applicability of these operations is largely limited by VM state size. In order to transfer a VM from one machine to another, state for its memory, disk, and peripheral devices must be transferred. Some of these states are often prohibitively large; memory can be several gigabytes or more, and disks in the order of tens of gigabytes. Moreover, the need for fast VM transfer is magnified under limited resource availability, with which existing solutions fail to meet performance requirements adequately.
In this thesis, we address the current limitations of VM transfer by exploiting knowledge about VM execution. Proactively performing state transfer using this knowledge makes it feasible to instantiate VMs in a timely manner. Executability of software, in turn, can be extended and applied to remote instantiation without severe performance degradation. We validate our claim by showing that proactive state transfer enables fast VM launch in challenging contexts: VM delivery over WANs and urgent migration in clouds.
Mahadev Satyanarayanan (Chair)
Kaustubh Joshi (AT&T Research)
Roxana Geambasu (Columbia University)