Applies To:

Show Versions Show Versions

Manual Chapter: Pools
Manual Chapter
Table of Contents   |   << Previous Chapter   |   Next Chapter >>

In a typical client-server scenario, a client request goes to the destination IP address specified in the header of the request. For sites with a large amount of incoming traffic, the destination server can quickly become overloaded as it tries to service a large number of requests. To solve this problem, BIG-IP® Local Traffic ManagerTM distributes client requests to multiple servers instead of to the specified destination IP address only. You configure Local Traffic Manager to do this when you create a load balancing pool.
A load balancing pool is a logical set of devices, such as web servers, that you group together to receive and process traffic. Instead of sending client traffic to the destination IP address specified in the client request, Local Traffic Manager sends the request to any of the servers that are members of that pool. This helps to efficiently distribute the load on your server resources.
When you create a pool, you assign pool members to the pool. A pool member is a logical object that represents a physical node (server), on the network. You then associate the pool with a virtual server on the BIG-IP system. Once you have assigned a pool to a virtual server, Local Traffic Manager directs traffic coming into the virtual server to a member of that pool. An individual pool member can belong to one or multiple pools, depending on how you want to manage your network traffic.
The specific pool member to which Local Traffic Manager chooses to send the request is determined by the load balancing method that you have assigned to that pool. A load balancing method is an algorithm that Local Traffic Manager uses to select a pool member for processing a request. For example, the default load balancing method is Round Robin, which causes Local Traffic Manager to send each incoming request to the next available member of the pool, thereby distributing requests evenly across the servers in the pool.
To configure and manage pools, log in to the BIG-IP Configuration utility, and on the Main tab, expand Local Traffic, and click Pools.
You use the Configuration utility to create a load balancing pool, or to modify a pool and its members. When you create a pool, LTM® automatically assigns a group of default settings to that pool and its members. You can retain these default settings or modify them. Also, you can modify the settings at a later time, after you have created the pool.
Table 4.1 lists the settings that you can configure for a pool. Following this table is a more detailed description of each setting.
You can specify the user-supplied name of the pool. Specifying a name for a pool is required.
You can associate a health monitor with an entire pool, rather than with individual pool members only. This eases the task of configuring health monitoring for multiple web servers.
You can specify the number of monitors that must report a pool member as being available before that member is defined as being in an up state.
You can configure a pool so that SNATs are automatically enabled or disabled for any connections using that pool.
You can configure a pool so that NATs are automatically enabled or disabled for any connections using that pool.
If this setting is enabled and the target pool member goes down, the BIG-IP system tries to choose another pool member and rebind the client connection to a new server connection. Possible values are None, Reject, Drop, and Reselect.
This option causes the BIG-IP system to send a less-than-normal amount of traffic to a newly-enabled pool member for the specified amount of time, in seconds.
You can configure a pool to set a specific Type of Service (ToS) level within a packet sent to a client, based on the targeted pool.
You can configure a pool to set a specific Type of Service (ToS) level within a packet sent to a server, based on the targeted pool.
You can configure a pool to set a specific Quality of Service (QoS) level within a packet sent to a client, based on the targeted pool.
You can configure a pool to set a specific Quality of Service (QoS) level within a packet sent to a server, based on the targeted pool.
Specifies the number of times that the system tries to contact a new pool member after a passive failure.
This feature provides the ability to queue connection requests that exceed the capacity of connections for a pool, pool member, or node, as determined by the connection limit. Possible values are Yes and No.
When you enable request queueing, you can specify the maximum number of connection requests allowed in the queue. The default value of 0 equates to unlimited connection requests, constrained only by available memory.
When you enable request queueing, you can specify the maximum number of milliseconds that a connection request can be queued until capacity becomes available, whereupon the connection request is removed from the queue and reset. The default value of 0 equates to an unlimited time in the queue.
You can use the default load balancing method, or you can define another load balancing method, and you can configure priority-based member activation. Different pools can be configured with different load balancing methods.
For each pool that you create, you must specify the servers that are to be members of that pool. Pool members must be specified by their IP addresses. For each pool member, you can also assign a service port, a ratio weight, and a priority group.
Health monitors are a key feature of Local Traffic Manager. Health monitors help to ensure that a server is in an up state and able to receive traffic. When you want to associate a monitor with an entire pool of servers, you do not need to explicitly associate that monitor with each individual server. Instead, you can simply assign the monitor to the pool itself. Local Traffic Manager then automatically monitors each member of the pool.
Local Traffic Manager contains many different pre-configured monitors that you can associate with pools, depending on the type of traffic you want to monitor. You can also create your own custom monitors and associate them with pools. The only monitor types that are not available for associating with pools are monitors that are specifically designed to monitor nodes and not pools or pool members. That is, the destination address in the monitor specifies an IP address only, rather than an IP address and a service port. These monitor types are:
You can associate a health monitor with an entire pool instead of an individual server. In this case, Local Traffic Manager automatically associates that monitor with all pool members, including those that you add later. Similarly, when you remove a member from a pool, Local Traffic Manager no longer monitors that server.
When a server that is designated as a pool member allows multiple processes to exist on the same IP address and port, you can check the health or status of each process. To do this, you can add the server to multiple pools, and then within each pool, associate a monitor with the that server. The monitor you associate with each server checks the health of the process running on that server.
When associating a monitor with an entire pool, you can exclude an individual pool member from being associated with that monitor. In this case, you can associate a different monitor for that particular pool member, or you can exclude that pool member from health monitoring altogether. For example, you can associate pool members A, B, and D with the http monitor, while you associate pool member C with the https monitor.
You can associate multiple monitors with the same pool. For instance, you can associate both the http and https monitors with the same pool.
You can specify a minimum number of health monitors. Before Local Traffic Manager can report the pool member as being in an up state, this number of monitors, at a minimum, must report a pool member as being available to receive traffic.
When configuring a pool, you can specifically disable any secure network address translations (SNATs) or network address translations (NATs) for any connections that use that pool. By default, these settings are enabled. You can change this setting on an existing pool by displaying the Properties screen for that pool.
One case in which you might want to configure a pool to disable SNAT or NAT connections is when you want the pool to disable SNAT or NAT connections for a specific service. In this case, you could create a separate pool to handle all connections for that service, and then disable the SNAT or NAT for that pool.
You can specify the action that you want Local Traffic Manager to take when the service on a pool member becomes unavailable.
When the relevant virtual servers Protocol setting is set to UDP.
When you take a pool member offline, and then bring it back online, the pool member can become overloaded with connection requests, depending on the load balancing method for the pool. For example, if you use the Least Connections load balancing method, the system sends all new connections to the newly-enabled pool member (because technically, that member has the least amount of connections).
With the slow ramp time feature, you can specify the number of seconds that the system waits before sending traffic to the newly-enabled pool member. The amount of traffic is based on the ratio of how long the pool member has been available compared to the slow ramp time, in seconds. Once the pool member has been online for a time greater than the slow ramp time, the pool member receives a full proportion of the incoming traffic.
Another pool feature is the Type of Service (ToS) level. The ToS level is one means by which network equipment can identify and treat traffic differently based on an identifier.
As traffic enters the site, Local Traffic Manager can set the ToS level on a packet. Using the IP ToS to Server ToS level that you define for the pool to which the packet is sent. Local Traffic Manager can apply an iRule and send the traffic to different pools of servers based on that ToS level.
Local Traffic Manager can also tag outbound traffic (that is, the return packets based on an HTTP GET) based on the IP ToS to Client ToS value set in the pool. That value is then inspected by upstream devices and given appropriate priority.
For example, to configure a pool so that a ToS level is set for a packet sent to that pool, you can set both the IP ToS to Client level and the IP ToS to Server levels to 16. In this case, the ToS level is set to 16 when sending packets to the client and when sending packets to the server.
Note: If you change the ToS level on a pool for a client or a server, existing connections continue to use the previous setting.
Another setting for a pool is the Quality of Service (QoS) level. In addition to the ToS level, the QoS level is a means by which network equipment can identify and treat traffic differently based on an identifier. Essentially, the QoS level specified in a packet enforces a throughput policy for that packet.
As traffic enters the site, Local Traffic Manager can set the QoS level on a packet. Using the Link QoS to Server QoS level that you define for the pool to which the packet is sent, Local Traffic Manager can apply an iRule that sends the traffic to different pools of servers based on that QoS level.
Local Traffic Manager can also tag outbound traffic (that is, the return packets based on an HTTP GET) based on the Link QoS to Client QoS value set in the pool. That value is then inspected by upstream devices and given appropriate priority.
For example, to configure a pool so that a QoS level is set for a packet sent to that pool, you can set the Link QoS to Client level to 3 and the Link QoS to Server level to 4. In this case, the QoS level is set to 3 when sending packets to the client, and set to 4 when sending packets to the server.
You can specify the number of times that the system tries to contact a new pool member after a passive failure. A passive failure consists of a server-connect failure or a failure to receive a data response within a user-specified interval. The default value of 0 indicates no reselects.
TCP request queueing provides the ability to queue connection requests that exceed the capacity of connections for a pool, pool member, or node, as determined by the connection limit. Consequently, instead of dropping connection requests that exceed the capacity of a pool, pool member, or node, TCP request queueing enables those connection requests to reside within a queue in accordance with defined conditions until capacity becomes available.
Without session persistence, when all pool members have a specified connection limit, a request becomes queued when the total number of connection limits for all pool members is reached.
The maximum number of connection requests within the queue, which equates to the maximum number of connections within the pool, pool member, or node. Specifically, the maximum number of connection requests within the queue cannot exceed the cumulative total number of connections for each pool member or node. Any connection requests that exceed the capacity of the request queue are dropped.
The availability of server connections for reuse. When a server connection becomes available for reuse, the next available connection request in the queue becomes dequeued, thus allowing additional connection requests to be queued.
The expiration rate of connection requests within the queue. As queue entries expire, they are removed from the queue, thus allowing additional connection requests to be queued.
Load balancing is an integral part of the BIG-IP system. Configuring load balancing on a BIG-IP system means determining your load balancing scenario, that is, which pool member should receive a connection hosted by a particular virtual server. Once you have decided on a load balancing scenario, you can specify the appropriate load balancing method for that scenario.
A load balancing method is an algorithm or formula that the BIG-IP system uses to determine the server to which traffic will be sent. Individual load balancing methods take into account one or more dynamic factors, such as current connection count. Because each application of the BIG-IP system is unique, and server performance depends on a number of different factors, we recommend that you experiment with different load balancing methods, and select the one that offers the best performance in your particular environment.
The default load balancing method for the BIG-IP system is Round Robin, which simply passes each new connection request to the next server in line. All other load balancing methods take server capacity and/or status into consideration.
If the equipment that you are load balancing is roughly equal in processing speed and memory, Round Robin mode works well in most configurations. If you want to use the Round Robin method, you can skip the remainder of this section, and begin configuring other pool settings that you want to add to the basic pool configuration.
Several different load balancing methods are available for you to choose from. If you are working with servers that differ significantly in processing speed and memory, you might want to use a method such as Ratio or Weighted Least Connections.
Important: Load balancing calculations can be localized to each pool (member-based calculation) or they may apply to all pools of which a server is a member (node-based calculation).
This is the default load balancing method. Round Robin mode passes each new connection request to the next server in line, eventually distributing connections evenly across the array of machines being load balanced.
Round Robin mode works well in most configurations, especially if the equipment that you are load balancing is roughly equal in processing speed and memory.
Ratio (member)
Ratio (node)
Local Traffic Manager distributes connections among pool members or nodes in a static rotation according to ratio weights that you define. In this case, the number of connections that each system receives over time is proportionate to the ratio weight you defined for each pool member or node. You set a ratio weight when you create each pool member or node.
These are static load balancing methods, basing distribution on user-specified ratio weights that are proportional to the capacity of the servers.
Dynamic Ratio (member) Dynamic Ratio (node)
The Dynamic Ratio methods select a server based on various aspects of real-time server performance analysis. These methods are similar to the Ratio methods, except that with Dynamic Ratio methods, the ratio weights are system-generated, and the values of the ratio weights are not static. These methods are based on continuous monitoring of the servers, and the ratio weights are therefore continually changing.
Note: To implement Dynamic Ratio load balancing, you must first install and configure the necessary server software for these systems, and then install the appropriate performance monitor.
The Dynamic Ratio methods are used specifically for load balancing traffic to RealNetworks® RealSystem® Server platforms, Windows® platforms equipped with Windows Management Instrumentation (WMI), or any server equipped with an SNMP agent such as the UC Davis SNMP agent or Windows 2000 Server SNMP agent.
Fastest (node)
Fastest (application)
The Fastest methods select a server based on the least number of current sessions. These methods require that you assign both a Layer 7 and a TCP type of profile to the virtual server.
Note: If the OneConnectTM feature is enabled, the Least Connections methods do not include idle connections in the calculations when selecting a pool member or node. The Least Connections methods use only active connections in their calculations.
The Fastest methods are useful in environments where nodes are distributed across separate logical networks.
Least Connections (member)
Least Connections (node)
The Least Connections methods are relatively simple in that Local Traffic Manager passes a new connection to the pool member or node that has the least number of active connections.
Note: If the OneConnect feature is enabled, the Least Connections methods do not include idle connections in the calculations when selecting a pool member or node. The Least Connections methods use only active connections in their calculations.
The Least Connections methods function best in environments where the servers have similar capabilities. Otherwise, some amount of latency can occur.
For example, consider the case where a pool has two servers of differing capacities, A and B. Server A has 95 active connections with a connection limit of 100, while server B has 96 active connections with a much larger connection limit of 500. In this case, the Least Connections method selects server A, the server with the lowest number of active connections, even though the server is close to reaching capacity.
If you have servers with varying capacities, consider using the Weighted Least Connections methods instead.
Weighted Least Connections (member)

