Cluster Operating System Rolling Upgrade is a full name for something we all have been waiting for a long time. It is a feature allowing you to have Windows Server Failover Cluster where nodes are running different versions of Windows Server OS. Everyone who performed, even only once, migration upgrade of Failover Cluster will appreciate this new feature – I know I will.
Main benefits of Rolling Upgrade are:
- Additional hardware is not required
- A new cluster is not required
- No need to stop or restart cluster
The idea is to upgrade the cluster without any downtime by moving all the roles from a Windows Server 2012 R2 node to Windows Server Technical Preview node. Technical Preview nodes added to the cluster operate in a Windows Server 2012 R2 compatibility mode, while cluster operates in so called mixed mode. In Windows Server Technical Preview upgrade scenarios support Hyper-V clusters and Scale-Out File Servers and clusters running Windows Server 2012 R2. In the demo details shown below I upgraded Scale-Out File Server cluster.
The state transitions are shown here:
The basic upgrade steps are:
- Pause node and drain roles
- Evict node from the cluster
- Install Windows Server Technical Preview (In-place upgrade is not supported – I wouldn’t recommend it anyway)
- Join node back to the cluster
- Reinstall cluster role (Hyper-V, SOFS, SQL etc.)
- Repeat above steps for the remaining nodes
- Upgrade ClusterFunctionalLevel with PowerShell
After all the nodes have been updated you still have the chance to rollback, especially if your apps experience any problem. Windows Server Technical Preview nodes can be removed from the cluster and Windows Server 2012 R2 nodes can be added back to the cluster in this mode. Once the Update-ClusterFunctionalLevel PowerShell cmdlet is run on the cluster you can’t go back. There is no technical limit for the cluster to run in mixed mode or in Windows Server 2012 R2ClusterFunctionalLevel, but Microsoft intend to provide support for maximum of 4 weeks for such a cluster. It is recommended that all the nodes and the ClusterFunctionalLevel is upgraded as soon as possible. Please keep in mind that you should do all the administration, either with FCM or PowerShell, from the node running Windows Server Technical Preview.
To test the upgrade I created virtual Scale-Out File Server with Windows Server 2012 R2 and then upgraded it to Windows Server Technical Preview. For this demo I used 5 VMs: Domain Controller, iSCSI Target, 3 Cluster Nodes. I created SOFS as two node cluster, then I added the 3rd node running Windows Server Technical Preview and upgraded first two nodes. Also, I created 3 CSVs to see if Automatic Rebalancing will move one CSV (distribute CSVs on each node) after I add 3rd node running Technical Preview to the cluster.
Virtual lab diagram:
SOFS with 2 nodes, 3 CSVs and a Share on each CSV:
3rd node with Windows Server Technical Preview is added to the cluster:
Automatic Rebalancing kicked in and distributed CSVs evenly including the CU-NODE3 which is running Windows Server Technical Preview. At this point we have a cluster with nodes running different version of Windows, but participating equally.
After upgrading first two nodes ClusterFunctionalLevel is still Windows Server 2012 R2:
Upgraded ClusterFunctionalLevel to Windows Server Technical Preview:
This is definitely the awesome feature in Windows Server, an upgrade without any downtime. Microsoft is really going to spoil us, now I would like to see the same functionality within SQL Server running in Failover Cluster. Imagine upgrading Windows/SQL failover cluster to the new OS and DB version without any downtime.