Manufacturing companies expend significant effort to maximize the efficient use of their manufacturing infrastructure: factories should be running at or near capacity, warehouses should be no bigger than necessary to fill shipping containers as fast as possible and so on. Yet computers often operate at a fraction of their capacities, despite fixed costs of operation that include replacing "obsolete" hardware every few years. The problem is that some applications need to run on dedicated servers, either because they do not interoperate or coexist well with other applications running on the same system, or because they are mission-critical and cannot be subject to the risk of downtime due to problems or routine maintenance.
When computing was done on mainframes, operating systems (OSs) allowed users "virtual machines" (VMs) on which their programs could be executed. A program ran in its own little section of the mainframe, and it did not interact with other programs running in other VMs. Programs could crash, eat memory or act up in other ways without interrupting or negatively affecting any other users of the corporate mainframe resources.
Developments in computing over the past twenty or thirty years, including the success of the PC and the Internet, have decentralized the IT function and pushed most computing to the peripheries of the networks – to be done on PCs rather than on mainframes. PCs have effectively replaced VMs on mainframes for the purpose of keeping programs from interfering with one another. If a new service needs to be added, rather than installing it on an existing server, it can be installed on a dedicated PC or blade. Although PCs and blades are relatively cheap, they are an inefficient way to add services, especially when it may be necessary to scale up a popular service.
Virtualization is an old idea that is undergoing a resurgence in interest. Virtualization makes it possible to subdivide and maximize efficient use of hardware assets; but, more importantly, virtualization makes applications and services seamlessly interoperable on almost any hardware platform.
Virtualization is most effective when everyone works to the same basic, open set of standards. This article discusses how virtualization works, who is doing it and why open standard virtualization is going to revolutionize the business intelligence universe to as great a degree as open standard networking (i.e., the Internet) did.
The key words when thinking about virtualization are "abstraction" and "encapsulation." Perhaps not surprisingly, these terms were key to the development and success of the TCP/IP network protocol suite upon which the Internet is based.
TCP/IP networking depends on abstraction for its very existence. For example, the telnet terminal-emulation protocol defines an abstract "virtual" terminal to and from which all telnet-compliant clients and servers must be able to communicate. Programmers writing a telnet client for a hardware/OS combination need only to convert:
With virtualization, the system itself is abstracted: the application runs on an idealized instance of a hardware/OS platform rather than on some specific version of Windows, Linux or UNIX on some particular hardware from Dell, HP or Sun, with any of dozens of CPUs and endless combinations of RAM, disk storage and network connections. This makes it far simpler to manage and administer servers. An idealized virtual machine is created, OS and server software are installed, and then that virtual machine can be executed anywhere.
The Internet depends upon encapsulation, too: wrapping data into discrete packets that can be transparently and seamlessly transported across heterogeneous data networks. One host encapsulates commands, requests, replies or other data into packets that are sent to another host. The contents of the packet are irrelevant to any intermediary hosts and are viewed and processed only by the target host. Packets are treated as unit containers, to be manipulated without change as they are passed through the Internet.
Encapsulation makes it possible for a host using a set of proprietary network protocols on its LAN to interoperate with another host, using another set of proprietary protocols on its LAN – without requiring either host to know anything about the other's local network.
With virtualization, entire instances of a virtual machine can be encapsulated within a single, portable data file. Thus, a virtual computer can be created to run a network printer server, a virtual Web server and a virtual database server – and all can be executed within a virtualized environment on whatever computer hardware is most appropriate.
Encapsulating each instance of a virtual computer means that the applications running on the different instances do not interact. In fact, the different instances can be running different OSs, so servers can run under whichever OS is most appropriate. Each virtual system can be configured with virtual resources. When it is necessary to upgrade the underlying hardware, it is not necessary to reinstall and reconfigure the virtual servers. Indeed, since virtual machines are encapsulated, they can easily be moved from one platform to another.
The New Virtualization Market
The first commercially successful VM software for PCs came from VMware, which started shipping in the late ‘90s a program that could run encapsulated instantiations of different operating systems, such as Windows and Linux, on the same hardware/OS combination at the same time. VMware was installed on top of the OS of choice (Windows or Linux); VMware provided the tools to create "virtual machines" (abstractions of ideal standardized computers with standardized configurations) on which other OSs and applications could then be installed and run.
At first, due to the high computing overhead required by the software and the (relatively) low performance of hardware then available, VMware was best suited to applications such as testing OS and application operation. With time, systems have grown more powerful, and VMware has improved its software to the extent that it is now possible to run real applications and services in VMware virtual machines.
VMware was one of the first software vendors to successfully sell a proprietary Linux product, and it has a "Linux-friendly" reputation.
Other proprietary commercial virtualization software providers include Virtual Iron and even Microsoft (offers Virtual Server 2005), but VMware still dominates the market. The downside to proprietary virtualization software is that virtual machines only run on the hardware and OS platforms the vendors choose to support. So, if you buy Microsoft's Virtual Server 2005, you can run Windows virtual machines on top of a Windows server. In April 2005, Microsoft announced "future" plans to support other guest OSs, including possibly Linux, but nearly a year later, those plans have not yet crystallized into the product.
The open source community has produced two key virtualization projects that, in turn, have spawned commercial enterprises. SWSoft offers products based on the open source OpenVZ project, and XenSource offers services based on the open source Xen Project.
At this point, Xen and XenSource have garnered significant interest with the hypervisor virtualization approach (read more about the Xen approach here). Xen is being welcomed by Linux companies such as Novell (SUSE) and Red Hat that include Xen-compatible kernels with their distributions.
Why Open Standards Will Energize Virtualization
Open standards, as with the Internet, make it possible to encapsulate applications and services into manageable packages that interoperate with hardware and other applications safely and efficiently through the abstraction layer of virtualized hosting. The importance of having a standard virtualized configuration as well as a standard for running the virtualized software cannot be overstated.
VMware clearly understands the importance of creating an industry standard for encapsulating applications. They offer the popular no-cost VMware Player, software that allows users to easily and safely run, share and evaluate ready-to-run software applications within virtual machines. In part to promote VMware Player, VMware is sponsoring the VMware Ultimate Virtual Appliance Challenge, a contest to build the best VMware-based appliance possible. With a first prize of $100,000, there is a lot of interest and many interesting applications being developed.
Just as with networking, things get simpler when an open standard for virtualization has been accepted. Instead of having to craft their own support for other OSs, Microsoft could port Windows to the Xen virtualization platform. The benefit to Windows users would be comparable to the benefit that accrued to Windows users who opted for TCP/IP networking rather than Microsoft networking: no vendor lock-in, interoperability with non-Microsoft applications and systems, and access to products and services from any vendor willing to support the standards. Microsoft would receive the benefit of having their software interoperate more seamlessly with other systems, but they would lose the advantage of vendor lock-in.
What does the future hold? Virtualization will gain importance, particularly as hardware vendors continue to rollout new products that support so-called "bare metal" virtualization, under which the hardware platforms perform some of the functions currently offered by virtualization software. Because it changes the way server and OS software is installed, Microsoft will continue to view virtualization as an important opportunity. Ultimately, they will either attempt to dominate the market by purchasing a company such as VMware; or if consumers are swayed to a more open standard such as that offered by Xen, Microsoft would, reluctantly, begin to support the standard.
Ultimately, the trend over time will be for businesses to move their business intelligence and other large and complex applications away from proprietary hardware and software that scales poorly, that demands significant staffing to maintain and that tends to lock businesses into specific vendors. Virtualization will permit businesses to treat their computing resources as fungible assets rather than as rapidly depreciating and underutilized cost centers.
Recent articles by Pete Loshin
Pete is Founder of Internet-Standard.com, an open source and open standard computing consultancy providing technology assessment, needs analysis and transition planning services for organizations seeking alternatives to commercial software. Pete has written 20 books, including “TCP/IP Clearly Explained” 4th Edition, Morgan Kaufmann, 2003) and “IPv6 : Theory, Protocol, and Practice,” 2nd Edition (Morgan Kaufmann, 2004).
Pete can be reached at pete@loshin.com or at 781. 859.9175.