Windows Server Servicing Model Changes

Microsoft has announced some changes to the release schedule and servicing model for Windows Server. The new Semi-Annual Channel is a twice-per-year feature update release with an 18 month servicing timeline (meaning that Mainstream support ends 18 months after that Semi-Annual Channel release becomes available).

The current release in this channel is Windows Server, version 1709, which became available on October 17, 2017. This release will fall out of Mainstream support on April 18, 2019, and there is no Extended support period. In this new model, Windows Server releases are identified by the year and month of release: for example, in 2017, a release in the 9th month (September) would be identified as version 1709.

Microsoft describes the Semi-Annual Channel below:

“The Semi-Annual Channel provides opportunity for customers who are innovating quickly to take advantage of new operating system capabilities at a faster pace, both in applications – particularly those built on containers and microservices – and in the software-defined hybrid datacenter.”

You also have the option of staying on the Windows Server 2016 Long-Term Servicing Channel (LTSC) with the traditional five years of Mainstream support, five years of Extended support, and the option to purchase Premium Assurance, for six more years of support. The current release in this channel is Windows Server 2016, version 2016 which became available on October 12, 2016. This release will fall out of Mainstream support on January 11, 2022, and it will fall out of Extended support on January 11, 2027. The LTSC is scheduled to have new releases every two to three years.

The Semi-Annual Channel will be available to volume-licensed customers with Software Assurance, as well as via the Azure Marketplace or other cloud/hosting service providers and loyalty programs such as Visual Studio Subscriptions.

The Semi-Annual Channel can be installed as a Nano Server or Server Core, but is not available as Server with Desktop Experience. The Long-Term Servicing Channel can be installed as a Server with Desktop Experience or Server Core, but is not available as Nano Server.

 

Implications for SQL Server Usage

If you want to use the Semi-Annual Channel, you will have to be comfortable running SQL Server on Server Core (with no integrated GUI). You can either start using Powershell or you can use tools like Project Honolulu, which is a locally deployed, browser-based, management tool set that enables on-premises administration of Windows Servers with no Azure or cloud dependency.

The two most interesting new features for SQL Server in Windows Server, version 1709 are Storage-Class memory support for Hyper-V VMs and Virtualized Persistent Memory (vPMEM) for Hyper-V VMs.

Storage-class memory support for VMs enables NTFS-formatted direct access volumes to be created on non-volatile DIMMs and exposed to Hyper-V VMs. This enables Hyper-V VMs to leverage the low-latency performance benefits of storage-class memory devices. Virtualized Persistent Memory (vPMEM) is enabled by creating a VHD file (.vhdpmem) on a direct access volume on a host, adding a vPMEM Controller to a VM, and adding the created device (.vhdpmem) to a VM. Using vhdpmem files on direct access volumes on a host to back vPMEM enables allocation flexibility and leverages a familiar management model for adding disks to VMs.+

Virtualized Persistent Memory (vPMEM) is enabled by creating a VHD file (.vhdpmem) on a direct access volume on a host, adding a vPMEM Controller to a VM, and adding the created device (.vhdpmem) to a VM. Using vhdpmem files on direct access volumes on a host to back vPMEM enables allocation flexibility and leverages a familiar management model for adding disks to VMs.

Using Storage-class memory in a VM will let you use the Persisted Log Buffer feature (aka “tail of the log caching”) that was introduced in SQL Server 2016 SP1, as described here.

 

 

 

Upgrading SQL Server– Windows Server 2016 Licensing Issues

If you are planning a complete data platform upgrade, you should be planning on using Windows Server 2016 as your operating system (assuming you are planning on using Windows rather than Linux). Windows Server 2016 has a number of advantages over older versions of Windows Server, including higher license limits for memory, better networking and clustering support, and a longer remaining support lifetime (January 11, 2022 for mainstream support). Windows Server 2012 and Windows Server 2012 R2 will fall out of mainstream support on October 9, 2018, which is not that far away.

One potential issue with Windows Server 2016 is the fact that Microsoft is now using a core-based licensing system for that product. Microsoft requires a minimum of eight core licenses per processor and sixteen core licenses per server. This could potentially be a point of confusion and extra SQL Server licensing costs for some organizations.

Here is the scenario. Imagine that you have done your sizing analysis and calculations for SQL Server 2017 usage, and you have decided that a new two-socket server with two, quad-core Intel Xeon Gold 5122 processors will best suit your performance needs and budget requirements. That particular processor costs $1221.00 each.

Shon Smith, your well-meaning server administrator is aware of the new Windows Server 2016 licensing model, and he wants this new database server to actually have the sixteen physical cores that he was forced to buy Windows Server 2016 core licenses for. He also wants to minimize the hardware cost of this new server. Because of this, he decides to buy a two-socket server with two, eight-core Intel Xeon Bronze 3106 processors (which only cost $306.00 each). Shon has maximized his investment in those sixteen required Windows Server 2016 core licenses, and he has saved $1,730.00 on the hardware. But what has he done to you, the DBA?

First, this new database server now will require sixteen SQL Server 2017 core licenses instead of only eight. For SQL Server 2017 Standard Edition, this means a $14,872.00 increase in your SQL Server license costs, while SQL Server 2017 Enterprise Edition would cost $57,024.00 extra due to this hardware change. But you have twice as many physical cores, so that must be better, right?

Actually, not at all in this case. The Intel Xeon Bronze 3106 has a base clock speed of only 1.7GHz, with no Turbo Boost, no Hyper-Threading and an 11MB L3 cache. The Intel Xeon Gold 5122 that you specified has a base clock speed of 3.6GHz, a Turbo Boost speed of 3.7GHz, along with Hyper-Threading and an 16.5MB L3 cache.

The system you originally specified would have more than double the single-threaded CPU performance compared to Shon’s modified system. Your original system would also have more total CPU capacity than Shon’s modified system. The Intel Xeon Bronze 3106 is a terrible choice for SQL Server usage!

Keep in mind that most SQL Server instances only require Windows Server 2016 Standard Edition (rather than Datacenter Edition). Those sixteen required core licenses for Windows Server 2016 Standard Edition only cost $882.00 total, not each. This means that you should not let that required minimum Windows Server 2016 core license count sway your processor choice for SQL Server.

This exercise assumes that SQL Server 2017 licenses have the same pricing model as SQL Server 2016 licenses. It also uses a particularly bad processor choice by Shon, to illustrate the point. Using two eight-core Intel Xeon Gold 6144 processors would have given you much better performance and scalability (at a higher hardware cost) for that extra SQL Server license cost.

 

Additional Resources

My new Pluralsight course, SQL Server: Upgrading and Migrating to SQL Server 2016 has just been published. This is my eleventh course for Pluralsight, but the complete list of my courses is here.

Building on this online course is a new three day class, IEUpgrade: Immersion Event on Upgrading SQL Server, taught by myself and Tim Radney. The first round of this course will be taught in Chicago from October 11-13, 2017.

Finally, I will be presenting a half-day session called Migrating to SQL Server 2017 at the PASS Summit 2017 in Seattle, WA from October 31- November 3, 2017.

Here is a link to the complete series about upgrading SQL Server.

Operating System Support for SQL Server Versions

There are currently six major versions of SQL Server that I commonly see being used in Production, along with five major versions of Windows Server. Only certain combinations of SQL Server and Windows Server are officially supported by Microsoft, but tracking down this information is a little tedious.

Table 1 shows these possible combinations and whether they are officially supported by Microsoft. One possibly surprising combination is the fact that SQL Server 2012 is not officially supported on Windows Server 2016. Perhaps this is less surprising if you keep in mind that SQL Server 2012 will fall out of mainstream support on July 11, 2017, which is not that far away.

 

Picture1

Table 1: OS Support for Recent Versions of SQL Server

 

The available links that document this are listed below:

Hardware and Software Requirements for Installing SQL Server 2008 R2

Hardware and Software Requirements for Installing SQL Server 2012

Hardware and Software Requirements for Installing SQL Server 2014

Hardware and Software Requirements for Installing SQL Server (for 2016 and later)

 

If you are getting ready to deploy a new instance of SQL Server 2014 or SQL Server 2016, then you should prefer Windows Server 2016, even though they are also supported on older operating systems. If you are getting ready to deploy a new instance of SQL Server 2008 through SQL Server 2012, then you should prefer Windows Server 2012 R2, even though they are supported on older operating systems.

Finally, if you are getting ready to deploy a new instance of SQL Server 2005, then I feel a little sorry for you! SQL Server 2005 is out of extended support, and it is missing so many useful features that were added in newer versions of SQL Server.

Actually, I recently helped a client deploy some new instances of SQL Server 2005 for some pretty valid business reasons. We ended up deploying to a VM (on new, very fast host hardware) that was running Windows Server 2008 R2, which worked perfectly fine.