Weighted Least Connections (node)
Like the Least Connections methods, these load balancing methods select pool members or nodes based on the number of active connections. However, the Weighted Least Connections methods also base their selections on server capacity.
The Weighted Least Connections (member) method specifies that the system uses the value you specify in Connection Limit to establish a proportional algorithm for each pool member. The system bases the load balancing decision on that proportion and the number of current connections to that pool member. For example, member_a has 20 connections and its connection limit is 100, so it is at 20% of capacity. Similarly, member_b has 20 connections and its connection limit is 200, so it is at 10% of capacity. In this case, the system select selects member_b. This algorithm requires all pool members to have a non-zero connection limit specified.
The Weighted Least Connections (node) method specifies that the system uses the value you specify in the node's Connection Limit setting and the number of current connections to a node to establish a proportional algorithm. This algorithm requires all nodes used by pool members to have a non-zero connection limit specified.
If all servers have equal capacity, these load balancing methods behave in the same way as the Least Connections methods.
Note: If the OneConnect feature is enabled, the Weighted Least Connections methods do not include idle connections in the calculations when selecting a pool member or node. The Weighted Least Connections methods use only active connections in their calculations.
Weighted Least Connections methods work best in environments where the servers have differing capacities.
For example, if two servers have the same number of active connections but one server has more capacity than the other, Local Traffic Manager calculates the percentage of capacity being used on each server and uses that percentage in its calculations.
Observed (member)
Observed (node)
With the Observed methods, nodes are ranked based on the number of connections. The Observed methods track the number of Layer 4 connections to each node over time and create a ratio for load balancing.
The need for the Observed methods is rare, and they are not recommended for large pools.
Predictive (member)
Predictive (node)
The Predictive methods use the ranking methods used by the Observed methods, where servers are rated according to the number of current connections. However, with the Predictive methods, Local Traffic Manager analyzes the trend of the ranking over time, determining whether a nodes performance is currently improving or declining. The servers with performance rankings that are currently improving, rather than declining, receive a higher proportion of the connections.
The need for the Predictive methods is rare, and they are not recommend for large pools.
The Least Sessions method selects the server that currently has the least number of entries in the persistence table. Use of this load balancing method requires that the virtual server reference a type of profile that tracks persistence connections, such as the Source Address Affinity or Universal profile type.
Note: The Least Sessions methods are incompatible with cookie persistence.
The Least Sessions method works best in environments where the servers or other equipment that you are load balancing have similar capabilities.
With the Priority Group Activation feature, you can specify the minimum number of members that must remain available in each priority group in order for traffic to remain confined to that group. This feature is used in tandem with the Priority Group feature for individual pool members.
If the number of available members assigned to the highest priority group drops below the number that you specify, Local Traffic Manager distributes traffic to the next highest priority group, and so on. The configuration shown in Figure 4.1 has three priority groups, 3, 2, and 1, with the Priority Group Activation value (shown as min active members) set to 2.
pool my_pool {
lb_mode fastest
min active members 2
member 10.12.10.7:80 priority 3
member 10.12.10.8:80 priority 3
member 10.12.10.9:80 priority 3
member 10.12.10.4:80 priority 2
member 10.12.10.5:80 priority 2
member 10.12.10.6:80 priority 2
member 10.12.10.1:80 priority 1
member 10.12.10.2:80 priority 1
member 10.12.10.3:80 priority 1
}
Connections are first distributed to all pool members with priority 3 (the highest priority group). If fewer than two priority 3 members are available, traffic is directed to the priority 2 members as well. If both the priority 3 group and the priority 2 group have fewer than two members available, traffic is directed to the priority 1 group. Local Traffic Manager continuously monitors the priority groups, and each time a higher priority group once again has the minimum number of available members, Local Traffic Manager limits traffic to that group.
A pool member consists of a servers IP address and service port number. An example of a pool member is 10.10.10.1:80. Pool members have a number of features that you can configure when you create the pool.
Table 4.3 shows the settings that you can configure for an existing pool member. Following this table is a more detailed description of each setting.
Specifies the maximum number of concurrent connections allowed for a pool member.
Specifies whether you want the pool member to inherit the monitor associated with the pool or to use a different monitor.
Specifies the monitor or monitors that you want to associate with that pool member. This setting is used only when you set the Health Monitors setting to Member Specific.
Specifies a minimum number of health monitors. Before the BIG-IP system can report the pool member as being in an up state, this number of monitors, at a minimum, must report a pool member as being available to receive traffic.
When using a ratio-based load balancing method for distributing traffic to servers within a pool, you can assign a ratio weight to the corresponding pool members. The ratio weight determines the amount of traffic that the server receives.
The ratio-based load balancing methods are: Ratio (node, member, and sessions), Dynamic Ratio (node and member), and Ratio Least Connections (node and member).
The Priority Group feature assigns a priority number to the pool member. Within the pool, traffic is then load balanced according to the priority number assigned to the pool member. For example, pool members assigned to group 3, instead of pool members in group 2 or group 1, normally receive all traffic. Thus, members that are assigned a high priority receive all traffic until the load reaches a certain level or some number of members in the group become unavailable. If either of these events occurs, some of the traffic goes to members assigned to the next higher priority group.
This setting is used in tandem with the pool feature known as Priority Group Activation. You use the Priority Group Activation feature to configure the minimum number of members that must be available before Local Traffic Manager begins directing traffic to members in a lower priority group.
You can specify the maximum number of concurrent connections allowed for a pool member. Note that the default value of 0 (zero) means that there is no limit to the number of concurrent connections that the pool member can receive.
The maximum rate of new connections allowed for the pool member. When you specify a connection rate limit, the system controls the number of allowed new connections per second, thus providing a manageable increase in connections without compromising availability. The default value of 0 specifies that there is no limit on the number of connections allowed per second.
The optimal value to specify for a pool member is between 300 and 5000 connections. The maximum valued allowed is 100000.
Once you have associated a monitor with a pool, Local Traffic Manager automatically associates that monitor with every pool member, including those members that you add to the pool later.
However, in some cases you might want the monitor for a specific pool member to be different from that assigned to the pool. In this case, you must specify that you want to explicitly associate a specific monitor with the individual pool member.
Local Traffic Manager contains many different monitors that you can associate with a pool member, depending on the type of traffic you want to monitor. You can also create your own custom monitors and associate them with pool members. The only monitor types that are not available for associating with pool members are monitors that are specifically designed to monitor nodes and not pools or pool members. These monitor types are:
Associate more than one monitor with a member of a single pool.
For example, you can create monitors http1, http2, and http3, where each monitor is configured differently, and associate all three monitors with the same pool member. In this case, the pool member is marked as down if any of the checks are unsuccessful.
Assign one IP address and service to be a member of multiple pools.
Then, within each pool, you can associate a different monitor with that pool member. For example, suppose you assign the server 10.10.10:80 to three separate pools: my_pool1, my_pool2, and my_pool3. You can then associate all three custom HTTP monitors to that same server (one monitor per pool). The result is that Local Traffic Manager uses the http1 monitor to check the health of server 10.10.10.:80 in pool my_pool1, the http2 monitor to check the health of server 10.10.10.:80 in pool my_pool2, and the http3 monitor to check the health of server 10.10.10:80 in pool my_pool3.
You can make multiple-monitor associations either at the time you add the pool member to each pool, or by later modifying a pool members properties.
You can specify a minimum number of health monitors. Before Local Traffic Manager can report the pool member as being in an up state, this number of monitors, at a minimum, must report a pool member as being available to receive traffic.
You can enable or disable individual pool members. When you enable or disable a pool member, you indirectly set the value of the pool members State property, in the following way:
Enable
Sets the State property of the pool member to Enabled.
Disable
Sets the State property of the pool member to Disabled.
Note that the difference between a disabled pool member and a pool member that a monitor reports as down is that a disabled pool member continues to process persistent and active connections. Conversely, a pool member reported as down processes no connections whatsoever.
The status icons on the pool-member list screen and properties screen indicate whether a pool member is currently enabled or disabled.
An important part of managing pools and pool members is viewing and understanding the status of a pool or pool member at any given time. The Configuration utility indicates status by displaying one of several icons, distinguished by shape and color, for each pool or pool member:
The shape of the icon indicates the status that the monitor has reported for that pool or pool member. For example, a circle-shaped icon indicates that the monitor has reported the pool member as being up, whereas a diamond-shaped icon indicates that the monitor has reported the pool member as being down.
The color of the icon indicates the actual status of the node itself. For example, a green shape indicates that the node is up, whereas a red shape indicates that the node is down. A black shape indicates that user-intervention is required.
At any time, you can determine the status of a pool. The status of a pool is based solely on the status of its members. Using the Configuration utility, you can find this information by viewing the Availability property of the pool. You can also find this information by displaying the list of pools and checking the Status column.
The Configuration utility indicates pool status by displaying one of several icons, distinguished by shape and color. To understand these icons, see Table 4.4.
Status indicator
No pool members are currently available but any one of them could become available later, with no user action required. An example of an unavailable pool member becoming available automatically is when the number of concurrent connections to the pool member no longer exceeds the value defined in the pool members Connection Limit setting.
All pool members are unavailable and therefore cannot accept traffic. A reason for a pool member being unavailable is that an associated EAV monitor has detected that the pool member is unavailable. When pool status is red, user action is usually required.
The status of at least one pool member is unknown, and no other pool members are available. Sample reasons for unknown pool-member status are:
The Configuration utility indicates pool member status by displaying one of several icons, distinguished by shape and color. To understand these icons, see Table 4.5.
Tip: You can manually set the availability of a pool member by configuring the Manual Resume attribute of the associated health monitor.
Status indicator
The pool member is set to Enabled, the parent node is up, and a monitor has marked the pool member as up.
The pool member is unavailable, but could become available later with no user interaction required. This status occurs when the number of concurrent connections has exceeded the limit defined in the pool members Connection Limit setting.
The pool member is unavailable because either the parent node is down, a monitor has marked the pool member as down, or a user has disabled the pool member.
The pool member is set to Disabled, although a monitor has marked the pool member as up. To resume normal operation, you must manually enable the pool member.
Disabled (Only persistent or active connections allowed)
The pool member is set to Disabled and is offline because the parent node is down. To resume normal operation, you must manually enable the pool member.
Forced Offline (Only active connections allowed)
The pool member is set to Disabled and is offline because a user disabled it. To resume normal operation, you must manually enable the pool member.
Disabled (Only persistent or active connections allowed)
The pool member is set to Disabled and is offline because either the parent node is down, or a monitor has marked the pool member as down. To resume normal operation, you must manually enable the pool member.
Forced Offline (Only active connections allowed)
Note: Black status icons indicate that the Manual Resume attribute is enabled on the associated monitor.
Table of Contents   |   << Previous Chapter   |   Next Chapter >>

Was this resource helpful in solving your issue?




NOTE: Please do not provide personal information.



Incorrect answer. Please try again: Please enter the words to the right: Please enter the numbers you hear:

Additional Comments (optional)