Specifying the Affinity and Load-Balancing Behavior of the Custom Port Rule

Applies To: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2

The second part of a port rule affects the affinity and load-balancing behavior of the port rule. The affinity and load-balancing behavior of a port rule are specified by the filter mode of the port rule. Only one filter mode can be selected for each port rule. Table 8.8 describes the filter modes that are available.

Table 8.8   Selecting the Filter Mode for the Port Rule

Filter Mode Description

Multiple Hosts

Permits all cluster hosts to actively respond to client requests. This is the most common filter mode, because it allows the affinity and load-balancing characteristics to be customized.

Single Host

Allows only one cluster host in the cluster to actively respond to client requests. Could be useful when providing backup servers. For example, in an FTP site where users upload files, single host mode allows one host to receive FTP uploads. If the host fails, the host with the next highest priority takes over for the failed host.

Disable

Prevents the cluster from responding to a specific type of client traffic.

Note

Specifying Multiple Hosts Filter Mode Settings

The Multiple Hosts filter mode provides load balancing across multiple cluster hosts. One of the complexities introduced by load balancing is persistent relationships (affinity) between clients and cluster hosts. For more information about affinity, see "Identifying Applications or Services That Require Custom Port Rules" earlier in this chapter.

Another complexity introduced by load balancing is compensation for differences in cluster host system resources on the cluster over time. Based on differences in available system resources or applications, specific cluster hosts might not be capable of managing the same number of client requests. For more information about compensating for differences in cluster host system resources, see "Identifying Applications or Services That Require Custom Port Rules" earlier in this chapter.

Specify the settings for the Multiple Hosts filter mode by completing the following steps:

  1. Preserve persistent application sessions by specifying the affinity between a client and a specific cluster host.

  2. Compensate for differences in system resources by specifying the load weight settings.

Selecting the affinity between a client and a specific cluster host

You can override the default behavior by selecting other port rule affinity options. Table 8.9 lists the port rule affinity options and the reasons for selecting them.

Table 8.9   Including Port Rule Affinity Options in Your Design

Option Reasons for Selecting This Option

None

  • You want to ensure even load balancing among cluster hosts.

  • Client traffic is stateless (for example, HTTP traffic).

Single

  • You want to ensure that requests from a specific client (IP address) are sent to the same cluster host.

  • Client state is maintained across TCP connections (for example, HTTPS traffic).

Class C

  • Client requests from a Class C IP address range (instead of a single IP address) are sent to the same cluster host.

  • Clients use multiple proxy servers to access the cluster, and they appear to have multiple IP addresses within the same Class C IP address range.

  • Client state is maintained across TCP connections (for example, HTTPS traffic).

Single affinity is the most common selection when applications require that information about the user state be maintained across TCP connections. Examples of these types of applications include applications that use SSL or applications that retain user information, such as e-commerce shopping cart applications.

Applications that use SSL with Single affinity are efficient because the SSL session IDs are reused. Negotiating a new SSL session ID requires five times the amount of overhead as reusing a SSL session ID. Although negotiating the SSL session ID is transparent to the client, the cumulative increase in overhead could degrade the performance of the cluster.

Applications that retain user information can resolve the affinity requirement by using Network Load Balancing affinity or by using a common session state database or server. Applications that have a common session state database or server are combined with cookie-based affinity to allow any cluster host to restore the appropriate session state. If an application has a common session state database or server, you can select a port rule affinity of None if SSL is not part of the solution.

If an application retains user information by requiring that client transactions are completed on the same cluster host, select a port rule affinity of Single. For a discussion of when an application requires persistent connections to specific cluster hosts, along with an explicit discussion regarding SSL, see "Identifying Applications or Services That Require Custom Port Rules" earlier in this chapter.

Class C is used when Internet clients connect through proxy servers with different IP addresses within the same Class C IP address range. Some Internet service providers, such as America Online (AOL) in the United States, have proxy servers with different Class C IP addresses. Using different Class C IP addresses on the proxy servers can break the affinity between the client and the cluster host. In situations like this, other methods might be required to preserve cluster host affinity. For example, Application Center 2000 supports cookie-based affinity, which solves the problem of proxy servers with different Class C IP addresses. Alternatively, the application can be redesigned to maintain application session state in a common database or session state server, such as that provided by IIS 6.0 and ASP.NET. When possible, allow the application to maintain session state in this manner because the application will be more robust and scalable.

Specifying the load weight settings for each cluster host

The default port rule that is created during the installation of Network Load Balancing uses equal load weights. To override the default behavior, you can specify a custom load weight to be handled by each cluster host, as shown in Table 8.10.

Table 8.10   Selecting the Method for Distributing Client Requests

Method Description

Equal

Evenly distributes client requests across all cluster hosts when the available system resources are the same.

Load weight

Distributes client requests based on the available system capacity because of differences in the:

  • Hardware configuration of each cluster host.

  • Applications and services running on each cluster host.

Specify the amount of client requests to be handled by each cluster host by completing one of the following steps:

  • Specify Equal to ensure that client requests are evenly distributed across all cluster hosts, unless the cluster hosts do not have the same available system capacity.

  • Otherwise, specify the load weight value for the cluster host.

    The load weight value can range from 0 (zero) to 100. You can prevent a cluster host from handling any client requests by specifying a load weight of 0.

    The percentage of client requests that are handled by each cluster host is computed by dividing the local load weight by the sum of all load weights across the cluster. Table 8.11 shows an example of the relationship between load weight and the percentage of client requests that are handled by each cluster host.

    Table 8.11   Using Load Weights and Client Request Percentages

    Cluster Host Load Weight Percentage of Client Requests

    ClusterHost-A

    50

    40%

    ClusterHost-B

    50

    40%

    ClusterHost-C

    25

    20%

Specifying Single Host Filter Mode Settings

As with the cluster host priority setting for Network Load Balancing, which is discussed in "Specifying the Cluster Host Parameters" earlier in this chapter, you must specify the handling priority value for each cluster host that has the port rule.

Specify the handling priority for Single Host filter mode by completing the following steps:

  1. Specify a value of 1 as the priority for the cluster host that will always handle the client traffic designated in the port rule criteria.

  2. Increase the value assigned to the previous cluster host by 1, assign that value to the next cluster host, and repeat the process until you have specified the handling priority for all cluster hosts.

Important

  • If you specify the same handling priority for two cluster hosts, the last cluster host that starts will fail to join the cluster. An error message describing the problem will be written to the Windows system event log. The existing cluster hosts will continue to operate as before if cluster convergence completed previously. Otherwise, convergence must complete before traffic is handled by the cluster.

Specifying Disable Filter Mode Settings

As previously mentioned, the Disabled filter mode means that the client traffic corresponding to the port rule is blocked. Unlike the other filter modes, after you select this mode, no additional settings or values are required.