Over the last few months, I’ve had a number of conversations with customers regarding the virtualization of SQL Server for the database-tier of SharePoint Server 2010 deployments. Historically, administrators have been hesitant to virtualize SQL Server database servers out of concerns for performance. With advances in virtualization technology and the adoption of new IT standards, virtual deployments have become the new norm in many organizations.
Still, virtualization is not the right choice for every workload. The purpose of this blog is to highlight the key considerations that go into deciding whether to virtualize the SharePoint database-tier.
Support for Virtualization
The first thing to consider is the SQL Server support policy for virtualization. SQL Server 2005+ enjoys support on a wide range of virtualization platforms with two important limitations. First, mobility technologies, i.e. VMWare VMotion, are not supported with the exception of Hyper-V Live Migration which has received thorough testing with SQL Server. Second, virtualization snapshots are not supported on any platform, including Hyper-V.
Disk I/O Requirements of the Database-Tier
The next thing to consider is the disk I/O workload generated by SharePoint on the database-tier. Formal testing is required to determine the requirements of a specific deployment, but Microsoft IT’s standard of 1,000 IOPS per TB of data or 5,000 site collections is a good starting point for more highly-utilized deployments. On top of this, MS IT reserves another 150-200% of capacity for periods of high utilization and burst events such as database backups.
With disk I/O requirements known, the next thing to consider is how those requirements will be met. With any server, there is interplay between CPU, memory, controllers, and the disk subsystem which must be understood to achieve optimal throughput. This white paper provides some insight into this and shows how disk I/O capacity can be determined for a server.
NOTE The configuration of the virtual machine can have a significant impact on SQL Server throughput. Consider this guidance on the deployment of SQL Server on Hyper-V technology.
It is possible single machine will not be capable of achieving the IOPS required to support a SharePoint workload. This is true of both physical and virtual machines but more likely with virtual machines given their more limited scale. If the IOPS requirements exceed what can be supported by a single machine, consider scaling up (if possible) or scaling out.
Resource Isolation and Predictable Capacity
Finally, keep in mind any shared resources associated a server. If these resources are not isolated, the available capacity of the server at any point in time will be dependent on the consumption of these resources by other associated servers. With virtual machines, shared resources can include CPUs, memory (when dynamic), network cards, controllers and disk subsystems. With physical machines, shared resources are typically limited to disk subsystems. With both virtual and physical machines, shared resources can be configured for isolation and, therefore, predictable capacity.
When designing the database-tier, consider first and foremost the infrastructure's ability to accomodate the SharePoint-generated workload. Virtualization adds many more factors to the consideration but success on a virtualized platform is achievable. Likewise, a physical deployment does not guarantee success if not built against known requirements.