Virtualization is certainly no stranger to the data center. Nowadays most companies use virtualization in some form another. Most companies use virtualization for test environments, and increasingly companies use virtualization for production-level server consolidation. Even though virtualization has been used for production workloads ranging from file serving to web hosting, there’s one application that businesses have been slow to virtualize—SQL Server. Sometimes this is a case of not fixing what isn’t broken. But there’s also a common perception that virtualization can’t provide the performance required for SQL Server and other database workloads, which tend to be very I/O intensive. However, that perception hasn’t kept pace with today’s virtualization technology.

VMware Performance Enhancements

At the recent VMworld 2009 conference VMware CEO Paul Maritz outlined the benefits of VMware’s new vSphere platform. From the DBA’s standpoint some of the most important enhancements are in performance. The ESX Server 4.0 platform supports virtual machines (VMs) with up to 8 virtual CPUs and up to 255GB of RAM. These numbers are significantly higher than ESX Server 3.5’s maximums of 4 virtual CPUs and 64GB of RAM per VM. Even these older levels supported by ESX Server 3.5 were more than adequate for most SQL Server installations. Perhaps more important to SQL Server DBAs are the enhancements to network and I/O performance. ESX Server 4 manages 30GB per second of network traffic and 350,000 IOPS. While this requires significant hardware resources, it also clearly shows that virtual machines can now scale to meet mainframe-size workload demands. Virtualization has matured very quickly over the past couple years; amazingly, it’s been only six years since VMware first introduced VMotion.

Microsoft Hyper-V Scalability Improvements

While VMworld 2009 understandably focused on VMware solutions, Microsoft’s Hyper-V is no slouch in the area of scalability either. Hyper-V, especially with Windows Server 2008 R2, offers many of the same scalability benefits as VMware’s ESX Server. Hyper-V R2 supports a maximum of 4 virtual CPUs per VM and up to 255GB of RAM per VM. While I haven’t seen official Microsoft numbers about the total IOPS that are available, results posted by the QLogic at http://www.qlogic.com/promos/products/hyper-v.aspx show that Hyper-V managed 200,000 IOPS. While this benchmark may not be completely representative of most production environments, it does show that Hyper-V is also capable of supporting very high levels of I/O. For best practices and tips about running SQL Server in a virtual environment Microsoft has produced a detailed white paper, Running SQL Server 2008 in a Hyper-V Environment.

Virtualizing Database Workloads

Although there’s an ingrained resistance to virtual database workloads, in actuality SQL Server is often an ideal candidate for virtualization. Many SQL Server installations are underutilized departmental or branch office systems that support only a few dozen users. These systems are clear candidates for virtualization. So if virtualization is capable of meeting the performance requirements of a production database implementation what are the benefits to virtualization? The two most obvious benefits are increased server utilization and ease of management. Here virtualization allows you to combine the workloads running on many servers and run the workloads on far fewer servers. The fewer servers you have, the easier your management tasks will be. In addition, virtualization makes it possible to dynamically adjust VM attributes like hot adding RAM or disk to a running virtual server in response to increased workload. Virtualization also enables you to take advantage of features such as Windows Server 2008 R2 Live Migration or ESX VMotion which allow you to increase the availability of the database services that IT provides to your end users. Virtualization may not be required for all installations but it can handle the most demanding workloads, and the benefits it offers will continue to drive the adoption of virtualization for all IT services—SQL Server included.