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:
- Our system uses a custom database (not SQL), which can be easily partitioned to fit on a server pair for redundancy.
- Client-side load balancing can be used to distribute the load across each pair of servers.
- The only part of our system that actually needs the IIS NLB cluster is the dedicated web application servers.
- 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…