In this post, I am going to show you how to perform a Rolling Cluster Upgrade from Windows Server 2012 r2 to Windows Server 2016. I will then show you how to upgrade the functional level of the cluster to the latest version.

This guide does not show you how to install the failover cluster role. I would hope that if you are performing a cluster upgrade then you already know how to do that.

Adding a 2016 node to an existing Cluster

On your new Windows Server 2016 Cluster Node.

Open Failover Cluster Manager

In the Actions Pane, click Connect to Cluster…

Enter cluster name and click OK

Expand the cluster and select Nodes

Under the Actions Pane. Click Add Node…

Click Next

Enter the New Server’s Name, click Add and then click Next

[themify_box style=”black warning”] As this is only in my lab I will select no to the cluster validation. In production environments always do a cluster validation!

Click Next

Click Next after confirming information and then click Finish

You should now see the newly added Node under the Nodes Pane. In this case, PIXEL-VHM10 being the one running 2016.

Evicting old 2012 r2 Nodes

In the node pane. Select one 2012 r2 node

Right click it, then select Pause and then select Drain Roles

You have now live migrated all Roles off of the server and paused the node so nothing can run on it.

Keep the Paused node highlighted

Under the Actions Pane on right. Click More actions near the bottom

Click Evict

Make sure you are evicting the correct node and then click Yes

We now have one 2012 r2 Node and one 2016 Node.

You can just repeat the above guide to in till all of your nodes are Windows Server 2016.

Updating Cluster Functional Level

[themify_box style=”black warning”] Only Update the Clusters Functional Level when all nodes are running Windows Server 2016

To Check the Cluster Functional Level

Open PowerShell with Elevated permissions.


# Check Cluster Functional Level
Get-Cluster | Select ClusterFunctionalLevel

If the result is 8 then you are running a 2012 r2 cluster

Check nodes are UP

Open PowerShell with Elevated permissions.


# Check Nodes are UP

Upgrade the Cluster functional level

Open PowerShell with Elevated permissions.


# Upgrade Functional Level

To make sure that the command completed successfully

# Check Cluster Functional Level
Get-Cluster | Select ClusterFunctionalLevel

If it was successful you should see the number 9. this means you are now running a 2016 Cluster.

Pixel Robots.

I’m Richard Hooper aka Pixel Robots. I started this blog in 2016 for a couple reasons. The first reason was basically just a place for me to store my step by step guides, troubleshooting guides and just plain ideas about being a sysadmin. The second reason was to share what I have learned and found out with other people like me. Hopefully, you can find something useful on the site.


Phonce · July 4, 2017 at 12:00 pm

Thanks for posting but what about having a FOC with sql already installed. Should i install same sql version at the new w2016 then evict the w2012 nodes? What should be the right procedure?


    Pixel Robots. · July 5, 2017 at 7:53 pm


    You should install the same version to start with. And then if you want to upgrade the SQL version you can once the FOC has been fully updated.

    Hope that helps.

Leave a Reply

Your email address will not be published. Required fields are marked *


I agree

This website stores some user agent data. These data are used to provide a more personalized experience and to track your whereabouts around our website in compliance with the European General Data Protection Regulation. If you decide to opt-out of any future tracking, a cookie will be set up in your browser to remember this choice for one year. I Agree, Deny