Link to home
Start Free TrialLog in
Avatar of esabet
esabetFlag for United States of America

asked on

Failsafe Passive-Active Cluster Configuration

We have a Windows Server 2003.  This server is used for the following purposes/roles: Web-Application, SQL Server, and Terminal Services.  As the company is growing we are becoming more and more dependent on the server and its dependability is becoming more and more important and crucial.  So I have been asked to look into a failsafe setup with Active-Passive configuration.  Therefore, in the event the Active server hardware goes down the passive server will take over till the Active server is repaired.

The current server is a custom built machine.

My question is where would I start and how plausible is this solution given the server role and our current hardware.
ASKER CERTIFIED SOLUTION
Avatar of Ted Bouskill
Ted Bouskill
Flag of Canada image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
PS The one week was on setup and testing.  The hardware had been setup previously.
Avatar of esabet

ASKER

I have looked at your article and it is very informative.  Though I had done some research on my own, I had not come across this particular article.

I guess one of my questions were if I can use my existing Hardware for the setup? Can I be certain that I cannot use my exiting setup?

My next question is if an Active/Passive cluster solution would work for the roles that I am intending to use the server for?

Also, assuming I need to buy new hardware, would it be possible for me to setup and install the cluster on my own?

tedbilly, can I ask you how much the hardware cost you and how much the tech charged you for the setup and testing phase.
Hi,

You're probably aware of this, but while you don't outright achieve redundancy, splitting those application roles across different hardware adds a measure of robustness.

It is realtively easy to have two web - servers in sync. That is, its a deployment of code thing, not a data thing like it is with SQL. Very similar for terminal services.

I realise that you asked about clustering, but doing the above then gives the option of using SQL 2005 mirroring, which doesn't require identical hardware, and has one of the faster fail-over times with a witness server.

HTH
  David
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of esabet

ASKER

dtodd;

I understand what you are suggesting and did advise the company of the same but lack of funds and budget does not really allow us to have so many different hardware.  As we speak I am trying to get a quote on a simple 2-node cluster systemfrom Dell and we are already talking about 12K!

So given that , is it plausable to have all three roles mentioned above on a Active/Passive clsuter configuration or are we asking for trouble?

jimpen;

I am not a certified Tech but have some understanding and always eger to learn.  So I owuld love to havethe oppertunity to set it up but then the questions will follow............
The problem with mirroring is a big one.  Any application that uses a SQL connection has to be reconfigured to point to the mirrored witness server when the principle fails.  With SQL clustering the fail-over has virtually no effect on clients.  They still use the same IP and server name.  It's completely invisible to them.

The downside is clustering is more expensive to setup initially.  Ours has been running over a year with no problems.

<I guess one of my questions were if I can use my existing Hardware for the setup?>  SQL has to be reinstalled so in order to reuse hardware you'd have to take them offline.  Both servers don't have to be indentical but it is safer.  They should have identical capabilities because if you failover and the second server is less powerful (less RAM et all) the systems will suffer performance problems.

<Can I be certain that I cannot use my exiting setup?> Yes if you are willing to take them offline.

<My next question is if an Active/Passive cluster solution would work for the roles that I am intending to use the server for?>  Not for web applications.  It's cheaper and easier to use NLB (Network Load Balancing) for web servers.  Terminal servers I'm not sure which would be better. NLB or cluster.

<Also, assuming I need to buy new hardware, would it be possible for me to setup and install the cluster on my own?>  It depends on your fortitude.  I know of one guy that read the following white paper and did it easily on his own: http://www.microsoft.com/downloads/details.aspx?familyid=96F76ED7-9634-4300-9159-89638F4B4EF7&displaylang=en

tedbilly, can I ask you how much the hardware cost you and how much the tech charged you for the setup and testing phase.

We purchased Dell 6950's but I don't know what the price was.  They have 4 Intel dual core processors with about 16GB of RAM.  As I guess I would say $15,000 per.  They might be overkill for your needs.  You need SAN array's as well with a cluster because you have to setup a shared drive.

The contractor was probably the standard $1,000 per day, so roughly $5,000.  Once again a guess.  I work for a very large company so I ask and they say yes or no.  They often don't tell me the price.
>> As we speak I am trying to get a quote on a simple 2-node
>> cluster system from Dell and we are already talking about 12K!

