Friday, March 16, 2012 6:29 PM
in order for my design of my AppFabric cluster to be approved I need it to work in high availability a cross datacenters. I need to support 200+ sites and I'm going to use the Session State Store solution only. I need to put some servers in 1 data center and some in the other. Can I setup 2 servers in 1 data center and 2 in another, or do I need more than that? When setting up for high availablity do I need to list all servers in the cluster in the web.configs. When 1 of these servers goes down in Datacenter A and someone makes a call to the next server inline, might it timeout while changing the secondary record to primary? Are there any best practices for a large setup like this?
Monday, March 19, 2012 1:10 PM
I want to add to this. Could I set up Twin 3 Server highly available Clusters and have the same applications access all 6 of these servers I would likes them in the web.config like this Server1a, Server2a, Server3a, Server1b, Server2b, Server3b.
This is not as "Highly Available" because if 1 data center goes down we lose all Session state data, however my session state store is still up and will start working as normal with a slightly frustrating blip. I would think the performance would be really good in this scenario.
In this scenario when the Datacenter comes back up, it will go back to server1a and look for it's data and will it work down the list until it finds it or will be rejected after the 1st cluster of 3 says it doesn't have the data?
Monday, March 19, 2012 7:07 PM
If I understand you correctly, you have websites hosted in 2 different geographies and you need cache support for session state in each data center. You're also looking to maintain cache network availability even if cache nodes in an entire data center cluster go down. Please correct me if I'm mistaken.
We do not support cache clusters established across geographically distributed data centers, or georeplication. My recommendation here would be to set up 2 HA enabled 3 node clusters (let's call them A and B, with servers 1A, 1B, 1C and 2A, 2B, 2C) and use the cluster hosted in a particular data center to service cache requests from sites in that data center. This would work with no data loss in case session state does not need to be shared across data centers, and not more than a machine goes down at a time.
To account for the case where cache nodes in an entire data center go down, and you need to failover to the cluster in the other data center, you could use a hardware load balancer in fail-over mode for the 3 servers in the configuration: LB1[1A, 1B], LB2[2A, 2B], LB3[3A, 3B]. As long as the cluster in data center A is reachable, web sites in data center A will continue using it. When the cluster goes down, the network load balancer would automatically switch to cluster B. While this might maintain network availability to cache, that will be at the expense of data consistency; so this isn't something I'd recommend.
To share session state across cache clusters in different data centers, check if read-through and write-behind to a common store might work for your scenario.
PS: To conclude, I must reiterate that nodes in a cache cluster must be so located as to minimize network latency and take pains to point out that to the best of my knowledge, the solutions and workarounds suggested herein are neither tested nor supported in this scenario by Microsoft. We'd love to continue to engage with you to understand your scenario better.
- Marked As Answer by Jrose27 Monday, March 19, 2012 8:14 PM
Monday, March 19, 2012 8:14 PM
Thank you for your reply.
I appreciate the suggestions given. The Problem with keeping the clusters seperate by geographic location is we allow any user to bounce between datacenters and will need the data available in both places in order for this work.
I understand our scenario is tough, we are large company and are expected to maintain performance and availability at all times.
I don't know that AppFabric is ready for our scenario.
Thank you for your help