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 purposesexcept 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.
| For all intents and purposesexcept performance, the virtual machines are independent machines.|
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.