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?