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:

Network 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:

IP Setup

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:

IP Address Offline

Looking at the dependencies, cluster automatically sets up this OR relationship for you:

OR Dependencies

 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.

Cluster Events

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.

Published Fri, Aug 8 2008 8:27 by John Toner
Filed under:

Comments

# Howto: Have a Clustered instance of sql SERVER listen on multiple virtual IP addresses

Tuesday, December 30, 2008 5:03 AM by Esoteric

Recently a colleague asked me if there were any changes specific to Windows Server 2008 which allow SQL

# Howto: Have a Clustered instance of SQL Server listen on multiple virtual IP addresses

Tuesday, December 30, 2008 9:43 PM by Esoteric

Recently a colleague asked me if there were any changes specific to Windows Server 2008 which allow SQL

# re: Multiple Subnets with Windows 2008 Clusters

Friday, January 30, 2009 8:23 AM by ChrisW

In our four-node geocluster environment we have noticed the the time is dependent on arp cache refresh.  

More specfically with the network switches\routers. If after a failover the arp cahe is not flushed some clients can not find the resources.  Sometimes our network admins need to set a static configuration.

Granted this is with our 2003 servers since it affects network config's I'd expect you might find the same with 2008.

# re: Multiple Subnets with Windows 2008 Clusters

Monday, November 30, 2009 5:05 AM by krish

I am using MS cluster 2008. I want to get all the nodes associated for a given RG, for this I saw follow steps,

There is link

msmvps.com/.../multiple-subnets-with-windows-2008-clusters.aspx

This supports ORing of resource.

1) Get all nodes in the cluster using

ClusterOpenEnum(hCluster, CLUSTER_ENUM_NODE); as "Preferred Owners"

RG - N1 N2 N3 N4 N5 N6

2) Get handler to RG

ClusterGroupOpenEnum(hGroup, CLUSTER_GROUP_ENUM_CONTAINS);

3) then open handler to indidual resources

ClusterResourceOpenEnum(hResource, CLUSTER_RESOURCE_ENUM_NODES);

4) Now get intersection/sunset of all nodes by getting nodes for every resource,

Now I should consider nodes associated with each respource for RG as when RG switchover happens,

Q1-> Resource-group could be activated on ANY node when all it's resources can be activated on the node. Is it correct ?

R1 - N1, N2, N3

R2 - N2, N3, N4

R3 - N2, N3, N6

In this case the nodes are - N2, N3.

Q2-> Is this a possible combination for resources and nodes added as a "Possible Owners" ?

As ORing is supported as per above link and my logic may fail as offline resource may not have requied nodes as "Possible Owners" even it may have NONE as "Possible Owners".

Q3-> The nodes in item 4 is always subset of item 1?

Q4-> Could resource nodes be different from nodes got item 1?

Q5->Is my logic correct when ORing is supported? Or should I consider all resources but 'offline' one for a RG?

Q6-> We have API

DWORD WINAPI SetClusterGroupNodeList(

__in  HGROUP hGroup

)

But there is no API which gives nodes for a RG like GetClusterGroupNodeList() :-)

Appreciate your thoughts and inputs.

I posted this question in social.technet.microsoft.com but no reply.

Could you answer to "kri_thi@yahoo.com"

Thanks in advance

- Krish

Leave a Comment

(required) 
(required) 
(optional)
(required)