|
Pre-Virtualization: Slashing the Cost of Virtualization
Joshua LeVasseur, Volkmar Uhlig, Matthew Chapman, Peter Chubb, Ben Leslie, Gernot Heiser
Abstract
Despite its current popularity, para-virtualization has an enormous
cost. Its diversion from the platform architecture abandons
many of the benefits that come with pure virtualization (the faithful
emulation of the platform API): stable and well-defined platform
interfaces, single binaries for kernel and device drivers (and thus
lower testing, maintenance, and support cost), and vendor
independence. These limitations are accepted as inevitable
for significantly better
performance and the ability to provide virtualization-like behavior on
non-virtualizable hardware, such as x86.
We argue that the above limitations are not inevitable, and
present pre-virtualization, which preserves the benefits of
full virtualization without sacrificing the performance benefits of
para-virtualization. In a semi-automatic step an OS is
prepared for virtualization. The required modifications are
orders of magnitudes smaller than for para-virtualization.
A virtualization module, that is
collocated with the guest OS, transforms the standard platform API
into the respective hypervisor API. The guest OS is still programmed
against a common architecture, and the binary remains fully functional on
bare hardware. The support of a new hypervisor or updated interface only
requires the implementation of a single
interface mapping. We validated our approach for a variety of
hypervisors, on two very different hardware platforms (x86 and Itanium),
with multiple generations of Linux as guests. We found that
pre-virtualization achieves essentially the same performance as
para-virtualization, at a fraction of the engineering cost.
In Fakultät für Informatik, Universität Karlsruhe (TH), Technical Report 2005-30, November 2005
Full paper: [pdf]
BibTeX:
@TechReport{ previrtualization05,
author = {Joshua LeVasseur and Volkmar Uhlig
and Matthew Chapman and Peter Chubb
and Ben Leslie and Gernot Heiser},
title = {Pre-Virtualization: Slashing the Cost of Virtualization},
institution = {Fakult\"at f\"ur Informatik,
Universit\"at Karlsruhe (TH)},
year = 2005,
number = {2005-30},
month = Nov,
type = {Technical Report},
}
|