The rapid pace of CPU development and the comparatively slow progress in OS and application development have led us to a point where buying a new server to run old applications simply doesn’t make sense. Given today’s supercharged chips, even the most frugal IT director is forced to buy more horsepower than is really necessary. Applications that have run without problem for years on older servers don’t necessarily need buckets of RAM and the latest and greatest CPUs, but if you want reliable, supported new hardware you haven’t much choice.
Rather than buying the baseline of new hardware, then, many organizations choose to scale up. A single midrange server combined with a virtualization platform can often take the place of six or seven low-end servers. The savings can be counted in more than just initial purchase price. Viewed in terms of total cost of ownership, there’s much more to be gained when you add up power, maintenance, and cooling costs during the life of the server.
A virtual datacenter can significantly reduce administrative and management costs, as well. The capability to take snapshots of running servers is an impressive insurance policy against failed system patches, virus infections, and upgrades. What’s more, resource management is much simpler on virtualization platforms that allow dynamic allocation of CPU time, RAM, and network bandwidth.
The virtual tour
A broad range of vendors have stepped up to the plate to address these needs in a variety of ways. Even the word virtualization itself doesn’t imply a single approach. Broadly speaking, the field has grown in two distinct camps, in terms of the core technology.
On one hand are complete hardware emulation systems, a la VMware and Microsoft’s Virtual Server. These model the native hardware platform of the physical server for each virtual server, including a fully configurable BIOS. This method leaves each virtual server running as a single process on the host platform. On disk, each virtual server is totally independent of the others, with its own complete instance of the OS and all necessary applications.
The other approach can be classified as host-based virtualization, as exemplified by SWsoft’s Virtuozzo and Sun’s Solaris Containers. In this design, a single instance of the host OS supports multiple virtual OS instances, with the same host OS kernel handling I/O and scheduling needs of the virtual servers at the process level. All virtualization platforms employ a hypervisor, a software layer that sits above the base-level OS and below the VMs. The hypervisor is in charge of herding each VM’s resource requests through to the base OS, and handling all I/O interaction. The form of hypervisor is different in each virtualization platform, but the effects are generally the same.