When people start to look at clustering it’s amazing to see the thought process. Once you explain the shared disk and how 2 servers can behave as one. What I find is that most people’s mind start to think ahead and once they realize the cost that they have put into an Active/Passive Cluster then they want to make use of the second node. This is a great idea and in a time of financial crunch it can really save you some money. But what Active/Active clustering is not where I see most of the hang ups… Active/Active clustering is not a Load Balancer.
First let’s take a look clustering. What is it? Well to put this in the simplest terms it is two physical machines that are interchangeable. An OS is installed on both machines and a service is installed that “Clusters” the 2 servers. Here is the kicker, the 2 server have to share the same disk resources. It may be one or it may be more. The trick here is that the disk is a resource, this resource can only be “owned” by one server at a time. One more thing that I would like to mention here is that there is a dedicated connection between the 2 servers. This connection is commonly called the heartbeat. The heartbeat is the way that the systems can tell if the other system is off line. So from an OS view this is what a Cluster looks like.
So the in the diagram above the Green Arrow is showing how Server A “owns” the Disk. The is Red arrow is the heart beat, if at any time the heart beat believes that Server A is no longer working then Server B will take over the ownership of the Disk. This is what we would refer to as a failover. The way that SQL Server works with this is it installs on both machines. If the failover occurs then Server B would then pick up and take all the requests. Now this is a really simple outline of the way that it works, there is some more to this but the end result is that only one server can have ownership of a resource. A resource can be Disks, SQL Server, Task Manager and so on.
So what is Active/Active? Well think of it as install a second instance of SQL Server on the cluster system as a whole. However this system will use Server B as the primary server, it will support completely sets of databases, data and so on. It is really just making use of the Second Passive Node in the Active/Passive configuration. What it is not is a sharing of the resource that is already owned by the other server in the cluster. Some however may consider this a load balancer in the fashion that If you had 2 databases that were on Server A for a period of time and both databases were pretty hard on the processors and memory and such then you could say this is a form of a load balancer. That would not be the case in my book.