-1

Updated to reflect John Mahowald's input

After doing considerable research on the subject and exploring other options for our system, a cluster of clusters is not a good idea for the reasons that Mahowald gave and the following:

  1. Our system uses a custom database (not SQL), which can be easily partitioned to fit on a server pair for redundancy.
  2. Client-side load balancing can be used to distribute the load across each pair of servers.
  3. The only part of our system that actually needs the IIS NLB cluster is the dedicated web application servers.
  4. The active-active approach (suggested by Mahowald) for the pair of data servers works for our system. The two servers running in parallel provide lower latency/better performance when both are up and redundancy when one server in a pair fails.

We would like to have a cluster of two IIS servers as a building block for a larger cluster of 10 such building blocks (in other words, a cluster of clusters using 20 servers).

Each server would have a unique IP Address and a shared IP address for its cluster. Each of these server modules (two servers in a cluster) is responsible for its own data and to serve as a download source for the web application.

The leaf-node server pairs must be collocated and data synchronized using a wake-up timer created with ASP.NET auto-start functionality. This synchronization is done via the second NIC, which is only used for intranet communication. A JavaScript client must be able to access one of these server pairs to read/write data to the two server cluster. It will synchronize any data that changes. The latency of updates between servers is already taken into account in our system. No data is synchronized across the server pairs.

Edited to add more details The intent is to have a server pair (leaf-node cluster) that provides redundancy (for its unique dataset) and increased throughput when both servers are available. In the event of a failure, one server would carry the load, at a reduced capacity, until the other one is repaired.

The top-level cluster would handle normal application download functionality, which includes failover redundancy. It would provide NLB for the 10 cluster pairs using the lower-level cluster IP addresses. The top-level cluster would be effectively managing 10 unique IP nodes, where each IP node would be a leaf-node cluster.

I have not been able to ascertain whether Windows 2012 IIS handles this scenario after doing some searching on the web. The information that I have read does not seem to preclude this scenario.

Is this type of configuration supported? Resource links would be greatly appreciated.

Regards…

Highdown
  • 146
  • 9
  • Can you instead run a load balancer with 10 service addresses, each served by some or all of the 20 backend hosts? – John Mahowald Dec 27 '16 at 15:17
  • I have added more detail to clarify what we are trying to do. What load balancer are you talking about? IIS NLB or other SW NLB? A hardware load balancer is not a option now. If a service address can be associated with a server pair, then this would appear to be a viable approach. – Highdown Dec 27 '16 at 17:03

1 Answers1

1

Often saying cluster implies active-passive failover cluster, using some technology for high availability and coordination between nodes. Dealing with two-node clusters, scaling these to many nodes, or going active-active can be difficult.

In many cases, active-active systems are instead behind a load balancer.

Any software or hardware load balancer. Several commercial or open source (haproxy) products can handle multiple service addresses in front of whatever sets of backends on you want.

Not necessarily Windows Network Load Balancer however, that has network performance considerations, not as many features, and probably doesn't scale.

John Mahowald
  • 32,050
  • 2
  • 19
  • 34
  • I will have a look at alternatives to IIS NLB, but my initial goal was to use IIS for this functionality. It is speced at up to 32 servers for a NLB server farm. I know hardware NLBs can go a lot higher than 32 servers, but there is also a huge cost step function to achieve redundancy. What are the upper server node limits for the other SW NLB products that you are familiar with? Thank... – Highdown Dec 27 '16 at 19:01
  • You certainly can try Windows NLB. Be sure to test what happens when the web server is down but the host is up, as NLB probably still will send requests. We don't really do product recommendations here, and I don't know the load balancers that well anyway. Try an eval of a couple, most everyone has a virtual appliance. – John Mahowald Dec 28 '16 at 14:32
  • I attempted to up vote your answer, but do not yet have enough point for it to register. Did select your answer. After researching the issue, your advice was right on target. A cluster of clusters has numerous downsides. I have updated my original question to include some other issues with the approach and the fact that we have decided to go with client-side load balancing for our server pairs. Don't know why I didn't think of that before. Thanks for your assistance. – Highdown Jan 19 '17 at 17:28