views:

1584

answers:

5

As I mention in a related question about colocation vs renting web servers, I am considering setting up a web server cluster using four Mac Minis (Intel Core Duo) and Windows Server 2008. The website I'm developing is database-driven and uses ASP.Net MVC with Microsoft SQL Server 2008. I am completely inexperienced with setting up a web server, so I am only aware of but unfamiliar with technologies like Network Load Balancing and Failover Clustering.

Can somebody recommend an ideal way to configure these 4 servers together or enumerate my best options? For instance, should only one machine contain the SQL Server database, or should I create an SQL cluster on top of my Windows Server 2008 cluster. I would like to have a balance between reliability and performance, and I'm not sure what such a balance would look like concretely.

UPDATE: Thank you for all of the answers so far. When I wrote this question, I did not understand that "clustering" generally refers to failover clustering specifically, which I now understand provides high-availability but no performance benefit. Since one poster mentioned that a Mac Mini, with its single 5400 rpm hard drive, may have performance issues as an SQL server, I would like to know if there are any viable solutions for distributing the database load between multiple machines, with or without the added bonus of high-availability (I could rely solely on backups). I have been reading through the following articles about scaling SQL servers via distribution:

I am a bit confused about which, if any, of these distribution methods would be appropriate. If it's of relevance, assume the site which accesses the database has a similar read/write ratio as Stack Overflow. Can anyone advise?

Also, I've come to understand that servers usually come with two network adapters, which allows one adapter to be dedicated toward communication with any back-end servers. Mac Minis have only a single network adapter. How detrimental would this be to performance?

UPDATE After further research, it appears that Peer-to-Peer Replication (more info) is what I'm looking for. Am I mistaken? If not, is it practical to use given my hardware constraints?

+1  A: 

Hi,

split the machines. Use two as web server and two as SQL Server cluster. If you won't use a SQL Server cluster, you won't need a Windows Server 2008 cluster either. Clustering is a really heavy thing to master. So a general go this way is simply impossible. For the task of setting up, you will find tutorials and help - at MS and using google.

BTW: I wouldn't go this way with MAC minis. High availability and / or high performance should have adequate hardware.

Sascha
unless you have shared storage like a SAN or a disk array, clustering is useless
Nick Kavadias
Correct. That will be in any tutorial round. But: Thinking of clustering with machines not designed as servers is - generally spoken - not high availability - performance not measured. So, wether having a SAN or not is probably not the question here.
Sascha
+1  A: 

See this question concerning sql clustering: http://stackoverflow.com/questions/525637/what-are-the-scenarios-for-using-mirroring-log-shipping-replication-and-cluster

BC
Thanks for the helpful link.
JubJub
+3  A: 

You could probably get away with a basic Network Load-Balanced cluster for your web servers but you need more sophisticated hardware to run a SQL cluster, specifically the shared quorum drive. Your Mac Mini's aren't really suitable for this purpose. You could use SQL Server High Availability Database Mirroring instead.

I would recommend picking up copies of Pro SQL Server 2005 High Availability by Allan Hirt and Windows Server 2003 Clustering and Load Balancing by Robert J. Shimonski and do some research before embarking on this adventure. Although the titles refer to SQL Server 2005 and Windows 2003, the material is still very relevant to SQL Server 2008 and Windows Server 2008.

HTH
Kev

Kev
Thank you for the excellent suggestions and resources. I am going to read through the msdn article on database mirroring and take a look at at least one of those books.
JubJub
Cheers. :) Allan Hirt has a new book out soon for SQL 2008 http://www.apress.com/book/view/1430219661. It's still being written but I'd definitely recommend getting both the books I recommended.
Kev
+2  A: 

NLB for the webservers and mirroring for your database servers is really your only option.
You need some kind of shared storage to do clustering such as a SAN, NAS or a disk array.

If you have a database that is a decent size eg. > 2-3GB then running a db server off a mac mini which has a single 5400RPM sata drive will mean you'll run into performance problems.

If you decide to go down the clustering path, you'll need to invest in more hardware. Take a look at openfiler this may be a cheap option.

Nick Kavadias
A: 

If you are worried about the load on your database, and with keeping costs low, you would be much better off simply buying a higher-end machine to run SQL Server than you would be by trying to do something fancy against several cheap machines. The cost of a SQL Server license on each of them (not to mention the windows license) will far outweigh the additional hardware cost of a more powerful machine.

I would be using Biz Spark for the software, which I assume, though I am not sure, provides multiple licenses for the hosting software.
JubJub