SERVER VIRTUALIZATION ARCHITECTURE
By Jeff Daniels
Virtual machine technology, or virtualization, is gaining momentum in the information technol- ogy community. While virtual machines are not a new concept, recent advances in hardware and software technology have brought virtualization to the forefront of IT management. Stability, cost
savings, and manageability are among the reasons for the recent rise of virtualization. Virtual machine
solutions can be classified by hardware, software, and operating system/containers. From its inception on
the mainframe to distributed servers on x86, the virtual machine has matured and will play an increasing role in systems management.
Virtualization in the enterprise is catching on across the country.
Hardware vendors are packaging systems tuned to support virtual
machines, and software vendors are developing virtual server management tools for migrations, performance, and high-availability.
Customer IT organizations have defined a virtualization strategy and
have begun deploying virtualized data centers.
The virtual machine concept has been around for years. The recent
revolution in virtualization technology, hypervisors, and paravirtualization has allowed servers using the popular x86 architecture to operate efficiently and effectively with virtual machines.
Virtual machine technology is an enabler for service-oriented
architectures, isolated secure systems, and flexible deployment.
This paper describes the virtual machine from its inception in the
1960s to present day virtual machines. Various types of virtualization
will be discussed, as well as the associated costs and benefits of using
virtual machines. Information from this paper should outline the
basics of virtualization and offer key concepts when implementing virtualization technology.
What is a Virtual Machine?
A virtual machine (VM) is an abstraction layer or environment
between hardware components and the end-user. Virtual machines
run operating systems and are sometimes referred to as virtual
servers. A host operating system can run many virtual machines and
shares system hardware components such as CPUs, controllers, disk,
memory, and I/O among virtual servers .
A “real machine” is the host operating system and hardware components, sometimes described as “bare metal,” such as memory, CPU,
motherboard, and network interface.
The real machine is essentially a host system with no virtual
machines. The real machine operating system accesses hardware components by making calls through a low-level program called the BIOS
(basic input/output system).
Virtual machines are built on top of the real machine core components. Goldberg describes virtual machines as “facsimiles” or a “
hard-ware-software duplicate of a real existing machine“ [ 4, 5]. Abstraction
layers called hypervisors or VMMs (virtual machine monitors) make
calls from the virtual machine to the real machine. Current hypervisors use the real machine hardware components, but allow for different virtual machine operating systems and configurations. For
example, a host system might run on SuSE Linux, and guest virtual
machines might run Windows 2003 and Solaris 10.
Virtual machine monitors and hypervisors are similar to “
emulators.” Emulation is a “process whereby one computer is set up to permit the execution of programs written for another computer” [ 9].
Hypervisors offer a level of efficiency, in that emulators translate every
instruction or system call to the CPU, memory, and disk.
Hypervisors have specialized management functions that allow
multiple VMs to co-exist peacefully while sharing real machine
resources. Mallach concludes the differences are largely semantic
because both hypervisors and emulators require I/O requests, memory mapping, and logical memory schemes [ 10].
Virtual Machine History
Virtual machines have been in the computing community for more
than 40 years. Early in the 1960s, systems engineers and programmers
at MIT recognized the need for virtual machines. In her authoritative
discourse, “VM and the VM Community: Past, Present, and Future,”
Melinda Varian [ 17] introduces virtual machine technology, starting
with the Compatible Time-Sharing System (CTSS). IBM engineers
had worked with MIT programmers to develop a time-sharing system
to allow project teams to use part of the mainframe computers. Varian
goes on to describe the creation, development, and use of virtual
machines on the IBM OS/360 Model 67 to the VM/370 and the
OS/390 [ 17]. Varian’s paper covers virtual machine history, emerging
virtual machine designs, important milestones and meetings, and
influential engineers in the virtual computing community.
In 1973, Srodowa and Bates [ 15] demonstrated how to create virtual machines on IBM OS/360s. In “An Efficient Virtual Machine
Implementation,” they describe the use of IBM’s Virtual Machine
Monitor, a hypervisor, to build virtual machines and allocate memory,
storage, and I/O effectively. Srodowa and Bates touch on virtual
machine topics still debated today: performance degradation, capacity, CPU allocation, and storage security.