Server Virtualization Architecture and Implementation
Goldberg concludes “the majority of today’s computer systems do
not and cannot support virtual machines. The few virtual machine
systems currently operational, e.g., CP-67, utilize awkward and inadequate techniques because of unsuitable architectures“ [ 6].
Goldberg proposes the “Hardware Virtualizer,” in which a virtual
machine would communicate directly with hardware instead of going
through the host software. Nearly 30 years later, industry analysts are
excited about the announcement of hardware architectures capable of
supporting virtual machines efficiently. AMD and Intel have revealed
specifications for Pacifica and Vanderpool chip technologies with special virtualization support features.
The 1980s and early 1990s brought distributing computing to data
centers. Centralized computing and virtual machine interest was
replaced by standalone servers with dedicated functions: email, database, Web, applications. After significant investments in distributed
architectures, renewed focus on virtual machines as a complimentary
solution for server consolidation projects and data center management initiatives has resurfaced [ 14].
Recent developments in virtual machines on the Windows x86
platform merit a new chapter in virtual machine history. Virtual
machine software from Virtuozzo, Microsoft, Xen, and EMC
(VMWare) has spurred creative virtual machine solutions. Grid computing, computing on demand, and utility computing technologies
seek to maximize computing power in an efficient, manageable way.
The virtual machine was created on the mainframe. It has only
recently been introduced on the mid-range, distributed, x86 platform.
Technological advancements in hardware and software make virtual
machines stable, affordable, and offer tremendous value, given the
right implementation.
Types of Virtualization
Virtual machines are implemented in various forms. Mainframe, open
source, paravirtualization, and custom approaches to virtual machines
have been designed over the years. Complexity in chip technology and
approaches to solving the x86 limitations of virtualization have led to
three different variants of virtual machines:
1. software virtual machines (see Figure 1), which manage interactions
between the host operating system and guest operating system
(e.g., Microsoft Virtual Server 2005);
2. hardware virtual machines (see Figure 2), in which virtualization
technology sits directly on host hardware (bare metal) using hypervisors, modified code, or APIs to facilitate faster transactions
with hardware devices (e.g., VMWare ESX); and
3. virtual OS/containers (see Figure 3), in which the host operating
system is partitioned into containers or zones (e.g., Solaris Zones,
BSD Jail).
A simple UNIX implementation called chroot allows an alternate
directory path for the root file system. This creates a “jail,” or sandbox,
for new applications or unknown applications. Isolated processes in
chroot are best suited for testing and applications prototyping. They
have direct access to physical devices, unlike emulators.
Sun Microsystems’ “Solaris Zones” technology is an implementation of chroot, similar to the FreeBSD jail design, with additional fea-
Figure 1: Software virtual machines.
Figure 2: Hardware virtual machines.
Figure 3: Virtual OS/containers virtual machines.
tures. Zones allow multiple applications to run in isolated partitions
on a single operating system [ 16]. Each zone has its own unique
process table and management tools that allow each partition to be
patched, rebooted, upgraded, and configured separately. Distinct root
privileges and file systems are assigned to each zone.
Microsoft Corporation’s Virtual Server 2005 is a new virtual
machine manager in the market. After acquiring virtual machine technology from software vendor Connectix in 2003, Microsoft introduced the Virtual Server 2005 product, which runs on a Windows
2003 host and, predictably, supports Windows guest operating systems only. At the time of publishing this paper, Virtual Server is lim-