In vNext we have gotten a long awaited & very welcome new capability: rolling cluster upgrades. Which for the Hyper-V roles is a 100% zero down time experience. The only step that will require some down time is the upgrade of the virtual machine configuration files to vNext (version 5 to 6) as the VM has to be shut down for this.
The process for a rolling upgrade is so straight forward I’ll just give you a quick bullet list of the first part of the process:
- Evacuate the workload from the cluster node you’re going to upgrade
- Evict the node to upgrade to vNext from the cluster
- Upgrade (no in place upgrade supported but in your lab you can get away with it)
- Add the upgraded node to the cluster
- Rinse & repeat until all nodes have been upgraded (that can take a while with larger clusters)
Please note that all actions you administration you do on a cluster in mixed mode should be done from a node running vNext or a system running Windows 10 with the vNext RSAT installed.
Once you’ve upgraded all nodes in the cluster, the situation you’re in now is basically that you’re running a Windows Server vNext Hyper-V cluster in cluster functional level 8 (W2K12R2) and the next step is to upgrade to 9, which is vNext, no there no 10 yet in server
You do this by executing the Update-ClusterFunctionalLevel cmdlet. This is an online process. Again, do this from a node running vNext or a system running Windows 10 with the vNext RSAT installed. Note that this is where you’re willing to commit to the vNext level for the cluster. That’s where you want to go but you get to decide when. When you’ve do this you can’t go back to W2K12R2. It’s a matter of fact that as long as you’re running cluster functional level 8, you can reverse the entire process. Talk about having options! I like having options, just ask Carsten Rachfahl (@hypervserver), he’ll tell you it’s one of my mantras.
When this goes well you can just easily check the cluster functional level as follows:
When this is done you can do the upgrade of the VM configuration by running the Update-VMConfigurationVersion cmdlet. This is an off line process where the VMs you’re updating have to be shut down. You can do this for just one VM, all or anything in between. This is when you decided you’re committing to all the goodness vNext brings you. But the fact that you have some time before you need to do it means you can easily get those machine to run smoothly on a W2K12R2 cluster in case you need to roll back. Remember, options are good!
Doing so updates VM version from 5 to 6 and enables new Hyper-V features (hit F5 a lot or reopen Hyper-V Manager to see the value change.
Note: If in the lab you’re running some VMs on a cluster node are not highly available (i.e. they’re not clustered) they cannot be updated until the cluster functional level has been upgraded to version 9.