Failover Clustering and Network Load Balancing Team Blog
Hi Cluster Fans,
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).
First, check out Part 1 of the series which showed how to configure IP Addresses for clustered workloads using the GUI. Part 2 covers some more advanced settings such as Possible Owners. To see a video walkthrough of the multi-site deployment for this cluster, visit: http://technet.microsoft.com/en-us/edge/disaster-recovery-cluster-deployment-demo-multi-site-failover-clustering.
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.
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:
PS > Add-ClusterResource –Name NewIP –ResourceType “IP Address” –Group “Cluster Group”
We see that this was successful and the resource is in the Offline state:
This new IP Address is now visible in the GUI:
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.
PS > Move-ClusterGroup “Cluster Group” –node DRCluster-2a
In the GUI you will now see that the CAP has changed subnets. It is now online on the 10.* subnet and offline on the 157.* subnet:
This should help you understand how to successfully figure IP Addresses for the CAP in multi-subnet clusters. Syntax for these operations using Cluster.exe is available here: http://technet.microsoft.com/en-us/library/cc736767(WS.10).aspx
Symon PerrimanTechnical Evangelist
Private Cloud Technologies
This is a great and helpful write-up, thanks! Do you know if there is a limit on how many IP resources can be added to a service? Currently I have about 126 static IP's in my cluster and it fails over just fine in less than 20 seconds or so, as we grow I will need to add more. I am curious if there is a point where the cluster will not be happy with bringing up so many IP's.
This article doesnt mention much about the cmdlets which can be used to create dependency of Network Name on IP Address.
Please refer to:
blogs.msdn.com/.../10510616.aspx and the section titled "Do Failover Clusters support static IPv6 addresses".