That comes with the expansion into the next level of business.

I came across a quote a few months ago that is very apt to the typical IT solution:
You have a choice:
Cheap, quick, good.
Pick any two.

The other thought is break out application onto multiple smaller servers  like the PowerEdge 1950 III -- and only cluster what you absolutely need the total uptime. You can also, with some upgrades, cluster things like the SC440's, but that is harder.
Avatar of esabet

ASKER

Ok I guess my case is getting complicated because we are trying to do three separate functions/roles in the same Box: (1) Application Server to Host a Web-Based Application; (2) SQL Server - SQL is used by the Web-Based Application and (3) Terminal Services - To host QuickBooks for accounting.

I would agree that if money was no object that each Role should be handled by a different server.  That on its own would add security.

But this is a small company and that kind of budget is not available.  So I have to do the best for what we can afford and, therefore, for the time being I must keep all three roles in the same Box!

I do understand why Terminal Services would work best with a Load Balancing setup since it is a memory resident event!  I also do understand that QuickBooks is not cluster aware like SQL is!

So considering the above, a friend of mine told me that he has heard of third party solutions that may be of value to me.  He told me to look into Double-Take, Neverfail and Availl Continous Data Protection.  According to him these solutions do not require identical equipments.

Have you guys heard of any of these solutions? Would you recommend them? What are the drawbacks/issues with these solutions that you are aware of?
Avatar of esabet

ASKER

I also have come across another solution: CA WANSyncHA.  Does anyone know about this one?
If the company can't afford additional hardware you should consider at least a disaster recovery plan.  Assuming you have backups you need to draw out a plan for how long it would take you to buy a replacement server, and set it up from scratch.

You can minimize the risk by using RAID 1 (Mirroring) or RAID 5 technology for your disks (which are the least reliable) and ensure you offsite backups.

Also, you could consider a hosting service.  Companies like GoDaddy.com would provide all your requirements and they provide the high availability and backups.
Avatar of esabet

ASKER

tedbilly;

We can afford additional hardware but not three or four!!  Additionaly from what I gather from you and other posts, clustering is not the right solution for the all three roles I mentioned earlier.

We already have a RAID 1 implemented (we actually have two RAID 1 - one for the OS Drive and the other for QuickBooks Drive).  We also have a NAS that I use on regular basis for full backups.  

Backup is not the issue, the issue is we would like to have High Avaiablility; we don't want to get the work flow interupted becasue we need to service the Sever.

WIth the software solutions I mentioned above it seems we will need only one addiotinal Server and we are good to go.

I have also looked into hosting plans but for our needs it sems to cost close to $250/mo or $3,000/yr. So in two year time the new hardware will well pay for itself.
Don't forget OS costs as well.

That being said, you can throw a Dell SC440 w/ mirrored drives and Linux/tomcat to act as a web server for about a $800. That leaves just supporting the term svcs and SQL.

Clustering can give you the uptime, but you have to pay for it.
Avatar of LizMurray1
LizMurray1

Wow.  What a conversation.  I would like to bring this back to my questions. . . . .

File Server ONLY attached to a SAN unit.  We just moved my people from old NetWare servers to W2K3 Standard.  I really don't want to move them again.  Boss came up with the idea to cluster AFTER we began the move process.

Purchased 2 new identical servers for the cluster.   Also have another identical server like the current File Server.

Can I upgrade to Enterprise on the current build, then create a second server build and cluster these two without starting all over or without moving my users to yet another server?

AND. . . hummm.   Would Load Balancing be a better solution?  I'm not sure how either of these work so I'm doing the reading recommended above.  Just need someone to point me in the right direction.

Thanks.
>> Can I upgrade to Enterprise on the current build, then create a second
>> server build and cluster these two without starting all over or without
>> moving my users to yet another server?

I don't see a good way.

>> Would Load Balancing be a better solution?
>> W2K3 Standard.

W2K3 standard will only support the Windows Compute Cluster Server 2003. This is network load balancing not failover. W2K3 Enterprise supports failover.
http://www.microsoft.com/windowsserver2003/ccs/faq.mspx

SQL2K5 Standard will support a 2 node failover cluster only. I think you have to get to Data Center to support multiple active SQL servers clusters.

Terminal Services should be happy in either environment. We use Citrix, not TS.

