Windows 2012 to Windows 2016 Cluster Update

  • I apologize for possibly placing this question in the wrong forum; I don't see a relevant forum for Windows cluster questions as they relate to AlwaysOn environments.

    My Scenario: 
    I had 2 clustered Win2012R2 servers running SQL2012 (SP3-CU9) with AlwaysOn.
    I added 2 new Win2016 servers to the cluster running SQL2012 (SP3-CU9) and added the replicas to the AGs.
    I've removed the Win2012R2 servers from the AGs and the cluster.
    At this point, I have a Windows2012 cluster (functional level 8) with 2 Win2016 servers hosting SQL2012 AlwaysOn AGs.
    I'm ready to upgrade the cluster to Win2016 (functional level 9).

    My question:
    When I issue the Update-ClusterFunctionalLevel command, does this simply make a quick meta-data change in the cluster? Will my cluster come offline or need to restart?  How long does the functional level upgrade take?

    Any insight from someone who has done this would be great.
    Thank you

  • Since I didn't hear back from anyone on this, I did the testing myself.

    Backstory

    There are a lot of articles on Windows cluster rolling updates. They mostly address how resources fail back and forth while the operating systems are upgraded from Win-2012R2 to Win-2016. As an after note, these articles state that the cluster functionality level is then updated from 8 to 9. There is no mention of what happens to the cluster during the update or what effects upgrading the cluster might have on a SQL availability group in the cluster.

    Setting the stage

    I started with 2x Win-2012R2 servers, both running SQL-2012-SP3CU9 and an availability group in synchronous mode across both replicas.

    No ClusterFunctionalityLevel is available from the cluster because Win-2012 clusters do not use this.

    Add 3rd node to cluster

    I added a new node to the cluster, TestDEVSQL10, running Win-2016 with SQL-2012-SP3CU9 and added it to the availability group in synchronous mode (requiring TestDEVSQL30 to be changed to async mode).

    From the new, Win-2016 server (TestDEVSQL10) the ClusterFunctionalityLevel is now indicated as 8.

    Remove Win-2012R2 node from cluster

    I removed one of the original Win-2012R2 servers (TestDEVSQL30) from the availability group, evicted it from the cluster and shut it down.

    Add [another] 3rd node to the cluster

    I added another Win-2016 node to the cluster (TestDEVSQL31) with SQL-2012-SP3CU9 and added it to the availability group.

    From one of the Win-2016 servers, you can see the two “new” nodes (TestDEVSQL10 & TestDEVSQL31, both Win-2016) along with the "old", Win-2012R2 node (TestDEVSQL20). The ClusterFunctionalityLevel is still at 8.

    Remove final Win-2012R2 node from cluster

    I placed the two Win-2016 replicas in synchronous mode, removed the final Win-2012R2 server (TestDEVSQL20) from the availability group, evicted it from the cluster and shut it down. 

    Ready to upgrade the cluster functionality

    The cluster now has 2x Win-2016 nodes (no Win-2012R2 nodes) but the ClusterFunctionalityLevel is still at 8. Executing Update-ClusterFunctionalityLevel -WhatIf will indicate if the cluster qualifies for an upgrade. You can see our cluster, TestSQL-Cluster, qualifies.

    Upgrade the Functionality Level

    In order to test the cluster (and therefore the availability group) while upgrading the functionality level, I built a SQL script that continuously queried both the primary and the secondary replicas while upgrading the functionality level.

    While continuously querying the two databases in the availability group through the listener, I upgraded the functionality level by issuing the command from one of the nodes in the cluster: 
    Update-ClusterFunctionalityLevel
    I was presented with the following warning:

    I selected “Yes to All”.

    Results

    Upgrading the cluster functionality level from 8 (Win-2012R2) to 9 (Win-2016) took only a second and did NOT cause the cluster roles to come offline during the process.  The functionality level upgrade appears to be largely a meta-data change to the cluster. Below is the complete process:

Viewing 2 posts - 1 through 1 (of 1 total)

You must be logged in to reply to this topic. Login to reply