Executive Summary: VMware's ESX Server 3.5 and Windows Server 2008's Hyper-V are server virtualization products that provide comparable performance but have very different feature sets and installation processes. ESX Server 3.5 offers slightly better performance, as well as an easy-to-use management console and a feature-rich platform. Hyper-V offers an attractive price point, a thin hypervisor, and support for large host systems and more active virtual machines (VMs).

Companies using SQL Server have been reluctant to jump onto the virtualization bandwagon. Long-time observers of server virtualization know that virtual machines (VMs) don’t perform as well as physical systems and I wanted to know if server virtualization for SQL Server is ready for prime time yet. So I ran a few tests.

Virtualization Performance

In the lab I tested two leading server virtualization products: VMware’s ESX Server 3.5 and Windows Server 2008’s Hyper-V (using the original beta code that was shipped with Server 2008). My big takeaway: Both platforms are definitely ready for production server workloads.

The hardware platform I used was an HP ProLiant ML370 Generation 5 (G5), a rack-mounted 4U server. The ProLiant ML370 G5 has two Quad-Core Intel Xeon processors running at 1.86GHz, 8GB of RAM, and eight 72GB 15,000 RPM drives configured as a RAID array. My SQL Server tests used four active SQL Server VMs, each servicing 40 active connections. The ProLiant ML370 G5 handled this workload well. Comparing the results of the response time obtained running one workload on one VM to the response time of running all workloads on all servers, I found that the fully loaded workload took about 3.5 times as long to run. I found this to be a surprisingly good result because the overall workload of the physical machine was 40 times higher. I performed this test with no tuning, and I didn’t add any network cards. But even without optimization, there’s no doubt that virtualization can drive up server utilization rates and derive more value from today’s high-powered multi-core server systems.

Response times for the various tests were consistent with each other, which should help you assess the service level agreement (SLA) you could meet running virtualized SQL Server systems. Although my tests were below the transaction level of a large enterprise database on a dedicated physical server, the tests definitely show that virtualized SQL Server systems are able to support server consolidation scenarios for small and midsized businesses. You can read more about the VMware ESX Server and Microsoft Hyper-V comparison in “Virtualization Shootout: Hyper-V vs. ESX Server 3.5,” page 41, InstantDoc ID 99218.

Challenges of Moving to a Virtual Platform

So what challenges do you face when moving SQL Server to a virtual platform? Actually moving the server system is the first challenge. To do the job you can use a physical-to-virtual (P2V) tool such as the VMware Converter for VMware implementations. Or you can use the Microsoft System Center Virtual Machine Manager 2007 (SCVMM) for Microsoft VM implementations such as Virtual Server. You could also try a third-party P2V conversion tool, such as Platespin PowerConvert or Vizioncore vConverter. Or you can just build a new VM, install SQL Server, then detach and re-attach your databases.

When you’re considering server consolidation, another challenge is network bandwidth. Although a single server might support all its connections using a single network card, that’s not likely to be the case when you use virtualization to consolidate servers. You can use System Monitor to ascertain the correct number of NICs.

You might see licensing as a challenge. Did you know that the license for SQL Server 2005 Enterprise Edition allows an unlimited number of virtual SQL Server instances? You can use any type of virtualization technology under this license,
including VMs from VMware.

Ready for Prime Time?

My tests show that virtualization technology is ready for SQL Server. Today’s virtualization platforms can support very demanding workloads. It doesn’t take a crystal ball to see that in the next couple of years many SQL Server systems will be going virtual.