Active-Active Clusters, should you use them over Active-Passive?
I have commonly worked with companies that use active-passive clusters for high-availability. Clustering is a good idea, but with active-passive clusters, one cluster is sitting idley waiting for failure of the other server. This is an expensive proposition in typical enterprise environments. This is not true in active-active clusters.
In an active-active cluster, both servers are in use. They provide hardware and OS failover for eachother. Clustering is at the server and OS level and doesn't provide data redundancy, just server redundancy.
There are a couple of gotchas that are often overlooked, one of which is that during failover your second (or third/fourth...) server must have memory available this size of which the failing sql server is using. An example is a cluster of two servers with 32GB each, in order for failure over to go successfully each server should have a max memory capacity set in SQL server to 16GB. That way when one server fails over to the other, it has the memory capacity to store all of the other servers memory. Another lesser known fact is licensing. In active-passive clusters, you do not have to license SQL on the passive server.
So, in the end, you have a little more complex setup, same redundancy level, a small percentage increase in hardware costs, a larger percentage of software licenses, but full utilization of both servers. Of course, you will need to have more than one database since they can only exist on one server at a time.
