Load Balancing in SharePoint Server 2010
Brief on how load balancing is performed for SharePoint 2010. Got an oppurtunity to create a medium size SharePoint Farm environment with network load balancing (NLB) configuration. The Farm environment had below listed servers
- Application servers x 2
- Web Front Ends (WFE’s) x 2 /w NLB
- Clustered SQL Server 2008 R2 x 2
Requirement was to have two levels of load balancing at Application Servers and WFE’s respectively.
Load balancing at Application Servers was done by sharing the execution of SharePoint services between the 2 application servers in the Farm.
Load balancing at WFE’s was done by configuring Network Load Balancing. ( NLB is giving a common IP address for one or more servers. The common IP address will act as alias for the actual server; also capable of performing failover. Failover means, if one server fails – it will automatically route request to the other available server.)
The following scenarios will give a good understanding of how NLB can be configured.
Scenario 1: Failover routing – When Server 1 is down then request should automatically route to Server 2 and vice versa (50% load on each node)
NLB Configuration: Configure NLB as Multi Cast with Afinity as “None”.
Test case 1: Stop IIS in Server 1, and then refresh the URL. The URL should automatically routed to Server 2
Test case 2: Stopped IIS in Server 2, and then refresh the URL. The URL should automatically routed to Server 1
Scenario 2: Routing based on priority– Server 1 (priority 1), Server 2 (Priority 2). In this scenario, the first request will always be sent to Server 1 as it is of priority 1. From then on; its a split between Server 1 and Server 2 according to load.
NLB Configuration: Configure NLB as Multi Cast with Afinity as “Single”.
Test case 1: Stop IIS in Server 1, and then refresh the URL. All nodes linked to Server 1 fails, and nodes linked to Server 2 responds to the URL.
Test case 2: Stop IIS in Server 2, and then refresh the URL. All nodes linked to Server 2 fails, and nodes linked to Server 1 responds to the URL.
Note: In scenario 2, if Priority 1 machine is down then both the servers will not respond.