Geo-Clustering

Associate
Joined
28 Apr 2012
Posts
800
Hi all!

does anyone know much about how to setup a Windows geocluster?
how does it work?

Basically the servers and services will be hosted in 2 countries. If only location fails, the other should take over without requiring change from the client incoming requests

anyone know how this is done and what is required?
 
What application are you looking to have clustered? Exchange? SQL?

I've setup an Exchange 2010 geo cluster, although both sites are in the same country.
Automatic failover from one site to another is going to be a tough goal to achieve, especially considering challenges like preventing a split-brain. After all, if you put the majority of your nodes in your primary site, then should this fail, your DR site will lose quorum. If you put the majority of nodes in the DR site, then a simple internet failure in your DR site can take your entire primary site offline.

I elected for a manual failover process, and a 5minute TTL DNS record. It gives us manual failover within a 15 minute restore period which works for us.
 
Last edited:
It will be SQL Server and Clustered MSMQ.

There is also a custom application (I wrote) which will be sitting on x servers per location, reading from that MSMQ (but the apps will NOT be clustered).
 
It will be SQL Server and Clustered MSMQ.

There is also a custom application (I wrote) which will be sitting on x servers per location, reading from that MSMQ (but the apps will NOT be clustered).

Hmm, ok. I haven't clustered SQL myself before, so I may not be much help to you there. I would suggest reading through technet articles on the MS site as they were very detailed and helpful when setting up the exchange cluster. Plus it detailed all the important requirements (e.g. latency must be below 500ms or the cluster heartbeats will timeout), and mentioned DAC mode which should be on for an Exchange stretched-Dag cluster.

Hopefully they will have a similar level of detail on the SQL side.
 
Thanks I appreciate that. and was going to do just that - technet stuff. I've also just got a paper which talks about Geo clustering and Windows. looks interesting.

how should it work? I mean - lets say we have a server in US and one in the UK (example)

These would not be clustered, or would they be clustered?
Or would these be seperately clustered in each location?
 
Thanks I appreciate that. and was going to do just that - technet stuff. I've also just got a paper which talks about Geo clustering and Windows. looks interesting.

how should it work? I mean - lets say we have a server in US and one in the UK (example)

These would not be clustered, or would they be clustered?
Or would these be seperately clustered in each location?

That's up to you. My recommendation would be at a very minimum to have onsite failover capabilities. Therefore I would suggest;

Site A = Server 1, and Server 2, and Witness Directory
Site B = Server 3 and alternate witness directory.

This way, you have the benefits of a cluster locally, i.e. you can take a node (server1 or server2) offline for maintenance and the cluster will continue to operate locally and will maintain quorum without needing to failover to your DR site.

However, should you lose Site A entirely, you can force quorum on site B and bring that online via server 3.

This way you have full benefits of a cluster locally, (including auto failover on site), while having the option to failover offsite if needed.

The above describes an Active-Passive setup.
If you want Active-Active, then you'll need to setup two clusters. For example
Cluster 1 consists of Cluster1Server1 and Cluster1Server2 in site A, and Cluster1Server3 in site B

Cluster2 consists of Cluster2Server1 and Cluster2Server2 in site B, and Cluster2Server3 in site A.

Put all Site A users in cluster 1 and all SiteB users in cluster2.
This Active-Active design allows each site to have running services, with the option to take the load of the other site if needed.


I'm personally running the Active-Active scenario since we had Exchange users in both sites.
The reason i have 3 servers btw is purely to allow onsite failover. Remember to think about how many votes you have for your failure scenarios. A 2 server cluster with a witness directory will tolerate only one node failing. A bigger 4 node cluster with a witness directory can tolerate two failing nodes.
 
Last edited:
Thanks. I think option 1 sounds appealing for now. Of course, it will be clustered onsite for failover reasons, and if siteA goes down, then we have SiteB.

How would it work and what equip is required if say SiteA fails completely or SiteB fails completely, how does it "switch" the incoming requests to the working site?
 
Thanks. I think option 1 sounds appealing for now. Of course, it will be clustered onsite for failover reasons, and if siteA goes down, then we have SiteB.

How would it work and what equip is required if say SiteA fails completely or SiteB fails completely, how does it "switch" the incoming requests to the working site?

Hiya. Well, I can only mention my experience which is exchange based. We went down a DNS route. We have our DNS hosted with a company who makes instant changes through a DNS control panel. The DNS record which points to our Exchange server has a 5 minute TTL (time to live), which means clients only cache the DNS result for 5 minutes before re-looking it up.

Therefore in our active-active scenario, we have webmail1.ourdomain.com pointing to sitea and webmail2.ourdomain.com pointing to siteB. Should we lose Site A, we force quorum for SiteA's cluster on site B manually. We then repoint webmail1.ourdomain.com to siteB's ip address. Wait 5 mins (or do a ipconfig /flushdns on the client pc's if you're impatient) and voilla. One failed over datacentre :)

I believe there are companies out there who can proxy an IP address for you, i.e. your IP points to them, and they redirect it to whichever site is online. However the company doing the proxy is a point of failure themselves, and when we looked into it, they charge a lot. I prefer my DNS method.

For your SQL server, I imagine you could do something similar - whatever the name of your SQL cluster is (i.e. the name you tell your app to connect to in order to find the sql database), just repoint it to whichever site is online.
 
Last edited:
thanks. thats quite helpful and useful to know!
Is there a way to make this type of environment in hyperv/VM in terms of "geo clustering"? I mean, this is for testing purposes on my local network here. how can I simulate a geo site? ;)
 
thanks. thats quite helpful and useful to know!
Is there a way to make this type of environment in hyperv/VM in terms of "geo clustering"? I mean, this is for testing purposes on my local network here. how can I simulate a geo site? ;)

You can get virtual appliances that simulate WAN connections - here is one that should be free :) , but there are many others -> http://vninja.net/network/using-the-wanem-wan-emulator-virtual-appliance/

This will allow you to simulate latency, packet loss and so on.
Hopefully this helps. I'm heading off now, but will revisit this thread tomorrow in case there are more questions :)
 
Last edited:
Thanks! I appreciate that.

Due to my lack of knowledge... excuse this next question before you whack me over the head :)

if I have a laptop and a desktop on the same home network, would there be a way to do the geo-cluster environment?

i.e desktop represents "SiteA" and Laptop "SiteB"?
 
Thanks! I appreciate that.

Due to my lack of knowledge... excuse this next question before you whack me over the head :)

if I have a laptop and a desktop on the same home network, would there be a way to do the geo-cluster environment?

i.e desktop represents "SiteA" and Laptop "SiteB"?

Hiya - sorry about the delay getting back to you.

Sounds like you're thinking of using a laptop and desktop to create this geo-cluster environment? If so, it's do-able, but I don't know how fast it would be. You could install something like the free vmware player onto both machines, and then install the two cluster nodes as virtual machines, and then the wan simulator appliance as another virtual on whichever of the machines is the fastest. It just depends on the specs of these machines, and how much ram they have.

I'd say it is possible though, at least to function as a test environment.
 
Back
Top Bottom