With all the buzz about virtualization, you might be tempted to convert all of your physical machines to virtual ones. Considering the portability, deployment and hardware utilization benefits, virtualization has a compelling case. Unfortunately, that doesn't mean virtualization is the best solution for every server or application (at least not yet). The challenge is figuring out which applications and servers are good candidates for running within virtual machines.
The central theme of the selection process is based on information about currently supported applications. The more you know, the better. Let's take a look at the factors you should keep in mind when evaluating each application and server for potential virtualizability: hardware requirements, software compatibility, licensing issues, business requirements and resource utilization.
The first factor in evaluating the feasibility of virtualization is the hardware requirements for the servers and applications you plan to support. In general, you should expect that virtual machines will require approximately the same resources as a physical server; for example, if a physical server is currently running well using 512MB of RAM, expect to use the same amount of RAM for a virtual machine that supports the same operating system and applications. You should also look at CPU, disk and network requirements. Most virtualization solutions will provide the necessary flexibility to support common business applications.
Applications and services that have specific hardware or driver requirements are generally not well suited for virtualization. For example, custom video drivers that support hardware-based 3-D acceleration are not supported by most virtualization platforms. By checking the hardware requirements, you can get a quick "go / no-go" decision.
Modern business applications range from simple executables to distributed, multi-tier configurations. When determining software requirements, make sure that the operating system you plan to run is supported by the virtualization platform. Although you'll only be able to get vendor support if the platform is officially supported, most platforms work fine with hundreds of different operating systems. You should keep requirements for specific components of distributed applications in mind. It might be possible to virtualize some lightly used Web servers, while keeping the back-end components running on dedicated hardware.
Table 1 provides an example of how you can collect and organize information related to system requirements.
Table 1: An example of a virtualization decision worksheet
In many environments, software licenses can be more expensive than the hardware on which the software runs. Organizations should check with vendors regarding details. In some cases, the reduced licensing costs for multiple applications or operatng systems running on the same hardware could add up to a strong financial case for virtualization. Lacking any information to the contrary, however, it's best to treat virtual machines like physical ones for the purpose of determining licensing costs.
The decision to move to a virtualization platform should be coordinated with the organization's business needs. Sometimes, it's easy to identify areas that could benefit from virtualization immediately. Here are some basic signs that might indicate that virtualization is the key:
· Are the required configurations consistent? When you need to deploy dozens of machines with nearly identical software and OS configurations, virtual machines might make sense.
· Is there a need to reduce deployment times? In software testing and training environments, getting machines up and running quickly generally takes priority over performance and other concerns.
· Is there a limitation on hardware availability? Virtualization can make much more efficient use of existing hardware.
A key concern in selecting virtualization candidates is performance. Here's where any available performance data can be useful. In an ideal situation, you'll have performance monitoring baselines that include CPU, memory, disk and network utilization statistics. These details can help you determine the operating requirements for each potential VM. Unfortunately, no simple formula exists to translate physical performance into virtual performance. If possible, you should implement performance benchmarking or compare simulated activity results when running on physical vs. virtual machines. Later in this series, I'll cover some ways in which you can monitor performance and resource usage.
To virtualize or not to virtualize?
This information will help you make the final decision on whether or not a specific application or server is a good candidate for virtualization. If the virtualization platform you've selected meets the hardware and software requirements for the application, your candidate meets the minimum requirements. If you have a good fit from a resource utilization standpoint, it's worthwhile to at least test the configuration in a virtual environment. By consider hardware, software, licensing, resource and business requirements, you can help ensure virtualization is the right tool for the job.