From: Richard Jackson (richja_at_expedia.com)
Date: Mon Mar 01 2004 - 16:14:13 PST
This 1997 paper by Bugnion, Devine and Rosenblum discusses a return to
virtual machine monitors(VMM) with a new VMM called Disco. This paper
attempts to solve many of the problems that were inherent in earlier
related work.
The paper is divided into the following sections: 1) overview of problem
space, 2) overview of Disco, 3) experimental results.
The first section discusses the rational behind VMMs. While some of
this seems to be generally understood, I was surprised by some of the
details that were presented here. Most importantly, the paper says that
a VMM will greatly reduce development costs. By providing a layer of
abstraction on top of a given hardware system, a VMM allows multiple
off-the-shelf operating systems to run with little or no changes to
support the given hardware. In comparison, modifying these OS's to run
on the hardware directly would involve significantly more development
effort. A VMM also allows multiple independent operating systems to run
simultaneously, which can be useful in a shared-multiprocessor
environment where resources are plentiful. The paper notes the
following problems facing VMMs: 1) overheads, 2) resource management
within the VMM, 3) communication between VMMs.
Disco is a new VMM that was designed for the FLASH multiprocessor. The
FLASH machine uses NUMA, but Disco abstracts this into a nearly-UMA
semantics, so that the operating systems running on the VMM do not need
to be NUMA-aware. Communication between VMMs is virtualized by Disco,
meaning that efficient cross-VMM communication is possible. CPUs and
memory are also virtualized by Disco. The virtual CPUs are scheduled as
expected, but they do not map directly to physical CPUs. That is, there
may be more virtual CPUs that physical CPUs. Regarding memory
management, this is divided into 3 different levels: 1) virtual - as
seen by each CPU, 2) physical - the complete address space, shared by
all nodes, 3) machine - the physical memory located on each machine,
which is allocated as needed by the memory manager. For disk access,
copy-on-write is used that allows sharing of data between virtual CPUs
on each node. For their tests, they chose IRIX 5.3 to run on top of
Disco. Many changes were required to IRIX, including device drivers,
the HAL, and support for the virtual network support. Overall, all
these changes really surprised me. I thought the point of a VMM was
that an OS could run on the VMM without any modifications. The
modifications listed here seemed significant, although the authors did
not indicate that this was a problem.
Regarding performance, various data was presented that show Disco's
ability to run efficiently and conserve memory by sharing. The results
were quite impressive, and it's clear that the main design goals were
reached. For the IRIX implementation, they showed that the overhead of
the VMM is about 16%. I think that this is low enough to make this a
viable option for many applications.
The major benefits of this paper were: 1) enhancements to VMM to improve
performance by sharing memory and disk resources, 2) hiding of NUMA
architecture, 3) re-introduction of VMM as a viable alternative to
custom-OS development.
The weaknesses of this paper were: 1) too much OS code needed to be
modified to support the VMM, 2) replication of pages is limited to hot
pages - this seemed non-ideal, 3) the performance results were based on
a simulation because the FLASH machine was not yet available, 4) the
performance results may be skewed, based on the fact that a simulator
was used to collect results.
This archive was generated by hypermail 2.1.6 : Mon Mar 01 2004 - 16:14:25 PST