This blog post will show the configuration of IP Addresses on multi-subnet clusters for the cluster’s network name, or “Client Access Point” (CAP). This is different from the IP Addresses configuration for other clustered workloads as there is no way to add resource to the CAP via the GUI, it must be done using PowerShell (or Cluster.exe).
In this scenario I have a 2-node cluster, DRCluster, and I have just added an additional two nodes at my second site. If all four nodes were available when the cluster was created, the IP Addresses on both subnets for the CAP would have automatically been created. However in this scenario the nodes in the second subnet were added later, so the new IP Address for the CAP must be manually created.
First let’s take a look at the GUI for the ‘Core Cluster Resources’ (CCR) which contains the CAP. This can be done by selecting the cluster in the left navigation pane and expanding the ‘Core Cluster Resources’ section.
Adding a new IP Address to the Group
To add a new IP Address to the CCR we must use PowerShell (or Cluster.exe). We will launch PowerShell as an administrator and import the clustering module:
PS > Import-Module FailoverClusters
Next we will find the correct name of the CCR by running the cmdlet:
PS > Get-ClusterGroup
We see this is simply referred to as ‘Cluster Group’:
Next we want to add a new IP Address which is a type of cluster resource. Do not forget that PowerShell has great built-in help with examples, so even if you are not sure what the correct syntax is, you can use Get-Help <cmdlet name> -full to see all the details. For just the examples, use Get-Help <cmdlet name> -examples. This is very helpful in this case, giving the exact example we want to use:
To add an IP Address to the CCR we use the Add-ClusterResource cmdlet:
We see that this was successful and the resource is in the Offline state:
This new IP Address is now visible in the GUI:
Configuring the New IP Address
To continue configuring this using PowerShell, you would use the Set-ClusterParameter cmdlet and Set-ClusterResourceDependency. Once again you can use Get-Help <cmdlet name> to get additional guidance. However that is not necessary as it is now possible for us to continue configuring the IP Address and set the dependencies from the GUI.
Right-click on the new IP Address and select ‘Properties’. Under the ‘General’ tab you are able to select the subnet that it is on (10.* for this scenario), as well as whether it uses DHCP or static IP Addresses:
After clicking ‘Apply’ and exiting you will see that the IP Address remains offline. If a static IP Address has been assigned it should be displayed. If DHCP has been selected, then no IP Address will show.
To immediately request a DHCP IP Address, right-click on the IP Address and select ‘Bring this Resource Online’. It will fail and an error message will be displayed. This is expected since the CCR is not on that subnet, however it will grab the IP Address that it will want to use at this time. Alternatively you can just wait until the first failover to the other subnet to get this IP Address. In our case we have been given 10.121.27.199.
Finally we will make the CAP dependent on either of the two IP Addresses. This will be a ‘OR’ dependency because we want the CAP to be available so long as an IP address on either network is available.
To do this, right-click on the CAP and select ‘Properties’, then select the ‘Dependencies’ tab.
Select the ‘Click here to add a dependency’ text.
From the dropdown in the ‘AND/OR’ column select ‘OR’ since this will be an ‘OR’ dependency type, then from the dropdown in the ‘Resource’ column select the new IP Address:
Finally click Apply, and when you return to the Failover Cluster Manager GUI you can see that it has been added to the CAP group:
It is in an offline state which is expected since the CAP is still on the 157.* subnet.
We want to make sure that the new IP Address for the CAP will come online on the new cluster. However in the GUI there is no way to move this resource group to another node (other than stopping the cluster service of the node it is currently on).
To do this in PowerShell we use the Move-ClusterGroup cmdlet and specify a node on the other subnet.