Lot of times request to start the Virtual Machines in a Failover Cluster in a specific order after a failure and all your VM's of a node is down or while the VM's transfered automatic in other Node.
Windows Server 2012 introduce the Priority feature as a solution but this was only a workaround without cover the requirements.
Windows Server 2016 has introduce a new feature that can be orchestrator the VM's or Roles and create dependencies between Groups.
The feature called Cluster Group Set that can create Set of Groups and then create a dependencies between Groups.
Real Scenario
A Failover Cluster with 2 Nodes which has multiple Remote Desktop Session Host Servers , Domain Controllers and you have configure it with User Profile Disk which hosted in another Server.
You have a failure in one node and your VM's failed for any reason or start to migrate in the other Node all together.
Remote Desktop Session Host Servers are come's first online before Server with User Profile Disk.
Then connected users start to get errors for his/her profile and users which try to connect will see any empty profile and lot of errors. Then users will start to call you one by one to explain the issue.
You must explain in all users that must be sign out and wait a few minutes until login again.
The Solution
For the specific scenario we will create the following
- A Cluster Group RDS which include the Virtual Machine RDS01 and RDS002
- A Cluster Group upd which will include the Virtual Machine RDUSPR
- A Cluster GroupSet which will include the cluster group rds
- A Cluster Group Set which will include the cluster group upd
- A Dependency between Cluster Group Set
Let's start !!!
Step 1 - In this scenario we have already decide the Cluster Group and the Virtual Macines which will included. But in your environemnt you must write down in a paper the Cluster Groups that you want , the Virtual Machine which will included in the Cluster Groups and the dependencies.
Step 2 Open a powershell as administrator in a Failover Node
Step 3 Type the following command to create the Cluster Group rds
Add-ClusterGroup -Name rds
Step 4 Type the following command to view the Cluster Resource Types because you must use the Virtual Machine in the following step
Get-ClusterResourceType
Step 5 Type the following command to add the RDS01 and RDS02 in the Cluster Group
Add-ClusterResource -Name RDS01 -ResourceType "virtual machine" -Group rds
Add-ClusterResource -Name RDS01 -ResourceType "virtual machine" -Group rds
Step 6 Verify the Members of the Cluster Group
Get-ClusterGroup -Name rds | Get-ClusterResource
Step 7 Create the Cluster Group Set and add the Cluster Group in the Cluster GroupSet
New-ClusterGroupSet -Name rds -Group rds
Step 8 Verify the Cluster Group Set
Get-ClusterGroupSet -name rds
Step 9 Type the following command to create the Cluster Group upd
Add-ClusterGroup -Name upd
Step 10 Type the following command to add the RDUSPPR in the Cluster Group
Add-ClusterResource -Name RDUSPR -ResourceType "virtual machine" -Group upd
Step 11 Create the Cluster Group Set and add the Cluster Group in the Cluster Group Set
New-ClusterGroupSet -Name upd -Group upd
Step 12 Verify the Cluster Group Set
Get-ClusterGroupSet -name upd
Step 13 Now create the dependency between the Cluster Group Sets
Add-ClusterGroupSetDependency -Name rds -Provider upd
Step 14 View the Cluster Group Set Dependency. As you can see the rds Cluster Group Set has the Provider Name of upd. This means that the Virtual Machines which include in the Cluster Group Set rds will wait until start the Virtual Machines in Cluster Group upd and with a delay of 20 seconds after start the Virtual Machine RDUSPR.
Get-ClusterGroupSetDependency
Now you have resolve the issue and in any failure the Server with the User Profile Disks which start first or transfer to another Node first and after will start or transfer the Remote Desktop Session Host Servers.
Happy new Year with health and without Covid-19
Have a nice weekend