External load balancers

For workloads consisting of server applications, external load balancers are required to distribute workload requests. External load balancers use Server/Application State Protocol (SASP) to obtain recommendations and topology information related to server applications and systems in a clustered environment.

Rule: First-tier load balancers must be external load balancers that are SASP-enabled.

A second-tier load balancer can be an external load balancer that is SASP-enabled, an intermediary node, or a z/OS® sysplex distributor on a z/OS system in the site.

External load balancers can obtain detailed information regarding the state of target z/OS applications and systems by communicating with the Lifeline Advisor using the SASP protocol. External load balancers use SASP to do the following things:
  • Obtain detailed recommendations about how to distribute workload requests between the two sites, based on the current configuration and workload conditions.
  • Obtain detailed recommendations about how to distribute workload requests in the site, based on the current configuration and workload conditions.
  • Perform workload load balancing that is optimized for your two sites.

In some configurations, multiple server applications may be listening on the same port. When the TCP connection requests reach a target TCP/IP stack for these server applications sharing the same port, the connections are load balanced by TCP/IP across the multiple server application instances. How this load balancing is performed depends on whether the SHAREPORT or SHAREPORTWLM parameter is specified on the PORT statement. For more details about the PORT statement, see z/OS Communications Server: IP Configuration Reference. When you use Multi-site Workload Lifeline, all instances of this server application that share the same port on a target system are reported to external load balancers through a single member entry.

You might be able to customize the features of the way that the external load balancer communicates with the Lifeline Advisor. The SASP protocol defines two features of the external load balancer implementation that you might be able to configure:
  • Whether the external load balancer polls the Lifeline Advisor for updated data or whether the updated data is pushed to the external load balancer.
  • Whether only members that have updated data should be sent to the external load balancer or whether all members should be sent to the load balancer, regardless of whether their data has changed.

If you configure the external load balancer to request that the Lifeline Advisor push the updated information to the load balancer, the Lifeline Advisor updates the load balancer at least once every update interval. If you configure the external load balancer to poll the Lifeline Advisor for updated information, the Lifeline Advisor passes a recommended polling interval to the load balancer. However, you can configure the external load balancer to disregard this guideline.

Rule: Always configure first-tier load balancers to have updated information pushed to the load balancer.
Guideline: You can configure external second-tier load balancers to either poll for updated information or have updated information pushed to the load balancer.

External load balancers typically use a cluster IP address to represent the server applications that are being load balanced. Client applications use this cluster IP address as the destination IP address for their requests.

In addition, some external load balancers might be able to use either directed or dispatch mode when they forward packets to their destinations.

Directed mode

When an external load balancer uses directed mode to forward packets to their destinations, it can use NAT to convert the destination IP address (the cluster IP address) to an IP address owned by the target z/OS system. When IP packets for these connections are sent back to clients, the external load balancer converts the source IP address (the IP address of the target z/OS system) back to the cluster IP address that the application used on its request. The load balancer either modifies the destination IP address (server NAT) in the packet itself or modifies both the destination and source IP addresses (server NAT and client NAT) in the packet. The packet must return through the same external load balancer, which recognizes the changes and does the reverse mapping. Then a packet can flow from the original destination to the original source.
Rule: Always configure first-tier load balancers to use directed mode. These load balancers route requests only to second-tier load balancers.
Guideline: You can configure external second-tier load balancers to use either directed or dispatch mode, although directed mode is recommended to avoid having to make server application changes.

Dispatch mode

When an external load balancer uses dispatch mode to forward packets to their destinations, the destination IP addresses for incoming IP packets are not changed. Instead, the external load balancer forwards the packet to a target z/OS system by using the MAC address of a network adapter on that system. The receiving z/OS system inspects the destination IP address of the packet, and accepts the packet if the IP address matches one of the IP addresses in its HOME list. As a result, with dispatch mode, all target z/OS systems must have the external load balancer's cluster IP address defined in their HOME list. However, these addresses must not be advertised externally through dynamic routing protocols. To prevent the addresses from being advertised externally through dynamic routing protocols, define these IP addresses as loopback addresses on z/OS.
Dispatch mode eliminates the need to perform network address translation (NAT). Dispatch mode has the following restrictions, which ensure that the second-tier external load balancer functions correctly:
Restrictions:
  • An OSA device can be shared among logical partitions (LPARs) only if virtual MAC (VMAC) addressing is configured for each TCP/IP target stack that shares the OSA device.
  • All target applications must bind to the IP address specified by INADDR_ANY or IN6ADDR_ANY, and the cluster IP address of the 2nd-tier load balancer must be defined to the stack. To ensure that this cluster IP address is not advertised, define it as a loopback address.
  • First-tier load balancers cannot be configured in dispatch mode.
If you do not meet the previous restrictions, load balancing will not be optimal because work will not be routed to some servers.