Virtualization Technology
by GroundWork CTO, Craig Thomas
The virtualization wave is cresting just off the mid-market beach. RedHat includes Xen in RHEL 5. SUSE included Xen in their version 10. VMWare has a diverse product line with appeal across the market spectrum. Microsoft has a free Virtual Server add-on for Windows Server 2003. New processors from Intel and AMD have native support for virtualization.
This article presents an introduction to virtualization technology. Over the next couple of columns, we'll explore applications of virtualization in information technology and how mid-market IT managers are adopting virtualization.
When applied to computing, virtualization means the abstraction of compute resources. Broadly speaking, any given compute resource can be virtualized, from individual components to entire systems. When an external interface is created, which hides the details of the underlying implementation, the resource whose capabilities are exposed through the interface has been virtualized.
Virtualization is not new. It dates back to the 1960s. In mainframe computing, IBM's VM operating system has provided a virtualized computer system since 1972. Computer operating systems have offered virtual memory since 1961, when Burroughs released the B5000.
Virtualization is applied to platforms to make computers, operating systems, or application platforms virtual; and it is applied to resources to make memory, disk storage, files, and networks virtual.
Platform virtualization has made significant progress recently, making the kinds of capabilities that IBM's VM operating system provided to mainframes available on commodity hardware, and accessible to mid-market enterprises. The general approach is to use software to simulate the computer environment, allowing other software to make use of the simulated resources. The simulation software is the "host"; the software that makes use of the simulated resources is the "guest". The host can, for example, make use of multiple physical systems to provide a single high-performance environment for guest software. Alternatively, the host can make use of a single physical system to provide multiple environments for guest software.
The level of resources that are abstracted varies according to the goal of the virtualization strategy.
For example, the Java Virtual Machine (JVM) provides an application platform that is the same on a broad variety of hardware and operating systems. The JVM provides interfaces for network, file, and compute resources that are the same on all of the virtualized platforms to which it has been ported. J2EE virtualizes a broader set of services for Java applications such that an enterprise application can be deployed on Tomcat, JBoss, or any of a number of commercial application servers with no change in the code.
Server virtualization is the strong suit of VMWare, whose host provides an abstraction for complete operating systems and their software applications as guests. Xen is a comparable approach in open source. These technologies allow guest operating systems and applications to transparently access the virtualized resources on the host. The software that does this is a hypervisor or virtual machine manager. Its role is to orchestrate interactions between guests and their hosts. Para-virtualization is the term used to describe a mechanism in which the guest operating system is aware that it has been virtualized. In para-virtualization, the guest operating system can take advantage of services provided by the hypervisor, enabling optimization of access to resources. For example, the I/O subsystem of the guest operating system can interact directly with the devices, though under the control of the hypervisor, allowing form much improved performance.
Resource virtualization is also progressing rapidly, making advances available in mid-market enterprises. Aggregating multiple resources into a single similar resource is one approach. An example is a volume manager that combines several physical disk devices into a single logical device. A RAID disk system is a similarly virtualized disk resource. Virtualization is also applied to storage as Storage Area Networks, allowing the physical disk resources to be scattered throughout the network. File virtualization allows users and their applications access to unstructured data without knowing where the files are actually stored. Virtual Private Networks extend a physical network through the use of software connections. Virtualization of the processor bus and partitioning of memory accesses among processor cores are the techniques used by AMD and Intel to make their CPUs into optimal resources for virtualization.
That's the groundwork of virtualization technology. Next month, we will explore applications of virtualization in information technology. The following month will focus on how mid-market IT managers are adopting the technology.