Multiple Subnets with Windows 2008 Clusters
I’ve been playing around with Microsoft Windows 2008 clusters for a while now trying to test out some of the new features and how they will affect multi-site clusters. One of the best new features (in my opinion) in 2008 clusters is the ability to have cluster nodes on different subnets. Microsoft does this by introducing a new OR dependency option for resources. In 2008 clusters, you have two options when making a resource depend on more than one resource:
- AND. This indicates that both the resource in this line and one or more previously listed resources must be online before the dependent resource is brought online.
- OR. This indicates that either the resource listed in this line or another previously listed resource must be online before the dependent resource is brought online.
So with the OR dependency, you can set up your cluster Network Name resources using an IP address from multiple subnets. Let’s take a look at this in action. Here’s my configuration:
I’m using a subnet mask of 255.255.255.0 for all subnets. When you create your cluster or an application group, you are prompted to provide an IP address for each subnet. For example:
Here, you would enter a valid IP address for each subnet. Once this is complete, cluster will automatically setup these dependencies properly for you. Looking in the cluster GUI, you’ll see that only one of the IP resources will be online at a time as the other IP address is not valid for the node:
Looking at the dependencies, cluster automatically sets up this OR relationship for you:
You might also notice that the other cluster IP address actually FAILS while coming online. This will generate an error in the system event log every time the group is moved.
This is mildly annoying, but well worth it.
One issue that you will likely run into with multiple subnets is with the DNS replication. Upon failover to the other node, DNS records will be updated to point to the new IP address. While this is occurring, clients may not be able to connect to the cluster workload even though it is online. I’ve heard reports that this replication had taken up to an hour at some sites (yuck) so the cluster is effectively offline to the clients during this time.
If you’re setting this up in your environment, please leave me a comment and let me know how long this replication takes in your environment.