BTW, is your Active Directory on a separate server?
My DC is on a separate server.  This server is only a file server attached to a MSA1000 SAN.  The server contains the "local" file server security.  

I'm not well versed in AD yet so it's really on all the servers isn't it?  This will not have SQL.
jimpen: SQL 2005 Enterprise supports 8 node clusters.  You don't need the Data Center edition.

jimpen: Windows Compute Cluster Server 2003 is different than setting up a Microsoft Cluster Service (MSCS)
http://en.wikipedia.org/wiki/Microsoft_Cluster_Server

By the way, I didn't state you couldn't use a cluster for web applications or terminal server, it's simply easier to do both with NLB.  I think there is a couple of gotchas with terminal server with MSCS
Just the question because putting IIS, your AD controller, and SQL all on the same box can be a big security risk. Especially for zero-day exploits.
Avatar of esabet

ASKER

tedbilly;

I assume in a Network Load Balancing environment you have an Active/Active cluster setup, correct?  If so, then what happens when one of the nodes goes down?  Does the services basically all failover to the running node till the other node is repaired.  IF that is the case then it sounds better than having an Active/Passive setup.  So what is the draw back with an NLB?  Can SQL work in a NLB setup?
A reality check here -

I am no experienced with clustering at this stage, but know enough about it to pass a couple of comments through

the big thing here is yes, it is ideal to pull your server roles onto additional servers....thats ideal in any environment, but in some business environments, due to finances, space, experience etc...its simply not feasible. If you currently have a situation where your server hosts all appz and its ok and runs fine, then this same config will work in a clustered environment....you are probably looking at an active passive cluster purely for redundancy in your case, one fails, the other kicks in and away you go.....

I use Double Take in my Environment PURELY for offsite backup - we replicate data from sites to ours, and then back it up, its not for anything other than that, there are way better products (Netapp mostly) that will do proper replication of servers etc.....

If you really wanna make use of some cool technologies....i would look maybe more along the lines of a cheap SAN and some virtualisation tools - vmware may very well be a good answer for you, reduces hardware needs and having the SAN as a backend provides you with monster capabilities for backup and restore

Just a thought...
Avatar of esabet

ASKER

Yes, it was getting kind of confusing to try and figure out which reply is relative to my question and which one is not.  Thank you Jay - No hard feelings LizMurray1!!

B.T.W. Jay, do you have any insights on my question that could help me out.  Thanks!
see above :)
jimpen's comment about security is an excellent point.  I assumed this setup was an intranet but if it's exposed to the internet if a hacker breaks IIS they get access to the whole enchilda.  The database, everything.

<I assume in a Network Load Balancing environment you have an Active/Active cluster setup, correct?>
I use NLB for my web servers, the Active/Active cluster doesn't do load balancing.  In an Active/Passive cluster, one server is dominant and the other is a hot standby.  If the Active node goes down, all services immediately transfer to the passive node which becomes dominant.  However, it's not load balanced, one or the other server is doing the work.  BTW (Shared drives can be clustered, it's really cool because you don't have a single point of failure for a shared drive.

Anyway, back to SQL clustering.  With Active/Passive you have two instances of SQL:
    ServerA\InstanceA
    ServerB\InstanceA
However, clients use a virtual name like SqlServerA\InstanceA  The clustering service changes which server is actually playing the role of SqlServerA

With Active/Active it's more complex:
    ServerA\InstanceA
    ServerB\InstanceA
Virtual Name: SqlServerA\InstanceA

    ServerA\InstanceB
    ServerB\InstanceB
Virtual Name: SqlServerB\InstanceB

Using Active/Active is like having two SQL Servers for use but they can't load balance.  So with our Sharepoint farm I use one SQL server for reporting and indexing and the other for running the web applications.

<If so, then what happens when one of the nodes goes down?  Does the services basically all failover to the running node till the other node is repaired.> Yes.  It requires no human intervention.  Also, you can set a failback so that after a period services on the Passive will go back to the original passive server.  If you can trigger the transfer yourself to spread wear and tear on the two systems or upgrade one at a time.

<IF that is the case then it sounds better than having an Active/Passive setup.  So what is the draw back with an NLB?>  NLB can't be used for SQL, otherwise it's easy to use and manage.  I use it on our web servers. The key is that you have to enable a session service or SQL database for managing sessions, or set the affinity correctly.  The problem is that without Affinity turned on the user could hit WebServerA then a few seconds later hit WebServerB.  If the session is in memory then they will lose the connection.

<Can SQL work in a NLB setup?> No.  SQL cannot be load balanced.  Oracle has that feature over MS SQL.
Sorry.  Thought this was the one I posted.  
Avatar of esabet

ASKER

Thanks for the informative reply tedbilly.  Great Job.

So it seems I have many options.   At the most basic level though, and should we decide to keep all roles still in the same box, which of the folowing options would you recommend:

Option A) Active/Passive Cluster setup, or
Option B) Using a third party software based solution such as Double Take or similar!

