Making the Most of Virtualization
Yuma County, Ariz., has been using server virtualization technology successfully for more than three years. We now have nearly half of our 99 servers virtualized. Though we were on the cutting edge among local government organizations when we first deployed virtualization, the technology has matured to the point where we've developed many best practices for successful implementation.
Yuma County uses VMware ESX 3.02, but the advice that follows could apply to whatever virtualization technology your organization has implemented or is considering.
Tap templates and customizations for rapid deployment.
Virtualization gives you the capability of creating a virtual server or desktop once, saving it as a template, and using customization scripts to make a mass rollout of similar servers and desktops very easy.
By using Microsoft's Sysprep, which integrates with VMware's Virtual Center, we were able to create a master image, customize it, then script the cloning process through VMware's APIs. Without using customization and scripts, we would have had to clone the master image manually, then boot up and make changes to each cloned image. Depending on the image size, this process could take upwards of an hour or more. With customization and scripts, you will need only a few minutes to create your custom specifications and execute your script.
Build clusters of physical servers with shared storage.
Take advantage of your virtualization software's native clustering and disaster avoidance capabilities by attaching your physical servers to a storage area network (SAN). If you're currently clustering database and application servers, you may be able to greatly reduce and simplify those clusters.
Hardware upgrades for a cluster are as simple as migrating the virtual machines (VMs) from the old hardware, shutting down the old server and powering up the new server. Using a SAN also allows faster and easier disaster recovery if your physical server fails.
Use pre-built virtual machines.
Ask the manufacturer if it has any pre-built virtual-machine images that you can deploy directly to your virtual environment. There is a wide variety of pre-built VMs available for web servers, databases, systems monitoring and more.
We saved a significant amount of time and reduced the possibility of human error by using a pre-built image when we migrated to a new e-mail spam/virus scanning platform recently. Our vendor provided us a pre-built virtual machine that took longer to download than to deploy. After a few tweaks and some testing, we were ready to cut over the same week. By deploying the pre-built machine, we had 95 percent of the work done for us.
Create a cost-effective test environment.
You're going to need a dedicated test environment for your critical systems, even after they're virtualized. In fact, all critical systems should have a test and development environment, but even your non-mission-critical applications could benefit from snapshots. A snapshot allows you to save a virtual machine at a point in time, at which point you can begin moving the previously tested system changes to production. If the new patch proves troublesome, fixing it is as easy as rolling back to an earlier snapshot.
Control virtual-machine sprawl.
One of the pitfalls of virtualization is the ease with which new virtual machines can be created. This can lead to significant inefficiencies in your virtual environment. We have learned that it isn't necessary to create a separate virtual server for everything. For example, you don't need to create a new virtual Apache web server for every web application; just use Apache's virtual host configuration.
Every unneeded virtual machine uses system resources that could have been used elsewhere and adds to the number of virtual machines that your support staff will need to manage.
Our approach to controlling virtual-machine sprawl is to assess the performance requirements of a new service. If the load is expected to be low, and we have an existing virtual machine that can handle it, then we prefer to use the existing virtual machine. Make sure to use the built-in performance monitoring tools, which will give you an indication of when it's time to begin splitting services onto new virtual machines. Proper change and configuration management is key.
Migrate your existing physical servers to virtual servers without the hassle.
Most virtualization software has some form of physical-to-virtual system migration tool, such as VMware Converter, which can copy a physical server bit for bit to your virtual environment. There are typically a few different versions of the tool with varying capabilities. Often the migration tool will be free, if only in a limited version. Assess your needs to determine which tool can do the job well. The tools included with VMware have made the process seamless in our environment.
I hope that your organization will be able to derive value from these best practices as you adapt them to your own environment. Virtualization is a powerful technology that can simplify administration, provide better redundancy, and squeeze more value out of tightened technology budgets.
Quick Tips
Here are some more ways to take advantage of VMware's capabilities.
- The VMware API has created an industry of helpful third-party tools. If you have developers, you can even roll out your own.
- Many SCSI tape drives can be passed through from the ESX host to the virtual machines, making tape backups with your existing solution possible.
- Additional hard disks can be added on the fly to virtual machines without powering down.
- Did you make the Windows system partition too small? VMware Converter can expand it.