With the proliferation of applications in everyday use, enterprises have an increasing need for more instances of databases such as SQL Server. Most applications have their own set of database requirements, leading to the use of multiple versions of databases and to significant costs related to the databases and related hardware resources. More importantly, the hardware deployed for databases is not fully utilized or there is a demand to scale up hardware resources to meet peak utilization on certain databases. Therefore, it has become important to control the cost of databases and related hardware resources, and to optimize and scale the use of hardware resources in different scenarios to provide better flexibility and maintain service level agreements (SLAs). An ideal solution to this problem is virtualization.
Virtualization is fairly common now. Many organizations worldwide have moved beyond the nascent stage into being more advanced users of server virtualization, specifically. These organizations have gained benefits in the areas of costs, efficiency, operations, availability, agility, and resiliency.
Microsoft SQL Server 2012 and Windows Server 2012 provide a host of new features that can be used to effectively virtualize demanding database workloads that previously were not considered for virtualization. Let me take baby steps in this understanding of Virtualization and what one needs to know in this topic area – this is most likely to be multiple part post, let me start on some basics.
Note: This is an important topic because close to 50% enterprises I get to talk with have already deployed their Tier-2 application already in an virtualized environments and close to 25% or more are planning to deploy in the immediate near future too. So these discussions I have with folks are always around the best practices.
Organizations today want the ability to consistently and coherently develop, deploy, and manage their services and applications across on-premises and cloud environments. New and enhanced capabilities in Windows Server 2012 Hyper-V can help customers reduce costs, while at the same time providing increased agility and flexibility.
Performance and Scalability: Because SQL Server can use an operating system’s maximum processor and memory capacity, Windows Server 2012 provides support for up to 640 logical processors (cores) over 64 sockets and up to 4 TB of memory (RAM).
The NIC Teaming feature in Windows Server 2012 helps improve the reliability of the networking system and ensures high availability of the network. It also improves the network throughput for SQL Server data. (These days, I recommend this feature to all my customers with this).
Windows Server 2012 features improvements in Server Message Block (SMB), including the ability to store SQL Server database files on remote file shares, it also offers multiple deployment options for database server storage. More about storage in future blogs.
Availability: Windows Server 2012 supports running SQL Server 2012 on Windows Server Core. This helps to reduce the surface area for attack and reduces the need to apply patches at the operating system level.
With the Cluster Aware Update feature of Windows Server 2012, maintenance of SQL Server cluster nodes can be automated, reducing downtime and improving reliability. With dynamic quorum management and the SQL Server AlwaysOn features, SQL Server clusters can achieve extremely high availability.
By combining Windows Server 2012 with System Center 2012, administrators can comprehensively manage demanding applications (such as SQL Server 2012 workloads) as well as the infrastructure – including physical and virtual resources—in an integrated and unified manner. Some of the benefits I talk with customers are:
- Higher capacity vCPUs (up to 64), Memory (up to 1 TB), and virtual machine density (up to 8,000 per cluster).
- Hyper-V support on Non-Uniform Memory Access (NUMA) and Fibre Channel.
- Faster and simultaneous live migration and dynamic quorum support in SQL
Server AlwaysOn cluster.
- Same management tool (System Center) for SQL Server virtual machines in both private and public clouds.
Now that I have put the fundamental building blocks or reasons to virtualize, I will blog in future posts around:
- Hardware innovations
- Compute considerations
- Storage considerations
- Networking considerations
- SQL Configurations etc
As this is an important topic, let me know if you want me to write on specific topic around Virtualization and SQL Server. And also let me also know if your organizations are running SQL Server inside a virtualized environments? Are there problems that you wished were explained anywhere? Let me know and I will cover them in future posts.