Sql – Setting up a Windows Server 2008 / SQL Server 2008 cluster

cluster-computingsql-serverwindows-server-2008

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?

Best Solution

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.