Friday, March 30, 2012

Load balancing with SQl server 2005 cluster in active/active configuration

This is in regards to the MS SQL

Server 2005 Cluster testing.

I have the set-up in

Active/Passive configuration.

We decided upon moving to the Active/Active

configuration, did some research on the internet for the additional features

which we get with this configuration and what could be the benefits of this over

the Active/Passive configuration. We have a query regarding the Active/Active

configuration. Please find below the details on the

same:

The Current Setup in Active/Passive

configuration has the following details:

1)

There are two nodes “node 1” and

“node 2” setup on Virtual Server 2005.

2)

A cluster has been set up using

“node 1” and “node 2”.

3)

A SQL server default instance is

installed on “node 1”. While SQL server 2005 was installed, it created a

resource SQL server IP.

To connect to this SQL server

instance, our application uses SQL server IP created in step 3. (Please note

that this is the only IP through which we are able to connect to SQL cluster).

The fail-over features are working fine in this configuration. If “node 1” goes

down then the SQL server instance runs in “node 2”. This is taken care of by

cluster and is transparent to our application.

However, there is no provision for

load balancing as only one node is active at a

time.

After some research, we came across

Active/Active configuration which is supposed to support load

balancing.

We understand that in this

configuration, Step 1and 2 are similar to the Active/Passive configuration. The

only difference is in step 3 where an instance of SQL server is installed on

each node, thus providing two active nodes at a time. The failover works just

like in Active/Passive configuration.

As

per the above information, the Active/Active configuration seems to be

similar to two SQL server instances running independently.There will be

two seperate databases and on failure of one instance other instance

wont be able to cater to the requests designed for first instance, Thus

providing no extra benefits from cluster.

We require the information on how to

take benefits of the load balancing features in this configuration.

Hi geetu...

MSCS (Microsoft Cluster Services) is not a load-balancing product, it is simply a high-availability solution, period...load balancing does not come in to play at all with clustering a Sql database...the term Active/Active seems to imply that this would be the case, which is why we typically try to refer to them as Multi-instance clusters now instead of the Active/Active label. Active/Active in the MSCS world basically means that you have 2 independent Sql Server instances running on 2 cluster nodes - these instances are independent of each other in all respects, obviously unless you link them in some manner with custom business logic, replication, etc. Think of them for all intents and purposes as 2 seperate instances running on seperate servers at all times (as that's what they really are)...the only difference being that in case of a physical node failure (or service failure on a node), the instance will be moved to and hosted on a second physical server.

I'd be curious to know what research you came across that implied load-balancing as a feature with MSCS so we can try and get it corrected, or possibly clarify what position the author was taking.

To support load-balancing, or scaling out in a Sql Server environment you have a couple of different options, depending on your edition, environment, version of Sql, etc. Take a look at the following articles for a start:

http://msdn2.microsoft.com/en-us/library/aa479364.aspx

http://www.microsoft.com/technet/prodtechnol/sql/2005/scddrtng.mspx

HTH

|||

Hi Geetu,

Basically, Active/Active Cluster is two Active/Passive Clusters.

As mentioned by Chad, they are completely independent of each other.

HTH

Jag

|||

I hope you got more information from Chad's reply here and as suggested you might need another solution, cluster will not provide the load balancing.

These 2 links shoudl give you information in this regard:

http://www.microsoft.com/technet/prodtechnol/sql/2000/deploy/hasog04.mspx

http://www.microsoft.com/technet/community/chats/trans/sql/sql0513.mspx

http://www.sql-server-performance.com/dk_massive_scalability.asp

|||

It's pretty clear what geetu is trying to get at. Here is your answer geetu:


1. Instead of having the 2nd node idle until something happens to node1, you can split the databases between the 2 nodes.

2. While this is not the definition of classic Load Balancing, it does help balance the load between the two nodes while they are both up.

We have several customers who are configured like this and it works well.

The downside? The “size” of each of the 2 servers in terms of CPU, memory etc must be enough to handle all the databases that are normally served from the 2 nodes in case one node fails.

While this is the same requirement in the active/passive configuration, there is a danger that over time you will keeps adding load to both nodes independently and at time of failure, the failover node will die as well because of a sudden overwhelming load.

Sometimes when smarty MSFT employees respond, they should be more respectful to the person who is posting a question, instead of being arrogant.

sql

No comments:

Post a Comment