Web Hosting Talk







View Full Version : Load Balancing with NT Server


Chips&Beans
03-22-2001, 07:03 PM
I'd be very grateful if you expert guys could help me out with a little technical problem.

I have a website that is growing rapidly with ASP on the front, SQL Server on the back end running on IIS/NT.

I'd like to move this two a dual redundant/load balanced system where the site can run on 2 NT servers so that one can take the load if the other has a problem and both can share the traffic while both are running.

I presume that two copies of SQLServer will run, one on each serer with some sort of replicator to keep the data in the two databases in sync.

I understand that there is two approaches:

1. Some sort of clustering software

2. Using a hardware based load balancer.

Which is the best sort of solution?

Do I have two SQLServers, one on each server or put in on a third server? Or do I need 4 servers ?


Can anyone help a desparate man, I'd be very grateful!

Thanks

allan
03-23-2001, 12:13 AM
Let preface my answer by saying that I am a networking snob by nature.

While SQL is somewhat of a resource hog, generally in an overloaded server situation, your processor killer is going to be Cold Fusion (or whatever language is actually doing the DB calls). Generally, your best bet in a situation like this is to start with 3 servers. Two that will serve up content, and one that houses your database. Both servers will query the database server to retrieve information.

Ideally, it would be even better if you could throw the database server behind a firewall for added protection.

My recommendation would be to use a true Layer 4 Load Balancing Solution (Arrowpoint, Alteon, F5 and Foundry all make good boxes). Windows 2000 Data Center (http://www.microsoft.com/windows2000/guide/datacenter/overview/default.asp) does come with clustering and Load Balancing technologies built in, however it is not as robust as a seperate solution, and a Layer 4 Load Balancing switch can provide you with better filtering features, and a more robust health check.

Chips&Beans
03-23-2001, 05:58 AM
Thanks uuallan for your reply. I really do applaud networking snobs !

I am a little surprised by your answer in terms of using 3 servers - this would mean only 1 database server so if that went down, then everything goes down. Do you not recommend running SQLServer on both of the content serving machines with some sort of replication taking place, say, every 15 minutes?

I notice you say "to start with", would you suggest a more ideal setup later on ?

Currently, I run this particular busy site on one server both housing the site and database and performance is not bad. However, I find it annoying when I need to do maintenance and have to take a server down. Also, being Microsoft based/ASP, the server goes down for no identifiable reason so the idea of an alternative one taking the full load while the other recovers sounds like a good one to me.

The firewall idea is good except I was looking to put all of the servers behind the firewall but this show how little I am with it ! I would need lots of ports open since I do NTFS mounts, FTP, pcanywhere, email as well as webserving so opening so many ports on the firewall probably makes it redundant !

Take your point about using hardware based load balancing switches - i'd imagine there are lot more reliable than Microsoft software.

Thanks a lot for your help and keep up the snobbishness.

allan
03-23-2001, 07:21 AM
No problem, always happy to be a snob :).

Of course the ideal solution would be 4 servers, with Load Balancers in front of the two web servers and Load Balancers in front of the Database servers as well. However, many companies don't want to part wtih the cash it takes to setup 4 servers and 2 Load Balancing instances.

You want to try to avoid running SQL on the content servers at all, if possible. You shouldn't need it, and it is going to add an unnecessary load.

Your content replication should be constant, the two databases should have the same information all the time, 15 minutes is too long of a delay.

The reason I don't reccommend putting a firewall in front of the server is that it doesn't really do anything effective. Most exploits that punk loser kids use to "hack" into a server are done over common ports anyway. You are better off with strong ACLs on your routers and locking down the ports you do not need on the server.

With your database you obviously have a little more control, so you can do things like install dual NICs on all 4 servers, and setup access to the SQL databases on the secondary NICs using non-routable addresses, and use the secondary NICs on the SQL servers to replicate the databases. And again, you want to throw both SQL servers behind a firewall.

Let me know if you have any additional questions, I;ll be happy to help :).