Achieve High Availability and Scalability Using ARR and NLB

Updated: November 5, 2009

Applies To: Windows 7, Windows Server 2008, Windows Server 2008 R2, Windows Vista

This topic describes how to use Application Request Routing (ARR) and network load balancing (NLB) to achieve high availability and scalability. ARR is a proxy-based routing module that forwards HTTP requests to content servers based on HTTP headers, server variables, and load balance algorithms. You can deploy ARR in active/passive mode to achieve only high availability, or you can deploy ARR in active/active mode to achieve both high availability and scalability. NLB is a service that enhances the availability and scalability of application servers by combining the resources of two or more servers and distributing incoming client requests across the servers in a server farm. Combining ARR and NLB lets you deploy core ARR scenarios in your environment while achieving overall high availability and scalability.

ARR makes routing decisions by using the URL Rewrite module to inspect incoming HTTP request headers and server variables. Because routing decisions are made at the application level (layer 7), you can write routing rules based on application-level information. For example:

  • Host name (HTTP_HOST) — Use the host name to determine how to route traffic to different content servers.

  • Requested resource (URL) — Use file name extensions to determine if requests are for static content or dynamic content, and then properly route the requests.

  • Client information (HTTP_USER_AGENT) — Use the browser type and version to route requests to the appropriate content servers.

  • Custom headers (Set as a cookie by applications) — Use cookie information, such as user preference or user ID, to route traffic.

NLB makes routing decisions on the data level (layer 3); therefore, application-specific information, such as HTTP headers and server variables, cannot be used to provide application level based routing. Instead, you can use ARR and NLB in an HTTP-based routing and load balancing scenario. To configure HTTP-based routing and load balancing, you will need a 3-tier deployment architecture that includes the following:

  • Tier 1 (Web) — Processes static content; routes and load balances the remaining dynamic requests to tier 2 servers.

  • Tier 2 (Application) — Processes dynamic content that relies on business logic.

  • Tier 3 (Data) — Stores data.

ARR is installed on the tier 1 server. When there is an incoming request, ARR checks the routing rules and forwards the request to the tier 2 servers. The tier 2 servers retrieve data from the tier 3 servers, and then send a response back to the client that sent the original request.

In active/passive mode, there are typically two ARR servers that process requests and that act as a failover server. This configuration can achieve high availability, but is still limited by the maximum capacity of one ARR server.

You must have resources in the following configuration before proceeding:

Configuring NLB requires the following steps:

  1. Install the NLB feature on all ARR servers.

  2. Create an NLB cluster for ARR.

  3. Configure NLB for active/passive deployment.

  1. Open Server Manager.

  2. In the left pane, click Features.

  3. In the Features pane, click Add Features.

  4. In the Add Features wizard, on the Select Features page, select Network Load Balancing. Click Next.

  5. On the Confirm Installation Selections page, click Install.

  6. On the Installation Results page, verify that Network Load Balancing installed successfully, and then click Close.

  7. Repeat these steps on all ARR servers.

  1. Go to Start > All Programs > Administrative Tools > Network Load Balancing Manager.

  2. In the Network Load Balancing Manager window, in the left pane, right-click Network Load Balancing Clusters, and then select New Cluster.

  3. In the New Cluster dialog box, on the Connect page, enter the server address of an ARR server in the Host box. You can also enter the server address where you want to create the NLB cluster. Click Next.

  4. On the Host Parameters page, select 1 from the Priority (unique host identifier) list. In active/passive mode, priority determines the order in which failover takes place. By default, the server with priority 1 set is the active node. Click Next.

  5. On the Cluster IP Addresses page, click Add.

  6. In the Add IP Address dialog box, enter a virtual IP address that the clients will communicate with. Click OK.

  7. On the Cluster IP Addresses page, click Next.

  8. On the Cluster Parameters page, accept the default values, and then click Next.

  9. On the Port Rules page, click Finish.

  10. To add additional members to your NLB cluster, right-click the newly created cluster in the Network Load Balancing Manager, and then select Add Host to Cluster. Follow steps 3–9 above, entering the server addresses of the members that you want to add, and setting appropriate and unique priority assignments for each member.

  1. Open Network Load Balancing Manager.

  2. In the left pane, right-click the newly created cluster, and then select Cluster Properties.

  3. In the Properties dialog box, on the Port Rules tab, click Edit.

  4. In the Add/Edit Port Rule dialog box, select Single host, and then click OK.

In active/active mode, two or more ARR servers are used to achieve both high availability and scalability. The ARR servers use a shared configuration for active/active mode similar to active/passive mode. To use all ARR servers simultaneously, you must configure the NLB cluster port rule using multiple host mode.

You must have resources in the following configuration before proceeding:

Configuring NLB requires the following steps:

  1. Install the NLB feature on all ARR servers.

  2. Create an NLB cluster for ARR.

  3. Configure NLB for active/active deployment.

  1. Open Server Manager.

  2. In the left pane, click Features.

  3. In the Features pane, click Add Features.

  4. In the Add Features wizard, on the Select Features page, select Network Load Balancing. Click Next.

  5. On the Confirm Installation Selections page, click Install.

  6. On the Installation Results page, verify that Network Load Balancing installed successfully, and then click Close.

  7. Repeat these steps on all ARR servers.

  1. Go to Start > All Programs > Administrative Tools > Network Load Balancing Manager.

  2. In the Network Load Balancing Manager window, in the left pane, right-click Network Load Balancing Clusters, and then select New Cluster.

  3. In the New Cluster dialog box, on the Connect page, enter the server address of an ARR server in the Host box. You can also enter the server address where you want to create the NLB cluster. Click Next.

  4. On the Host Parameters page, select 1 from the Priority (unique host identifier) list. In active/passive mode, priority determines the order in which failover takes place. By default, the server with priority 1 set is the active node. Click Next.

  5. On the Cluster IP Addresses page, click Add.

  6. In the Add IP Address dialog box, enter a virtual IP address with which the clients will communicate. Click OK.

  7. On the Cluster IP Addresses page, click Next.

  8. On the Cluster Parameters page, accept the default values, and then click Next.

  9. On the Port Rules page, click Finish.

  10. To add additional members to your NLB cluster, right-click the newly created cluster in the Network Load Balancing Manager, and then select Add Host to Cluster. Follow steps 3–9 above, entering the server addresses of the members that you want to add, and setting appropriate and unique priority assignments for each member.

  1. Open Network Load Balancing Manager.

  2. In the left pane, right-click the newly created cluster, and then select Cluster Properties.

  3. In the Properties dialog box, on the Port Rules tab, click Edit.

  4. In the Add/Edit Port Rule dialog box, do the following:

    • For the filtering mode, select Multiple host.

    • For the affinity setting, select None.

  5. Click OK.

See Also

Community Additions

ADD
Show: