y organization has been using VMware and Xen virtualization products for a few years for several purposes, including testing of new software configurations, development, and consolidation of production servers. We use VMware Workstation to test software, and we use VMware GSX Server to consolidate server software onto fewer physical machines. We also use Xen for some of our hosted services that run on Linux servers. Based on that experience, I have seen the advantages that virtual machines can provide. Although quite a few virtual machine benefits explain why interest and usage have seen a strong uptick of late, virtual machine technology is not without its flaws.
This article discusses the pros and cons of today’s virtual machine technology to help you determine whether the cost of implementing virtual machine technology is worthwhile. Should the VM benefits outweigh the drawbacks in your multi-server datacenter, virtual machine technology can provide more reliability, easier manageability, and lower overall cost for your organization.
Features and Benefits
The following sections explain the key benefits of virtual machine technology: isolation, standardization, consolidation, ease of testing, and mobility.
One of the key reasons to employ virtualization is to isolate applications from each other. Running everything on one machine would be great if it all worked, but many times it results in undesirable interactions or even outright conflicts. The cause often is software problems or business requirements, such as the need for isolated security. Virtual machines allow you to isolate each application (or group of applications) in its own sandbox environment. The virtual machines can run on the same physical machine (simplifying IT hardware management), yet appear as independent machines to the software you are running. For all intents and purposes?except performance, the virtual machines are independent machines. If one virtual machine goes down due to application or operating system error, the others continue running, providing services your business needs to function smoothly.
Another key benefit virtual machines provide is standardization. The hardware that is presented to the guest operating system is uniform for the most part, usually with the CPU being the only component that is “pass-through” in the sense that the guest sees what is on the host. A standardized hardware platform reduces support costs and increases the share of IT resources that you can devote to accomplishing goals that give your business a competitive advantage. The host machines can be different (as indeed they often are when hardware is acquired at different times), but the virtual machines will appear to be the same across all of them.
Virtual machines also increase utilization and promote consolidation. Consolidation of servers results in easier management and decreased hardware costs. The drawback of consolidation is increased susceptibility to hardware failures and increased impact from those failures. However, the risk and negative impact can be mitigated with failover setups where virtual machines on two different physical machines monitor each other with each one ready to take over for the other.
Using virtual machines should not require more physical machines and usually will result in fewer physical machines. This is a great boon because setting up and maintaining physical hardware is messy and time-consuming. On top of that, physical servers consume power. With electricity rising in cost, power savings translate into larger and larger financial savings.
Ease of Testing
Virtual machines let you test scenarios easily. Most virtual machine software today provides snapshot and rollback capabilities. This means you can stop a virtual machine, create a snapshot, perform more operations in the virtual machine, and then roll back again and again until you have finished your testing. This is very handy for software development, but it is also useful for system administration. Admins can snapshot a system and install some software or make some configuration changes that they suspect may destabilize the system. If the software installs or changes work, then the admin can commit the updates. If the updates damage or destroy the system, the admin can roll them back.
Virtual machines also facilitate scenario testing by enabling virtual networks. In VMware Workstation, for example, you can set up multiple virtual machines on a virtual network with configurable parameters, such as packet loss from congestion and latency. You can thus test timing-sensitive or load-sensitive applications to see how they perform under the stress of a simulated heavy workload.
Virtual machines are easy to move between physical machines. Most of the virtual machine software on the market today stores a whole disk in the guest environment as a single file in the host environment. Snapshot and rollback capabilities are implemented by storing the change in state in a separate file in the host information. Having a single file represent an entire guest environment disk promotes the mobility of virtual machines. Transferring the virtual machine to another physical machine is as easy as moving the virtual disk file and some configuration files to the other physical machine. Deploying another copy of a virtual machine is the same as transferring a virtual machine, except that instead of moving the files, you copy them. Multiple deployments of a single virtual machine are much easier to achieve than multiple deployments of an operating system on a physical machine.
Drawbacks and Challenges
What about the drawbacks and challenges of virtual machine technology?
One challenge I have already discussed is the increased reliance on fewer physical machines: the “putting all your eggs in a few baskets” effect, which I call concentration risk. However, as I also mentioned, you can ameliorate this risk by setting up heartbeat monitoring and failover on virtual machines located on independent physical machines. Virtual machine technology actually reduces concentration risk when deployed in the right configurations. Compared to a baseline configuration of x physical machines, you can almost always achieve a more failure-resistant configuration using x or fewer physical machines hosting more than x virtual machines that are networked to watch each other and take over in the event of a partner machine’s failure. The efficiency multiple could be 1.5x, 2x, 3x, 4x, or more, depending on the applications in the virtual machines and the specifications of the physical hosts.
Another drawback of virtual machine software is the licensing cost. If you run servers on VMware’s GSX Server, for example, the dollar cost of licenses can be a significant portion of (or more than) the cost of the physical hardware, depending on your physical machine specifications. VMware GSX Server costs $1,400, which adds considerably to the cost of a workgroup file server or a Web server. The license cost will probably be non-negligible for any single machine, but the savings from consolidation usually will outweigh the cost of the software license. Also, for software development or configuration testing, you will probably use VMware Workstation, which has a much lower price of $189.
Editor’s Note: Since the writing of this article, VMware announced it will release the next version of its GSX Server product as a freely available, hosted server virtualization product called VMware Server.
Xen charges no license fee, but it currently runs only on Linux hosts and handles only guest operating systems for which source code is available, a criterion that includes Linux and BSD but not Windows. The guest operating system limitation will change with Intel’s soon to be released VT “Virtualization Technology” and AMD’s soon to be released Pacifica chip technology. Both will enable a host hypervisor to execute unmodified guest operating systems, which means Xen will be able to run Windows as a guest operating system. The hypervisor is the bit of code sitting between the hardware and the guest environment that mediates access to physical hardware and controls execution of privileged instructions on the CPU. Sometimes the hypervisor interfaces directly with the bare metal (the physical hardware). Other times, it interfaces with a host operating system to gain access to the wealth of device drivers available on the host operating system. VMware ESX Server falls into the former category; VMware GSX Server, VMware Workstation, and Xen fall into the latter.
Virtual machine technology imposes a performance penalty from running an additional layer above the physical hardware but beneath the guest operating system. The performance penalty varies based on the virtualization software used and the guest software being run. Two good performance comparisons of VMware and Xen were conducted by the computer science departments at University of Cambridge, England and Clarkson University (PDF). Based on the Cambridge study, VMware Workstation achieves near-native performance for processor-intensive tasks, but experiences slow-downs of up to 88 percent on I/O-bound tasks. That means your I/O-bound process would be running at nearly 1/10 of its native speed?something that may be unacceptable to you. The Cambridge group performed its study based on VMware Workstation 3.2 because licensing restrictions in newer VMware versions prohibit test comparisons. VMware likely has improved its performance, but in any case if your task is I/O-intensive, you would do well to test it in a trial copy of Workstation or GSX Server before purchasing the software.
In the same study, Xen performed extremely well whether the task was CPU-bound or I/O-bound. In some cases, Xen’s performance penalty is almost non-existent thanks to its paravirtualization function, which modifies the guest operating system to optimize performance (hence, the more limited selection of supported guest operating systems).
The performance penalty can mean you need to purchase additional hardware or more expensive, higher-end hardware. This is one factor you must take into account when determining whether, or to what extent, to adopt virtual machine technology. For large deployments, the increased ease of management often far outweighs the license fees and potentially more demanding hardware requirements per physical machine. Furthermore, services often can be consolidated onto fewer physical machines that serve as hosts for multiple virtual machines, meaning that overall hardware costs decline.
A fourth drawback of virtual machine technology is that it supports only the hardware that both the virtual machine hypervisor and the guest operating system support. Even if the guest operating system supports the physical hardware, it sees only the virtual hardware presented by the virtual machine. The virtual machine’s hardware support actually has two aspects. The first is what the virtual machine hypervisor recognizes on the host machine. This is generally fairly broad within the common categories such as networking, hard drive storage, keyboards, mice, and video cards. The virtual machine hypervisor, if it runs on top of the host operating system, usually just takes advantage of the host operating system’s support of the physical device in question. VMware GSX Server, VMware Workstation, and Xen are like this. They take advantage of the host’s support for physical devices so that they do not have to provide code specifically for the plethora of hardware devices on the market today. VMware ESX Server, in contrast, is designed to run on bare hardware with no underlying host operating system for support. As a result, performance can be better than that provided by GSX Server or Workstation, but the range of hardware that the virtual machine hypervisor will run on is much more limited because the ESX Server code base must contain code to handle each device that it supports.
The second aspect of virtual machine hardware support is the hardware presented to the guest operating system. No matter the hardware in the host, the hardware presented to the guest environment is usually the same (with the exception of the CPU, which shows through). For example, VMware GSX Server presents an AMD PCnet32 Fast Ethernet card or an optimized VMware-proprietary network card, depending on which you choose. The network card in the host machine does not matter. The network card presented to the guest environment will always be one of the two network cards that VMware supports. VMware GSX Server performs the translation between the guest environment’s network card and the host environment’s network card. This is great for standardization, but it also means that host hardware that VMware does not understand will not be present in the guest environment.
A fifth challenge of virtual machine technology is the complication of software licensing inside guest operating systems. If you load and run Windows Server 2003 in eight virtual machines on four physical machines, how many licenses would you be obligated to pay for? What about database software like Oracle or SQL Server, which are usually licensed based on the number of processors? A virtual machine on a dual processor host machine may have only one processor. If Oracle runs in the virtual machine, should you be charged for one processor or two?
The challenge of deploying virtual machine technology is figuring out whether the benefits outweigh the costs in your situation. Virtual machines improve utilization, facilitate management, reduce downtime, and enhance the mobility of applications in many scenarios. So if the management of IT hardware and software resources is a current or anticipated headache, you should take a look at VMware, Xen, and Microsoft Virtual Server and carefully consider the pros and cons for your particular situation.