Iis – the best way to create a failover cluster for the IIS website

clusterfailoveriis

Our eCommerce website currently runs on two servers:

  • SQL server: 2005 x 86 on Windows Server 2003 Standard x86 with a single dual core processor and 4 gb of memeory
  • IIS server: Windows Server 2008 Web edition x64 with dual quad core hyper threaded processors and 32 gb of memory

Our revenue has steadily grown to the point where we need to have redundant servers deployed with a fail over mechanism so that we do not have any down time.

Because the SQL server is so underpowered compared to the web server my thought was to purchase:

  • 2 x SQL Server 2008 R2 web edition x64 single processor license
  • 2 x Windows Server 2008 R2 Web Edition Licenses
  • 1 x New Physical dual quad core 32 GB server
  • 1 x F5 Load Balancer

I need the Windows Server 2008 R2 Web Edition licenses so that I can run SQL and IIS on the same box for both of these servers.

The thought is to run this as an active/passive fail over cluster that could be upgraded to an active/active cluster if we purchased the additional SQL licensing. The F5 load balancer would serve as the device that monitors the two servers and if the current active one stops responding then fails over to using the other server. To be clear this is not windows clustering but simply using a load balancer to fail over between two computers so that you now have a cluster in the general sense.

Is this really the best way to accomplish what I need? Is there some way to leverage the old server 2003 SQL server to function as the devices that funnels http requests to the appropriate active server and then fails over if a problem occurs? Is there any third party clustering software that might help me accomplish this in a simpler fashion?

Best Answer

There is a big difference between a failover cluster and a network load balanced cluster. For IIS, you want to implement an NLB cluster. Both will be active all the time. For SQL you'll want to implement a failover cluster. Achieving the levels of availability that you are hinting at is not as simple as throwing in a little hardware and installing the operating systems.

A failover cluster will need some sort of shared storage like direct attached SAS or a SAN (I prefer iSCSI). All of this can be accomplished in a virtual environment by clustering 2 servers running 2008R2 (enterprise or higher) with Hyper-V (at least 4 nics. 2 for SAN, 1 for NLB and one for other comm). These would be attached to the SAN switches which in turn connect to the SAN. Then both would be connected to the front end switches (NLB and other). Then you can create the NLB cluster as virtual machines and the SQL failover cluster as virtual machines.

Now to add some more infrastructure. You'll need domain controllers (2 physical boxes) and a backup server. All told you'll be looking in the range of $150K and up along with someone who really knows what they're doing. Achieving high availability isn't cheap.

Oh, and don't forget about redundant power and cooling. Have a disaster recovery (DR) and business continuity (BC) plan.

Just thought about an alternative. Have your site hosted with a 99.99% service level agreement (SLA). Make sure it's local and take a tour of the data center. Might be cheaper in the long run considering the human cost.

Related Topic