A virtual machine (VM) is a software abstraction of a real, physical machine. Virtualization has been around for almost 50 years, beginning with IBM’s pioneering work in the 1960s. However, recent years have seen a significant surge in the interest and use of virtualization, driven by better hardware support, increasing power costs and low resource utilizations. Server consolidation is by far the most common application for virtualization—by aggregating multiple services on a single physical machine, organizations can reduce costs and increase the utilization of their infrastructure. While server consolidation remains a powerful driving force, virtualization is now becoming even more compelling for the innovative applications it enables, such as to support legacy software, for disaster recovery and backup, and for intrusion detection and malware analysis, to name a few.
The key premise of this dissertation is that the ability to efficiently multiplex virtual machines is critical to realizing the benefits of virtualization, not just for existing applications such as server consolidation, but also in enabling some fundamentally new applications. An inevitable consequence of conventional mechanisms for multiplexing is resource partitioning: individual VMs can only use a fraction of the actual physical resources. This partitioning limits not only the resources available for a single VM, but also the total number of VMs that the hardware can support. Here we hit a fundamental barrier— the aggregate resources available to the VMs are bounded by the capacity of the underlying hardware. This dissertation describes mechanisms to work around this barrier to increase the perceived resource capacity of individual VMs, as well as to increase the total number of VMs that can be created.
First, we present “time dilation,” a technique that allows the perceived aggregate capacity of the VMs to exceed the capacity of the underlying hardware. Time dilation also enables many interesting experiments, such as predicting application behavior and protocol performance in resource-rich environments. Next, we use time dilation to build a framework and methodology called DieCast for accurate testing of large systems using a much smaller infrastructure. Finally, we present Difference Engine, a system that exploits fine-grained similarities in memory among VMs to extract twice as much memory savings as the current state of the art, thus freeing memory for additional VMs. Together, our contributions make significant advances in making virtual machine multiplexing more scalable.
|Advisor:||Vahdat, Amin M.|
|Commitee:||Javidi, Tara, Lin, Bill, Snoeren, Alex C., Voelker, Geoffrey M.|
|School:||University of California, San Diego|
|Department:||Computer Science and Engineering|
|School Location:||United States -- California|
|Source:||DAI-B 69/12, Dissertation Abstracts International|
|Keywords:||Memory management, Multiplexing, Operating systems, Scalability, Virtual machines, Virtualization|
Copyright in each Dissertation and Thesis is retained by the author. All Rights Reserved
The supplemental file or files you are about to download were provided to ProQuest by the author as part of a
dissertation or thesis. The supplemental files are provided "AS IS" without warranty. ProQuest is not responsible for the
content, format or impact on the supplemental file(s) on our system. in some cases, the file type may be unknown or
may be a .exe file. We recommend caution as you open such files.
Copyright of the original materials contained in the supplemental file is retained by the author and your access to the
supplemental files is subject to the ProQuest Terms and Conditions of use.
Depending on the size of the file(s) you are downloading, the system may take some time to download them. Please be