One more question: Should we opt for the ACtive/Passive clustering, then, since QuickBooks is not cluster aware, what happens in case Quickbooks stops responding?  If i understand it correctly, if the hardware fails in Servers A then it does not matter if the software is cluster aware, correct?  Cluster awareness is a factorIt only when the failure is due to software only!
>> SQL 2005 Enterprise supports 8 node clusters.

Just to point out that is ## databases spread among the 8 nodes.  You can't have same <DatabaseName> active on 2 different nodes in the cluster.

Only NodeA has MyDBName active. NodeB-I can't have MyDBName active as well.

>> vmware may very well be a good answer for you

We looked at VM our SQL servers. The throughput of disks to SQL has some serious issues.
jimpen: Disk access on VMware is only a problem on the free version.  The VMware server version can go directly to a SAN but I didn't make that clear.  This company likely can't afford that so they could only use VMware for the terminal services and web applications.  I agree that otherwise SQL will suffer.

The SQL client does NOT have to be cluster aware.  To the client it has no idea which server is processing the request.  There is one caveat, when services from one server to another are being transferred any outstanding SQL transactions can be lost.  Any decent application can handle that scenario but a user might see a blip for a second that disappears.
>> The SQL client does NOT have to be cluster aware.

Agreed. I was just trying to point out that there really is no such thing as an A/A SQL Cluster, only A/P.
Glad to be of assistance. May all your days get brighter and brighter.
To Jimpen for clarification.

You wrote 'Just to point out that is ## databases spread among the 8 nodes.  You can't have same <DatabaseName> active on 2 different nodes in the cluster.'

This is not the case, you can have the same <DatabaseName> active on 2 different nodes in the cluster. Because the database belongs to a virtual cluster server. So assume we have northwind as database on both nodes, and they are named sqlclusterserver1 and sqlclusterserver2, tye klients accessing the northwind database distinguishes them by the servernames. If a node dies and failover is inititated, then the virtual server is also moved, i e one node hosts both sqlclusterserver1 and sqlclusterserver2.

Just my 2 cents, not meant to poke you on the nose or anything. Thought maybe you could benefit from knowing this in the future. Best regards Marten
>>  This is not the case, you ca

The application is always going to the virtual server sqlcluster and is not talking sqlclusterserver1 and sqlclusterserver2. The application should never be seeing the actual servers.

If the active server is sqlclusterserver2 and it fails, depending on how robust the app is, it will reconnect when sqlclusterserver1 becomes active. But that is because the app is talking to the virtual server sqlcluster.

The database cannot be active on both severs at the same time. Because if the app wants to change the customer 1234 last name to Smith and and someone else is trying to change it to Doe, who wins.

There are load balancing apps out ther, but the native clustering doesn't support this.
Well ...

My comment is perhaps not to clear. sclclusterserver1 is the instance running on a node. In a 8 node cluster its common to have 6 or 7 active nodes and 1 or 2 passive for failover. This means that (assuming 6 active and 2 passive) we have 6 virtual server instances (one instance per cluster, but you can have more I know). In my example these instances, on top of the active nodes are named sqlclusterserver1 through sqlclusterserver6. Maybe I should have named them virtualSQLServerInstance instead, this would have been easier to understand.

In this case one klient can connect to sqlclusterserver1 and DB Northwind, and an other can connect to sqlclusterserver2 and DB Northwind. In case of failover the klient still connects to sqlclusterserver1 and DB Northwind, but its hosted by node 7 or 8. This is transparent. Thus you can have multiple databases with the same name in a cluster, just not in the same sql instance.

Reading your comments I have no doubt you already know this, but for people stumbling onto this thread a clarification was nessesary in my opinion.

Best regards Marten