LBguide Ipv4
LBguide Ipv4
Reference Information
The Edge Components Information Center Web site links to the current version of
this book in HTML and PDF formats.
For the most current updates about Load Balancer, visit the Web site support page
and link to the Technote site.
To access these and related Web pages, go to the URLs listed in “Related
documents and Web sites” on page xvii.
Accessibility
Accessibility features help a user who has a physical disability, such as restricted
mobility or limited vision, to use software products successfully. These are the
major accessibility features in Load Balancer:
v You can use screen-reader software and a digital speech synthesizer to hear what
is displayed on the screen. You can also use voice recognition software, such as
IBM ViaVoice®, to enter data and to navigate the user interface.
v You can operate features by using the keyboard instead of the mouse.
v You can configure and administer Load Balancer features by using standard text
editors or command-line interfaces, instead of the provided graphical interfaces.
For more information about the accessibility of particular features, refer to the
documentation about those features.
When used with Web servers, Load Balancer can help maximize the potential of
your site by providing a powerful, flexible, and scalable solution to peak-demand
problems. If visitors to your site can not get through at times of greatest demand,
use Load Balancer to automatically find the optimal server to handle incoming
requests, thus enhancing your customers’ satisfaction and your profitability.
For more information on the Dispatcher, CBR, Site Selector, Cisco CSS Controller,
and Nortel Alteon Controller components, see “What are the components of Load
Balancer?” on page 7.
The need for a more powerful solution has resulted in Load Balancer. It offers
numerous benefits over earlier and competing solutions:
Scalability
As the number of client requests increases, you can add servers
dynamically, providing support for tens of millions of requests per day, on
tens or even hundreds of servers.
Efficient use of equipment
Load balancing ensures that each group of servers makes optimum use of
its hardware by minimizing the hot-spots that frequently occur with a
standard round-robin method.
Easy integration
Load Balancer uses standard TCP/IP or UDP/IP protocols. You can add it
to your existing network without making any physical changes to the
network. It is simple to install and configure.
Low overhead
Note: Only the CBR component can use the content rule for HTTPS (SSL)
when load-balancing traffic based upon the content of the HTTP
request, which requires decrypting and re-encrypting messages.
Dispatcher
The Dispatcher component offers a built-in high availability feature, eliminating
Dispatcher as a single point of failure from your network. This feature involves the
use of a second Dispatcher machine that monitors the main, or primary, machine
and stands by to take over the task of load balancing should the primary machine
fail at any time. The Dispatcher component also offers mutual high availability
which allows two machines to be both primary and secondary (backup) for each
other. See “Configure high availability” on page 164.
For a high-level list of configuration features that are provided by each of the Load
Balancer components, and to assist you in planning which features to use for
managing your network, see Chapter 3, “Managing your network: Determining
which Load Balancer features to use,” on page 17.
All client requests sent to the Dispatcher machine are directed to the "best" server
according to weights that are set dynamically. You can use the default values for
those weights or change the values during the configuration process.
Client
Client
Client
Dispatcher
Server 2
Internet
Server 1 Server 3
Figure 1. Example of a physical representation of a site using Dispatcher to manage local servers
Figure 2. Example of a site using Dispatcher and Metric Server to manage servers
Figure 2 illustrates a site in which all servers are on a local network. The
Dispatcher component is used to forward requests, and the Metric Server is used
to provide system load information to the Dispatcher machine.
In this example, the Metric Server daemon is installed on each backend server. You
can use Metric Server with the Dispatcher component or any of the other Load
Balancer components.
Figure 3. Example of a site using Dispatcher to manage local and remote servers
Wide area support in Dispatcher enables you to use both local and remote servers
(servers on different subnets). Figure 3 shows a configuration where one local
When using Dispatcher's NAT forwarding method or using GRE support, wide
area support with Dispatcher can also be achieved without using a Dispatcher at
the remote site (where ServerD, ServerE, and ServerF are located). See
“Dispatcher's NAT/NAPT (nat forwarding method)” on page 39 and “GRE
(Generic Routing Encapsulation) support” on page 189 for more information.
Note: The Content Based Routing (CBR) component is not available on platforms
that run a 64-bit JVM, except for HP-UX ia64. On HP-UX ia64, the CBR
component runs as a 32-bit application. You can use the CBR forwarding
method of Load Balancer's Dispatcher component to provide content-based
routing without the use of Caching Proxy. See “Dispatcher's content-based
routing (cbr forwarding method)” on page 41 for more information.
CBR gives you the ability to specify a set of servers that handle a request based on
regular expression matching of the content of the request. Because CBR allows you
to specify multiple servers for each type of request, the requests can be load
balanced for optimal client response. CBR also detects when one server in a set has
failed, and stops routing requests to that server. The load-balancing algorithm used
by the CBR component is identical to the proven algorithm used by the Dispatcher
component.
When a request is received by Caching Proxy, it is checked against the rules that
have been defined in the CBR component. If a match is found, then one of the
servers associated with that rule is chosen to handle the request. Caching Proxy
then performs its normal processing to proxy the request to the chosen server.
CBR has the same functions as Dispatcher with the exception of high availability,
SNMP subagent, wide area, and a few other configuration commands.
Caching Proxy must be running before CBR can begin load balancing client
requests.
Client
Client
name server
name Internet
server
Site
Selector
Figure 5. Example of a site using Site Selector and Metric Server to manage local and
remote servers
Figure 5 illustrates a site in which the Site Selector component is used to answer
requests. Server1, Server2, and Server3 are local. Server4, Server5, and Server6 are
remote.
A client submits a request for resolution of a domain name to a client name server.
The client name server forwards the request through the DNS to the Site Selector
machine (Path 1). Site Selector then resolves the domain name to the IP address of
one of the servers. Site Selector returns the IP address of the selected server to the
client name server. The name server returns the IP address to the client.
After the client receives the IP address of the server, the client routes application
requests directly to the selected server (Path 2).
Note: In this example, the Metric Server provides system load information to the
Site Selector machine. The Metric Server agent is installed on each backend
server. Use Metric Server in conjunction with Site Selector; otherwise Site
Selector can only use a round-robin selection method for load balancing.
When a Cisco CSS Switch, without Cisco CSS Controller, is determining the health
of a content-providing service, it uses response times for content requests or other
network measures. With Cisco CSS Controller in place, these activities are
offloaded from the Cisco CSS Switch to Cisco CSS Controller. Cisco CSS Controller
influences the service's weight or ability to serve content, and activates or suspends
a service as appropriate when the service regains or loses availability.
Internet
Cisco Consultant
CSS Switch for Cisco
CSS Switch
Figure 6. Example of a site using Cisco CSS Controller and Metric Server to manage local
services
Cisco CSS Controller, in conjunction with the Cisco CSS Switch, delivers a "best of
both worlds" solution that combines wire-speed content switching with
sophisticated application awareness, fault tolerance, and service load optimization.
Cisco CSS Controller is part of an overall complementary solution between the
Cisco CSS Switch and IBM WebSphere Application Server Load Balancer.
Nortel Alteon Controller in conjunction with the Nortel Alteon family of Web
switches provides a complementary solution that combines the switches' packet
forwarding speed and capacity with the Load Balancer's sophisticated awareness
algorithms for determining server weights.
Nortel Alteon Controller allows you to develop custom advisors that are capable of
performing more intelligent, application-aware assessments of the availability and
load of applications used to deploy services.
The Metric Server provides system load information, such as CPU and memory
utilization information, and a framework for you to develop custom system load
measurements.
server farm
clients
intranet
Nortel Alteon
browser, GUI, or Controller
command line
interface
Figure 7. Example of a site using Nortel Alteon Controller to manage local servers
You can manage the controller using a browser, a remote GUI, or a remote
command line interface.
Nortel Alteon Controller combined with the Nortel Alteon family of Web switches
delivers a "best of both worlds" solution that combines wire-speed packet
switching with sophisticated application awareness, fault tolerance and server load
optimization. Nortel Alteon Controller is part of a complementary solution
between the Nortel Alteon family of Web switches and IBM's WebSphere.
Remote administration
__ To run Load Balancer configuration from a separate machine from the one
on which the Load Balancer resides, see “Remote administration of Load
Balancer” on page 213.
Collocation
__ To run Dispatcher on the same machine as a Web server that you are load
balancing, see “Using collocated servers” on page 162.
High availability
__ To use Dispatcher to remove single point-of-failure limitations in your
network, see “Simple high availability” on page 45 and “Mutual high
availability” on page 46.
To direct HTTP clients to different sets of servers using rules based on matching
the URL content of the client request, see “Dispatcher's content-based routing (cbr
forwarding method)” on page 41 and “Using rules based on the request content”
on page 176 for more information.
__ To distinguish between particular URLs and their service applications, see
“Server Partitioning: logical servers configured to one physical server (IP
address)” on page 43.
If your network includes fully secure SSL (client through server) traffic, the
advantage of using the CBR component (in conjunction with Caching Proxy) is that
it can process the encryption and decryption required in order to perform
content-based routing. For fully secure connections, the Dispatcher's cbr
forwarding can only be configured with SSL ID affinity because it cannot process
the encryption and decryption to perform true content-based routing on the client
request's URL.
Port mapping
__ To load balance one Web address to multiple server daemons on the same
machine, where each daemon listens on a unique port see “Dispatcher's
NAT/NAPT (nat forwarding method)” on page 39.
Binary logging
__ To analyze server traffic, see “Using binary logging to analyze server
statistics” on page 194.
Alerts
__ To generate alerts when servers are marked up or down, see “Using scripts
to generate an alert or record server failure” on page 145.
Note: The Content Based Routing (CBR) component is not available on platforms
that run a 64-bit JVM, except for HP-UX ia64. On HP-UX ia64, the CBR
component runs as a 32-bit application. You can use the CBR forwarding
method of Load Balancer's Dispatcher component to provide content-based
routing without the use of Caching Proxy. See “Dispatcher's content-based
routing (cbr forwarding method)” on page 41 for more information.
With the CBR component (or the Dispatcher component's cbr forwarding method),
you can provide the following advantages to your clients:
__ Load balance client requests for different types of content to sets of servers.
(See “Load balancing requests for different types of content” on page 72.)
__ Improve response time by optimally dividing your site's content among your
Web servers. (See “Dividing your site content for better response time” on
page 72.)
__ Ensure uninterrupted client traffic during server failure by allowing multiple
servers to be assigned to each type of content. (See “Providing backup of
Web server content” on page 72.)
For fully secure SSL connections, the Dispatcher's cbr forwarding can only be
configured with SSL ID affinity because it cannot process the encryption/
decryption to perform true content-based routing on the client request's URL.
For HTTP traffic, the advantage of using Dispatcher's cbr forwarding method is
that it provides a faster response to client requests than the CBR component. Also,
Dispatcher's cbr forwarding does not require the installation and use of Caching
Proxy.
20 Load Balancer for IPv4 Administration Guide
Remote administration
__ To run Load Balancer configuration from a separate machine from the one
on which the Load Balancer resides, see “Remote administration of Load
Balancer” on page 213.
Collocation
__ CBR can run on the same machine as a server that you are load balancing.
See “Using collocated servers” on page 162 for more information.
Server partitioning
__ To distinguish between particular URLs and their service applications, see
“Server Partitioning: logical servers configured to one physical server (IP
address)” on page 43.
Binary logging
__ To analyze server traffic, see “Using binary logging to analyze server
statistics” on page 194.
Alerts
__ To generate alerts when servers are marked up or down, see “Using scripts
to generate an alert or record server failure” on page 145.
Remote administration
__ To run Load Balancer configuration from a separate machine from the one
on which the Load Balancer resides, see “Remote administration of Load
Balancer” on page 213.
Collocation
__ Site Selector can run on the same machine as a server that you are load
balancing with no additional configuration steps required.
High availability
__ High availability is inherently available through Domain Name System
(DNS) methodologies using multiple redundant Site Selectors, assuming
correct configuration of the parent name server and normal DNS recovery
methods are in place. Examples of normal DNS recovery methods are:
retransmission of queries and retrying zone transfers.
__ To remove single point of failure limitations in your network using
Dispatcher in a two-tier configuration with Site Selector, see “How can Load
Balancer provide high availability?” on page 5.
In a WAN environment:
__ To load balance client name server requests using a weighted round-robin
selection method, no additional configuration steps are required.
__ To consider the network proximity of the client name server to the servers
providing the application requested (the destination servers), see “Using the
Network Proximity feature” on page 93.
Alerts
__ To generate alerts when servers are marked up or down, see “Using scripts
to generate an alert or record server failure” on page 145.
Chapter 3. Managing your network: Determining which Load Balancer features to use 23
To optimize balancing the load across servers and ensure that the "right" server is
chosen, see:
__ “Optimizing the load balancing provided by Load Balancer” on page 200
__ “Advisors” on page 201 and “Create custom (customizable) advisors” on
page 203
__ “Metric Server” on page 206
Remote administration
__ To run Load Balancer configuration from a separate machine from the one
on which the Load Balancer resides, see “Remote administration of Load
Balancer” on page 213.
Collocation
__ Cisco CSS Controller can run on the same machine as a server that you are
load balancing with no additional configuration steps required.
High availability
__ To remove single point of failure limitations in your network, both the Cisco
CSS Switch and the Cisco CSS Controller have high availability capabilities.
For the switch, high availability capabilities are possible using the CSS
redundancy protocol. For the Cisco CSS Controller, a proprietary protocol is
used that allows the hot-standby configuration of two controllers.
For more information about configuring high availability, see “High
availability” on page 110.
Binary logging
__ To analyze server traffic, see “Using binary logging to analyze server
statistics” on page 209.
Alerts
__ To generate alerts when servers are marked up or down, see “Using scripts
to generate an alert or record server failure” on page 210.
To optimize balancing the load across servers and ensure that the "right" server is
chosen, see:
__ “Optimizing the load balancing provided by Load Balancer” on page 200
Remote administration
__ To run Load Balancer configuration from a separate machine from the one
on which the Load Balancer resides, see “Remote administration of Load
Balancer” on page 213.
Collocation
__ Nortel Alteon Controller can run on the same machine as a server that you
are load balancing with no additional configuration steps required.
High availability
__ To remove single point of failure limitations in your network, both the
Nortel Alteon Web Switch and the Nortel Alteon Controller have high
availability capabilities. For the switch, high availability is possible using
redundancy protocol for connections to servers and for services. Nortel
Alteon Controller provides high availability using a proprietary protocol that
allows a hot-standby configuration of two controllers.
For more information about configuring high availability, see “High
availability” on page 130.
Binary logging
__ To analyze server traffic, see “Using binary logging to analyze server
statistics” on page 209.
Alerts
__ To generate alerts when servers are marked up or down, see “Using scripts
to generate an alert or record server failure” on page 210.
Chapter 3. Managing your network: Determining which Load Balancer features to use 25
26 Load Balancer for IPv4 Administration Guide
Chapter 4. Installing Load Balancer
For instructions on installing Load Balancer, refer to the installation instructions in
Concepts, Planning and Installation for IPv4.
Note: Throughout the administration guide, there are references to commands and
file locations that include directory paths:
v For AIX, HP-UX, Linux, and Solaris operating systems, the installation
path for the product is /opt/ibm/edge/lb/
This path cannot be changed.
v For Windows operating systems, the default installation path for the
product is C:\Program Files\loadbalancer\ibm\edge\lb.
The beginning of this installation path can be changed, but be aware that
Installation Manager requires you to install the product into an empty
directory - in the default path it is C:\Program Files\loadbalancer. The
ibm\edge\lb portion of the path is hard coded and cannot be modified.
Since the initial section of the path can be modified, the installation
location is referenced as <install_root>ibm\edge\lb\ throughout the
administration guide, where <install_root> represents the empty directory
that you specified during installation.
Server 2
(Cluster address -- Used by clients) 9.47.47.102
9.47.47.104 Port 80
www.Intersplash.com
Client Internet Dispatcher
nonforwarding address
9.47.47.101
Server 1
(NFA — For maintenance)
Server 3
9.47.47.103
Port 80
The mac forwarding method is the default forwarding method whereby Dispatcher
load balances incoming requests to the server, and the server returns the response
directly to the client. For more information on Dispatcher's MAC forwarding
method, see “Dispatcher's MAC-level routing (mac forwarding method)” on page
38.
Note: You can complete the configuration using only two workstations with
Dispatcher located on one of the Web server workstations. This setup
represents a collocated configuration. Procedures for setting up more
complex configurations can be found at “Setting up the Dispatcher machine”
on page 50.
Note: The NFA is the address that is returned by the hostname command. This
address is used for administrative purposes, such as remote configuration.
Each of the workstations contains only one standard Ethernet network interface
card.
3. Ensure that server1.Intersplashx.com can ping both server2.Intersplashx.com
and server3.Intersplashx.com.
4. Ensure that server2.Intersplashx.com and server3.Intersplashx.com can ping
server1.Intersplashx.com.
5. Ensure that content is identical on the two Web servers (Server 2 and Server 3).
This can be done by replicating data on both workstations, by using a shared
file system such as NFS, AFS®, or DFS, or by any other means appropriate for
your site.
6. Ensure that Web servers on server2.Intersplashx.com and
server3.Intersplashx.com are operational. Use a Web browser to request pages
directly from http://server2.Intersplashx.com and http://
server3.Intersplashx.com.
7. Obtain another valid IP address for this LAN segment. This is the address you
will provide to clients who wish to access your site. For this example we will
use:
Name= www.Intersplashx.com
IP=9.47.47.104
8. Configure the two Web server workstations to accept traffic for
www.Intersplashx.com.
Add an alias for www.Intersplashx.com to the loopback interface on
server2.Intersplashx.com and server3.Intersplashx.com.
v For AIX systems:
ifconfig lo0 alias www.Intersplashx.com netmask 255.255.255.255
v For Solaris 9 systems:
ifconfig lo0:1 plumb www.Intersplashx.com netmask 255.255.255.0 up
v For other operating systems see Table 2 on page 56.
9. Delete any extra route that may have been created as a result of aliasing the
loopback interface. See “Step 2. Check for an extra route” on page 59.
You have now completed all configuration steps that are required on the two
Web server workstations.
Note: The parameter values must be typed in English characters. The only
exceptions are parameter values for host names and file names.
Server 1
port
80
Server 2
cluster
Client Internet Dispatcher
Server 3
port
443
Server 4
cluster port 80
Server 2
Server 3
Server 4
www.testworks.com
Server 6
Figure 10. Example of Dispatcher configured with two clusters, each with one port
In this example for the Dispatcher component, two clusters are defined:
www.productworks.com for port 80 (HTTP) and www.testworks.com for port 443
(SSL).
A third way of configuring Load Balancer might be necessary if your site does
content hosting for several companies or departments, each one coming into your
site with a different URL. In this case, you might want to define a cluster for each
company or department and then define any ports to which you want to receive
connections at that URL, as shown in Figure 11 on page 36.
port
80
www.productworks.com Server 2
Cluster
Server 3
port
23
Server 4
DISPATCHER
Client Internet
Server 5
port
80
Server 6
Cluster
www.testworks.com
Server 7
port
23
Server 8
Figure 11. Example of Dispatcher configured with 2 clusters, each with 2 ports
In this example for the Dispatcher component, two clusters are defined with port
80 for HTTP and port 23 for Telnet for each of the sites at www.productworks.com
and www.testworks.com.
Note: For previous versions, when the product was known as Network Dispatcher,
the Dispatcher control command name was ndcontrol. The Dispatcher
control command name is now dscontrol.
Planning considerations
Dispatcher consists of the following functions:
v dsserver handles requests from the command line to the executor, manager, and
advisors.
v The executor supports port-based load balancing of TCP and UDP connections.
It is able to forward connections to servers based on the type of request received
(for example, HTTP, FTP, SSL, and so forth). The executor always runs when the
Dispatcher component is being used for load balancing.
v The manager sets weights used by the executor based on:
– Internal counters in the executor
– Feedback from the servers provided by the advisors
– Feedback from a system-monitoring program, such as Metric Server or WLM.
Using the manager is optional. However, if the manager is not used, load
balancing is performed using weighted round-robin scheduling based on the
current server weights, and advisors are not available.
The three key functions of Dispatcher (executor, manager, and advisors) interact to
balance and dispatch the incoming requests between servers. Along with load
balancing requests, the executor monitors the number of new connections, active
connections, and connections in a finished state. The executor also does garbage
collection of completed or reset connections and supplies this information to the
manager.
The manager collects information from the executor, the advisors, and a
system-monitoring program, such as Metric Server. Based on the information the
manager receives, it adjusts how the server machines are weighted on each port
and gives the executor the new weighting for use in its balancing of new
connections.
The advisors monitor each server on the assigned port to determine the server’s
response time and availability and then give this information to the manager. The
advisors also monitor whether a server is up or down. Without the manager and
the advisors, the executor does round-robin scheduling based on the current server
weights.
Forwarding methods
With Dispatcher, you can select one of three forwarding methods specified at the
port level: MAC forwarding, NAT/NAPT forwarding, or CBR (content-based
routing) forwarding.
The forwarding method can be selected when adding a port using the dscontrol
port add cluster:port method value command. The default forwarding method
value is mac. You can specify the method parameter only when the port is added.
When you add the port, you cannot change the setting of the forwarding method.
See “dscontrol port — configure ports” on page 319 for more information.
Linux limitation when using zSeries or S/390 servers: There are limitations when
using zSeries or S/390 servers that have Open System Adapter (OSA) cards. See
“Problem: On Linux, Dispatcher configuration limitations when using zSeries or
S/390 servers that have Open System Adapter (OSA) cards” on page 264, for
possible workarounds.
You can configure a server with multiple daemons in two different ways:
v With NAT, you can configure multiple server daemons to respond to requests to
different IP addresses. This is also known as binding a server daemon to an IP
address.
v With NAPT, you can configure multiple server daemons (running on the same
physical server) to listen on different port numbers.
This application works well with upper-level application protocols such as HTTP,
SSL, IMAP, POP3, NNTP, SMTP, Telnet, and so on.
Limitations:
v Dispatcher's implementation of NAT/NAPT is a simple implementation of this
feature. It analyzes and operates upon only the contents of TCP/IP packet
headers. It does not analyze the contents of the data portion of the packets. For
Dispatcher, NAT/NAPT will not work with application protocols, such as FTP,
which imbed the addresses or port numbers in the data portion of the messages.
This is a well-known limitation of header-based NAT/NAPT.
v Dispatcher's NAT/NAPT cannot work in conjunction with the wildcard cluster
or wildcard port feature.
Note: If you do not set client gateway address to a nonzero value, then the
forwarding method can only be mac (MAC based forwarding method).
v Add a server using the mapport, returnaddress, and router parameters using the
dscontrol command. For example:
dscontrol server add cluster:port:server mapport value returnaddress
rtrnaddress router rtraddress
– mapport (optional)
This maps the client request's destination port number (which is for
Dispatcher) to the server's port number that Dispatcher uses to load balance
the client's request. Mapport allows Load Balancer to receive a client's request
on one port and to transmit it to a different port on the server machine. With
mapport you can load balance a client's requests to a server machine that
might have multiple server daemons running. The default for mapport is the
client request's destination port number.
– returnaddress
The return address is a unique address or host name that you configure on
the Dispatcher machine. Dispatcher uses the return address as its source
address when load balancing the client's request to the server. This ensures
that the server returns the packet to the Dispatcher machine rather than
sending the packet directly to the client. (Dispatcher will then forward the IP
packet to the client.) You must specify the return address value when adding
the server. You cannot modify the return address unless you remove the
server and then add it again. The return address cannot be the same as the
cluster, server, or NFA address.
When you use nat or cbr forwarding methods, you must define a return
address for communication between Load Balancer and the backend servers.
The number of connections that Load Balancer can keep active with the
backend server is limited by the number of return addresses that are defined.
Load Balancer uses ports that are based upon the return address only; not the
return address and server combination. When all the available ports are in
use, additional connections fail. In a busy environment, use multiple return
addresses to prevent a shortage of available ports.
– router
The address of the router to the remote server. If this is a locally attached
server, enter the server address, unless the server is located on the same
machine as Load Balancer. In that case, continue to use the real router
address.
For HTTP: Server selection for Dispatcher's content-based routing is based upon
the contents of a URL or an HTTP header. It is configured using the "content" type
rule. When configuring the content rule, specify the search string "pattern" and a
set of servers to the rule. When processing a new incoming request, this rule
compares the specified string with the client's URL or with the specified HTTP
header in the client request.
If Dispatcher finds the string in the client request, Dispatcher forwards the request
to one of the servers within the rule. Dispatcher then relays the response data from
the server to the client ("cbr" forwarding method).
If Dispatcher does not find the string in the client request, Dispatcher does not
select a server from the set of servers within the rule.
Note: The content rule is configured in the Dispatcher component the same way it
is configured in the CBR component. Dispatcher can use the content rule for
HTTP traffic. However, the CBR component can use the content rule for both
HTTP and HTTPS (SSL) traffic.
For HTTPS (SSL): Dispatcher's content-based routing load balances based on the
SSL ID session field of the client request. With SSL, a client request contains the
SSL session ID of a prior session, and servers maintain a cache of their prior SSL
connections. Dispatcher's SSL ID session affinity allows the client and server to
establish a new connection using the security parameters of the previous
connection with the server. By eliminating the renegotiation of SSL security
parameters, such as shared keys and encryption algorithms, the servers save CPU
cycles and the client gets a quicker response. In order to enable SSL session ID
affinity: the protocol type specified for the port must be SSL and port stickytime
must be set to a nonzero value. When stickytime has been exceeded, the client may
be sent to a different server from the previous.
You will need three IP addresses for the Dispatcher machine – nfa, cluster, and
return address. To implement Dispatcher's content-based routing (see also “Sample
steps for configuring Dispatcher's nat or cbr forwarding methods” on page 42):
v Set the clientgateway parameter on the dscontrol executor set command.
Clientgateway is an IP address that is used as the router address through which
traffic in the return direction is forwarded from Dispatcher to clients. The
clientgateway value defaults to zero. This value must be set to a nonzero IP
address before you can add a content-based routing forwarding method. See
“dscontrol executor — control the executor” on page 299 for more information.
v Add a port using the method parameter and the protocol parameter on the
dscontrol port add command. The forwarding method value should be set to
cbr. The port protocol type can be either HTTP or SSL. See “dscontrol port —
configure ports” on page 319 for more information.
Note: The connection record replication feature of high availability (which ensures
that a client's connection will not drop when a backup Dispatcher machine
takes over for the primary machine) is not supported with Dispatcher's
content-based routing.
Figure 12. Example for using Dispatcher's nat or cbr forwarding methods
You will need at least three IP addresses for the Dispatcher machine. For Figure 12,
the following are the necessary steps to minimally configure Dispatcher's nat or cbr
forwarding methods:
1.Start the executor
dscontrol executor start
The client gateway (1.2.3.5) is the router 1 address between Load Balancer and the
client. The router (10.10.10.6) is the router 2 address between Load Balancer and
the backend server. If you are unsure of the clientgateway or router 2 address, you
can use a traceroute program with the client (or server) address to determine the
router address. The exact syntax of this program will differ based on the operating
system you are using. You should consult your operating system documentation
for more information regarding this program.
If the server is on the same subnet as Load Balancer (that is, no routers are
returned using traceroute) enter the server address as the router address. However,
if the server is located on the same machine as Load Balancer, the router address
should be entered in the router field instead of the server address. The router
address is the address used in the "server add" command on the Load Balancer
machine in step 7.
Server partitioning allows Load Balancer to detect, for example, that the HTML
service is serving pages rapidly, but the database connection has gone down. This
allows you to distribute load based on more granular service-specific workload,
rather than server-wide weighting alone.
If you define the server three times (for example, ServerHTML, ServerGIF,
ServerJSP) under the port and define the server advisorrequest parameter with a
For more information on the advisorrequest parameter, see “Configuring the HTTP
or HTTPS advisor using the request and response (URL) option” on page 152.
In this example, server 1.1.1.2 is partitioned into 2 logical servers: "A" (handling
HTML requests) and "B" (handling GIF requests). Server 1.1.1.3 is partitioned into 2
logical servers: "C" (handling HTML requests) and "D" (handling JSP requests).
Server 1.1.1.4 is partitioned into 2 logical servers: "E" (handling GIF requests) and
"F" (handling JSP requests).
The high availability feature involves the use of a second Dispatcher machine. The
first Dispatcher machine performs load balancing for all the client traffic as it does
in a single Dispatcher configuration. The second Dispatcher machine monitors the
“health" of the first, and takes over the task of load balancing if it detects that the
first Dispatcher machine has failed.
Each of the two machines is assigned a specific role, either primary or backup. The
primary machine sends connection data to the backup machine on an ongoing
basis. While the primary is active (load balancing), the backup is in a standby state,
continually updated and ready to take over, if necessary.
If the backup machine detects that the active machine has failed, it will take over
and begin load balancing. At that point the statuses of the two machines are
reversed: the backup machine becomes active and the primary becomes standby.
In the high availability configuration, both primary and backup machines must be
on the same subnet with identical configuration.
For information about configuring high availability, see “High availability” on page
164.
Server 1
Port 80 Server 2
Dispatcher 1 Server 3
Primary - cluster A
Backup - cluster B
Client Internet
Dispatcher 2
Primary - cluster B Server 4
Backup - cluster A
Server 6
The mutual high availability feature involves the use of two Dispatcher machines.
Both machines actively perform load balancing of client traffic, and both machines
provide backup for each other. In a simple high availability configuration, only one
machine performs load balancing. In a mutual high availability configuration, both
machines load balance a portion of the client traffic.
For mutual high availability, client traffic is assigned to each Dispatcher machine
on a cluster address basis. Each cluster can be configured with the NFA
(nonforwarding address) of its primary Dispatcher. The primary Dispatcher
machine normally performs load balancing for that cluster. In the event of a
failure, the other machine performs load balancing for both its own cluster and for
the failed Dispatcher's cluster.
Note: Both machines must configure their shared cluster sets the same. That is, the
ports used and the servers under each port must be identical in the two
configurations.
For information about configuring high availability and mutual high availability,
see “High availability” on page 164.
Note: For previous versions, when the product was known as Network Dispatcher,
the Dispatcher control command name was ndcontrol. The Dispatcher
control command name is now dscontrol.
Methods of configuration
There are four basic methods of configuring the Dispatcher:
v Command line
v Scripts
v Graphical user interface (GUI)
v Configuration wizard
Command line
This is the most direct means of configuring the Dispatcher. The command
parameter values must be entered in English characters. The only exceptions are
host names (used in cluster, server, and highavailability commands) and file names
(used in file commands).
You can use a minimized version of the dscontrol command parameters by typing
the unique letters of the parameters. For example, to get help on the file save
command, you can type dscontrol he f instead of dscontrol help file.
Scripts
You can enter commands for configuring Dispatcher into a configuration script file
and run them together. See “Sample Load Balancer configuration files” on page
413.
Note: To quickly run the content of a script file (for example, myscript), use either
of the following commands:
v To update the current configuration, run the following executable
commands from your script file:
dscontrol file appendload myscript
v To completely replace the current configuration, run the following
executable commands from your script file:
dscontrol file newload myscript
To save the current configuration into a script file (for example, savescript), run the
following command:
dscontrol file save savescript
This command will save the configuration script file in the following directory:
v AIX, HP-UX, Linux, and Solaris operating systems: /opt/ibm/edge/lb/servers/
configurations/dispatcher
v Windows operating systems: <install_root>ibm\edge\lb\servers\
configurations\dispatcher
GUI
For general instructions and an example of the graphical user interface (GUI), see
Figure 38 on page 403.
To configure the Dispatcher component from the GUI, you must first select
Dispatcher in the tree structure. You can start the executor and manager after you
connect to a Host. You can also create clusters containing ports and servers, and
start advisors for the manager.
The GUI can be used to do anything that you would do with the dscontrol
command. For example, to define a cluster using the command line, you would
enter dscontrol cluster add cluster command. To define a cluster from the GUI,
right-click Executor, then in the pop-up menu, left-click Add Cluster. Enter the
cluster address in the pop-up window, then click OK.
Pre-existing Dispatcher configuration files can be loaded using the Load New
Configuration(for completely replacing the current configuration) and Append to
Current Configuration (for updating the current configuration) options presented
in the Host pop-up menu. You should save your Dispatcher configuration to a file
periodically using the Save Configuration File As option also presented in the
Host pop-up menu. The File menu located at the top of the GUI will allow you to
save your current host connections to a file or restore connections in existing files
across all Load Balancer components.
The configuration commands can also be run remotely. For more information, see
“Remote Method Invocation (RMI)” on page 213.
In order to run a command from the GUI: highlight the Host node from the GUI
tree and select Send command.... from the Host pop-up menu. In the command
entry field, type the command that you want to run, for example: executor report.
The results and history of the commands run in the current session and appear in
the window provided.
You can access Help by clicking the question mark icon in the upper right corner
of the Load Balancer window.
v Help: Field level — describes each field, default values
v Help: How do I — lists tasks that can be done from that screen
v InfoCenter — provides centralized access to product information
For more information about using the GUI, see Appendix A, “GUI: General
instructions,” on page 403.
The wizard guides you step by step through the process of creating a basic
configuration for the Dispatcher component. You will be asked questions about
On all supported platforms, the Load Balancer can have a collocated server.
Collocation means that Load Balancer can physically reside on a server machine
which it is load balancing.
For the Dispatcher machine, when using the mac forwarding method, you will
need at least two valid IP addresses. For cbr or nat forwarding method, you will
need at least three valid IP addresses:
v An IP address specifically for the Dispatcher machine
This IP address is the primary IP address of the Dispatcher machine and is
called the nonforwarding address (NFA). This is by default the same address as
that returned by the hostname command. Use this address to connect to the
machine for administrative purposes, such as doing remote configuration using
Telnet or accessing the SNMP subagent. If the Dispatcher machine can already
ping other machines on the network, you do not need to do anything further to
set up the nonforwarding address.
v One IP address for each cluster
A cluster address is an address that is associated with a host name (such as
www.yourcompany.com). This IP address is used by a client to connect to the
servers in a cluster. This is the address that is load balanced by the Dispatcher.
v For cbr or nat forwarding, an IP address for the return address
Dispatcher uses the return address as its source address when load balancing the
client's request to the server. This ensures that the server returns the packet to
the Dispatcher machine rather than sending the packet directly to the client.
(Dispatcher will then forward the IP packet to the client.) You must specify the
return address value when adding the server. You cannot modify the return
address unless you remove the server and then add it again.
The number of connections that Load Balancer can keep active with the backend
server is limited by the number of return addresses that are defined. Load
Balancer uses ports that are based upon the return address only; not the return
address and server combination. When all the available ports are in use,
additional connections fail. In a busy environment, use multiple return addresses
to prevent a shortage of available ports.
Note: The ibmlb.conf file provides input to the Solaris autopush command and
must be compatible with the autopush command.
v To determine the type of Ethernet network interface in use on your machine,
issue the following command from the Solaris command prompt:
ifconfig -a
80
204.67.172.72 204.0.0.2
www.productworks.com
Client Dispatcher
nonforwarding address
204.67.32.54
204.0.0.3
443
Figure 15. Example of the IP addresses needed for the Dispatcher machine
For help with commands used in this procedure, see Chapter 26, “Command
reference for Dispatcher and CBR,” on page 287.
For a sample configuration file, see “Sample Load Balancer configuration files” on
page 413.
To define the nonforwarding address, enter the dscontrol executor set nfa
IP_address command or edit the sample configuration file. IP_address is either the
symbolic name or the IP address.
The cluster is either the symbolic name, the dotted decimal address, or the special
address 0.0.0.0 that defines a wildcard cluster. To define a cluster, issue the
Circumstances where you do not want to configure the cluster address include
clusters added to a standby server in high-availability mode, or clusters added to a
wide-area dispatcher acting as a remote server. You also do not need to run the
executor configure command if, in stand-alone mode, you use the sample goIdle
script. For information on the goIdle script, see “Using scripts” on page 167.
In rare cases you might have a cluster address that does not match any subnet for
existing addresses. In this case, use the second form of the executor configure
command and explicitly provide the interface name and netmask. Use dscontrol
executor configure cluster_address interface_name netmask.
Windows systems
To use the second form of the executor configure command on Windows systems,
you must determine the interface name to use. If you have only one Ethernet card
in your machine, the interface name is en0. If you have multiple cards, you will
need to determine the mapping of the cards. Use the following steps:
1. From the command line start the executor: dscontrol executor start
2. Run the command: dscontrol executor xm 1
Output will be displayed to the screen. To determine the interface name to use for
your Load Balancer configuration, look for the IP address of your Load Balancer
Machine in the lines that follow Number of NIC records.
The IP addresss of your Load Balancer machine will be listed as: ia->ia_addr. The
associated interface name will be listed as: ifp->if_name.
The interface names assigned by the executor configure command map to the
interface names listed in this command.
Solaris and HP-UX systems: When using bind-specific server applications that
bind to a list of IP addresses that do not contain the server's IP, use arp publish
command instead of ifconfig to dynamically set an IP address on the Load
Balancer machine. For example:
arp -s <cluster> <Load Balancer MAC address> pub
Port number 0 (zero) is used to specify a wildcard port. This port will accept traffic
for a port that is not destined for any of the defined ports on the cluster. The
wildcard port is used to configure rules and servers for any port. This function
could also be used if you have an identical server and rule configuration for
multiple ports. The traffic on one port could then affect the load-balancing
decisions for traffic on other ports. See “Use wildcard port to direct unconfigured
port traffic” on page 192 for more information about when you might want to use
a wildcard port.
To determine if the server is bind specific, issue the netstat -an command and
look for the server:port. If the server is not bind specific, the result from this
command will be 0.0.0.0:80. If the server is bind specific, you will see an address
such as 192.168.15.103:80.
Note: For Solaris and Linux systems: When using advisors, bind-specific servers
must not be collocated.
For more information on dscontrol server command syntax, see “dscontrol server
— configure servers” on page 330.
For a list of advisors along with their default ports, see Chapter 26, “Command
reference for Dispatcher and CBR,” on page 287. For a description of each advisor,
see “List of advisors” on page 149.
When using mac forwarding method, Dispatcher will only load balance across
servers that allow the loopback adapter to be configured with an additional IP
address, for which the backend server will never respond to ARP (address
resolution protocol) requests. Follow the steps in this section to set up the
load-balanced server machines.
If you have an operating system that supports network interface aliasing (such as
AIX, HP-UX, Linux, Solaris, or Windows systems), you should alias the loopback
device to the cluster address. The benefit of using an operating system that
supports aliases is that you have the ability to configure the load-balanced server
machines to serve multiple cluster addresses.
IMPORTANT: For Linux systems, see “Linux loopback aliasing alternatives when
using Load Balancer's mac forwarding” on page 60.
If you have a server with an operating system that does not support aliases you
must set the loopback device to the cluster address.
Use the command for your operating system as shown in Table 2 to set or alias the
loopback device.
Table 2. Commands to alias the loopback device (lo0) for Dispatcher
AIX
AIX 4.3 or earlier:
ifconfig lo0 alias cluster_address netmask netmask
For example:
arp -s cluster_address Load Balancer’s_MAC_address pub
Linux Choose one of the following commands:
v Use the ip command:
ip -4 addr add cluster_address/32 dev lo
v Use the ifconfig command:
ifconfig lo:1 cluster_address netmask 255.255.255.255 up
IMPORTANT: Once you issue one of the configuration commands on
your machine, consistently use the same configuration command (ip or
ifconfig), or results can occur that are not expected.
OS/2 ifconfig lo cluster_address
Windows Example:
1. After route print is entered, a table similar to the following example will be
displayed. (This example shows finding and removing an extra route to cluster
9.67.133.158 with a default netmask of 255.0.0.0.)
Active Routes:
Example: To delete the extra route as shown in the "Active Routes" example table
for Step 2, enter:
route delete 9.0.0.0 9.67.133.158
Table 3. Commands to delete any extra route for Dispatcher
HP-UX route delete cluster_address cluster_address
Using the example shown in Figure 15 on page 52, and setting up a server machine
that is running and AIX system, the command would be:
route delete -net 204.0.0.0 204.67.172.72
There should be no response. If there is a response to the ping, ensure that you
did not ifconfig the cluster address to the interface. Ensure that no machine has
a published arp entry to the cluster address.
3. Ping the backend server, then immediately issue the command:
arp -a
In the output from the command, you should see the MAC address of your
server. Issue the command:
arp -s cluster server_mac_address
4. Ping the cluster. You should get a response. Issue a http, telnet, or other request
that is addressed to the cluster that you expect your backend server to handle.
Ensure that it works properly.
5. Issue the command:
arp -d cluster
6. Ping the cluster. There should be no response.
Note: If there is a response, issue an arp cluster instruction to get the MAC
address of the misconfigured machine. Then, repeat steps 1 through 6.
In most cases, you must alias the cluster address on the loopback; therefore,
backend servers must have the cluster aliased on the loopback, and if you use high
availability and collocation, the standby load-balancing servers must have clusters
aliased on the loopback.
To ensure that Linux systems do not advertise addresses on the loopback, you can
use any one of the following four solutions to make Linux systems compatible
with Dispatcher's mac forwarding.
1. Use a kernel that does not advertise the addresses. This is the preferred option,
as it does not incur a per-packet overhead and it does not require per-kernel
reconfiguration.
v United Linux 1 / SLES8 with SP2(x86) or SP3 (all other architectures) and
higher contains the Julian ARP hidden patch. Ensure that it is always in
effect before aliasing the cluster address with the command:
# sysctl -w net.ipv4.conf.all.hidden=1 net.ipv4.conf.lo.hidden=1
Note: For high availability collocation configurations, noarpctl adds and dels
must be placed in the go* scripts. This ensures that the active Load
Balancer can use ARP for the cluster address and that the standby Load
Balancer, which is acting as a server, does not accidentally (that is,
indeterminately) begin to receive all cluster traffic.
4. Obtain the Julian patch from the following Web site: http://www.ssi.bg/~ja/
#hidden. Follow your distribution instructions for patching and compiling a
kernel suitable for use with that distribution. If this is a collocated high
availability Load Balancer, ensure that the uname -r matches the
distribution-supplied kernel, and ensure that you start with the distribution
kernel .config file. After you build, install, and run your kernel with the Julian
hidden patch, following the instructions under the first solution listed for
enabling the patch.
Server 2
(Cluster address -- Used by clients) 9.27.27.102
9.27.27.104 Port 80
www.mywebsite.com CBR
---------
Client Internet Caching Proxy
nonforwarding address
9.27.27.101
Server 1
(NFA — For maintenance)
Server 3
9.27.27.103
Port 80
Note: The Content Based Routing (CBR) component is not available on platforms
that run a 64-bit JVM, except for HP-UX ia64. On HP-UX ia64, the CBR
component runs as a 32-bit application. You can use the CBR forwarding
method of Load Balancer's Dispatcher component to provide content-based
routing without the use of Caching Proxy. See “Dispatcher's content-based
routing (cbr forwarding method)” on page 41 for more information.
To use CBR, Caching Proxy must be installed on the same server. To configure
Caching Proxy for CBR, see “Step 1. Configure Caching Proxy to use CBR” on
page 79.
Each of the workstations contains only one standard Ethernet network interface
card.
3. Ensure that server1.mywebsite.com can ping both server2.mywebsite.com and
server3.mywebsite.com.
4. Ensure that server2.mywebsite.com and server3.mywebsite.com can ping
server1.mywebsite.com.
5. Ensure that Web servers on server2.mywebsite.com and server3.mywebsite.com
are operational. Use a Web browser to request pages directly from
http://server2.mywebsite.com (for example, .../member/index.html) and
http://server3.mywebsite.com (for example, .../guest/index.html).
6. Obtain another valid IP address for this LAN segment. This is the cluster
address you will provide to clients who wish to access your site. For this
example we will use:
Name= www.mywebsite.com
IP=9.27.27.104
Note: The parameter values must be typed in English characters. The only
exceptions are parameter values for host names and file names.
Note: For Windows platform: Start cbrserver (Content Based Routing) from
the Services panel: Start > Control Panel > Administrative Tools >
Services.
2. Start the executor function of CBR:
cbrcontrol executor start
3. Start Caching Proxy. (Caching Proxy can be started any time after you start
the executor function):
ibmproxy
Note: For Windows platform: You can also start Caching Proxy from the
Services panel: Start > Control Panel > Administrative Tools >
Services.
4. Add the cluster (the host name, Web site, to which clients connect) to the CBR
configuration:
cbrcontrol cluster add www.mywebsite.com
The total connections column of the two servers should add up to “2.”
Server 1
port
80
Server 2
CBR
--------- www.productworks.com
Client Internet
Caching Proxy
Server 3
port
443
Server 4
Figure 17. Example of CBR configured with a single cluster and 2 ports
Another way of configuring CBR would be appropriate if you have a very large
site with many servers dedicated to each protocol supported. In this case, you
might want to define a cluster for each protocol with a single port but with many
servers, as shown in Figure 10 on page 35.
cluster port 80
Server 2
Server 3
CBR
Client Internet ---------
Caching Proxy
Server 4
www.testworks.com Server 6
Figure 18. Example of CBR configured with two clusters, each with one port
In this example for the CBR component, two clusters are defined:
www.productworks.com for port 80 (HTTP) and www.testworks.com for port 443
(SSL).
A third way of configuring CBR would be necessary if your site does content
hosting for several companies or departments, each one coming into your site with
a different URL. In this case, you might want to define a cluster for each company
or department and then define any ports to which you want to receive connections
at that URL, as shown in Figure 11 on page 36.
port
80
Server 2
www.productworks.com
Server 3
port
443
Server 4
CBR
Client Internet ---------
Caching Proxy
Server 5
port
80
Server 6
www.testworks.com
Server 7
port
443
Server 8
Figure 19. Example of CBR configured with 2 clusters, each with 2 ports
In this example for the CBR component, two clusters are defined with port 80
(HTTP) and port 443 (SSL) for each of the sites at www.productworks.com and
www.testworks.com.
Planning considerations
The CBR component allows you to load balance HTTP and SSL traffic using
Caching Proxy to proxy the request. With CBR, you can load balance servers that
you configure from your CBR configuration file using cbrcontrol commands.
Note: The Content Based Routing (CBR) component is not available on platforms
that run a 64-bit JVM, except for HP-UX ia64. On HP-UX ia64, the CBR
component runs as a 32-bit application. You can use the CBR forwarding
method of Load Balancer's Dispatcher component to provide content-based
routing without the use of Caching Proxy. See “Dispatcher's content-based
routing (cbr forwarding method)” on page 41 for more information.
CBR is very similar to Dispatcher in its component structure. CBR consists of the
following functions:
v cbrserver handles requests from the command line to the executor, manager, and
advisors.
v The executor supports load balancing of client requests. The executor must be
started in order to use the CBR component.
v The manager sets weights used by the executor based on:
– Internal counters in the executor
– Feedback from the servers provided by the advisors
– Feedback from a system-monitoring program, such as Metric Server.
Using the manager is optional. However, if the manager is not used, load
balancing is performed using weighted round-robin scheduling based on the
current server weights, and advisors will not be available.
The three key functions of CBR (executor, manager, and advisors) interact to
balance and dispatch the incoming requests between servers. Along with load
balancing requests, the executor monitors the number of new connections and
active connections and supplies this information to the manager.
Another possibility for partitioning your site could be to direct clients who are
accessing pages requiring registration to one set of servers, and all other requests
to a second set of servers. This would keep casual browsers of your site from tying
up resources that could be used by clients who have committed to your
registration. It would also allow you to use more powerful workstations to service
those clients who have registered.
You could of course combine the methods above for even more flexibility, and
improved service.
After you define a cluster to be load balanced, you must make sure that all
requests to that cluster have a rule that will choose a server. If no rule is found
that matches a particular request, the client will receive an error page from
Caching Proxy. The easiest way to ensure that all requests will match some rule is
to create an "always true" rule at a very high priority number. Make sure that the
servers used by this rule can handle all the requests not explicitly handled by the
rules that have a lower-numbered priority. (Note: The lower-numbered priority
rules are evaluated first.)
For more information see “Configure rules-based load balancing” on page 170.
Because CBR must be able to advise on an HTTP request for a server configured
on port 443 (SSL), a special advisor ssl2http is provided. This advisor starts on port
443 (the incoming port from the client) and advises on the server(s) configured for
that port. If there are two clusters configured and each cluster has port 443 and
servers configured with a different mapport, then a single instance of the advisor
can open the appropriate port accordingly. The following is an example of this
configuration:
Executor
Cluster1
Port:443
Server1 mapport 80
Server2 mapport 8080
Cluster2
Port:443
Server3 mapport 80
Server4 mapport 8080
Manager
Advisor ssl2http 443
Note: The Content Based Routing (CBR) component is not available on platforms
that run a 64-bit JVM, except for HP-UX ia64. On HP-UX ia64, the CBR
component runs as a 32-bit application. You can use the CBR forwarding
method of Load Balancer's Dispatcher component to provide content-based
routing without the use of Caching Proxy. See “Dispatcher's content-based
routing (cbr forwarding method)” on page 41 for more information.
Table 4. Configuration tasks for the CBR component
Task Description Related information
Set up the CBR machine. Finding out about the requirements. “Setting up the CBR machine”
on page 79
Set up machines to be Set up your load balancing configuration. “Step 7. Define load balanced
load-balanced. server machines” on page 82
Methods of configuration
To create a basic configuration for the CBR component of Load Balancer, there are
four basic methods:
v Command line
v Scripts
v Graphical user interface (GUI)
v Configuration wizard
Command line
This is the most direct means of configuring CBR. The command parameter values
must be entered in English characters. The only exceptions are host names (used,
for example, in cluster and server commands) and file names.
Note: For Windows platforms: Start Caching Proxy from the Services panel:
Start > Control Panel > Administrative Tools > Services.
You can enter an abbreviated version of the cbrcontrol command parameters. You
only need to enter the unique letters of the parameters. For example, to get help on
the file save command, you can type cbrcontrol he f instead of cbrcontrol help
file.
Scripts
You can enter the commands for configuring CBR into a configuration script file
and run them together.
Note: To quickly run the content of a script file (for example, myscript), use either
of the following commands:
v To update the current configuration, run the following executable
commands from your script file:
cbrcontrol file appendload myscript
v To completely replace the current configuration, run the following
executable commands from your script file:
cbrcontrol file newload myscript
To save the current configuration into a script file (for example, savescript), run the
following command:
cbrcontrol file save savescript
This command will save the configuration script file in the following directory:
v AIX, HP-UX, Linux, and Solaris operating systems: /opt/ibm/edge/lb/servers/
configurations/cbr
v Windows operating systems: <install_root>ibm\edge\lb\servers\
configurations\cbr
GUI
For general instructions and an example of the graphical user interface (GUI), see
Figure 38 on page 403.
In order to configure the CBR component from the GUI, you must first select
Content Based Routing in the tree structure. You can start the manager after you
connect to a Host. You can also create clusters containing ports and servers, and
start advisors for the manager.
The GUI can be used to do anything that you would do with the cbrcontrol
command. For example, to define a cluster using the command line, you would
enter cbrcontrol cluster add cluster command. To define a cluster from the GUI,
right-click Executor, then in the pop-up menu, left-click Add Cluster. Enter the
cluster address in the pop-up window, then click OK.
Pre-existing CBR configuration files can be loaded using the Load New
Configuration (for completely replacing the current configuration) and Append to
Current Configuration (for updating the current configuration) options presented
in the Host pop-up menu. You should save your CBR configuration to a file
periodically using the Save Configuration File As option also presented in the
Host pop-up menu. The File menu located at the top of the GUI will allow you to
save your current host connections to a file or restore connections in existing files
across all Load Balancer components.
You can access Help by clicking the question mark icon in the upper right corner
of the Load Balancer window.
v Help: Field level — describes each field, default values
v Help: How do I — lists tasks that can be done from that screen
v InfoCenter — provides centralized access to product information
In order to run a command from the GUI: highlight the Host node from the GUI
tree and select Send command... from the Host pop-up menu. In the command
entry field, type the command that you want to run, for example: executor report.
The results and history of the commands run in the current session appear in the
window provided.
For more information about using the GUI, see Appendix A, “GUI: General
instructions,” on page 403.
Configuration wizard
If you are using the configuration wizard, follow these steps:
1. Start the cbrserver: issue cbrserver on the command prompt as root user or
administrator.
2. Start the wizard function of CBR:
Launch the wizard from the command prompt by issuing the cbrwizard. Or,
select the Configuration Wizard from the CBR component menu as presented in
the GUI.
3. Start Caching Proxy in order to load balance HTTP or HTTPS (SSL) traffic.
The CBR wizard guides you step-by-step through the process of creating a basic
configuration for the CBR component. It asks you questions about your network
and guides you as you set up a cluster that enables CBR to load balance traffic
between a group of servers.
You will need one IP address for each cluster of servers that is set up. A cluster
address is an address that is associated with a host name (such as
www.company.com). This IP address is used by a client to connect to the servers in
a cluster. Specifically, this address is found in the URL request from the client. All
requests made to the same cluster address are load balanced by CBR.
For Solaris systems only: Before using the CBR component, the system defaults for
IPCs (Inter-process Communication) must be modified. The maximum size of a
shared memory segment and the number of semaphore identifiers need to be
increased. To tune your system to support CBR, edit the /etc/system file on your
system to add the following statements and then reboot:
set shmsys:shminfo_shmmax=0x02000000
set semsys:seminfo_semmap=750
set semsys:seminfo_semmni=30
set semsys:seminfo_semmns=750
set semsys:seminfo_semmnu=30
set semsys:seminfo_semume=30
If you do not increase the shared memory segment to the values shown above,
cbrcontrol executor start command will fail.
You must make the following modifications to the Caching Proxy configuration file
(ibmproxy.conf):
In the mapping rules section of the configuration file, for every cluster, add a
mapping rule similar to:
Note: CBR sets the protocol, server, and target port at a later time.
There are four entries that must be edited for the CBR Plug-in:
v ServerInit
v PostAuth
v PostExit
v ServerTerm
Each entry must be on a single line. There are several instances of "ServerInit" in
the ibmproxy.conf file, one for each plug-in. The entries for the "CBR Plug-in"
should be edited and uncommented.
The specific additions to the configuration file for each of the operating systems
follow:
Table 5. Necessary additions to the CBR configuration file, by operating system
Operating system Additions to CBR configuration file
AIX, HP-UX, Linux, and Solaris systems ServerInit /opt/ibm/edge/lb/servers/lib/liblbcbr.so:ndServerInit
PostAuth /opt/ibm/edge/lb/servers/lib/liblbcbr.so:ndPostAuth
PostExit /opt/ibm/edge/lb/servers/lib/liblbcbr.so:ndPostExit
ServerTerm /opt/ibm/edge/lb/servers/lib/liblbcbr.so:ndServerTerm
Windows systems ServerInit <install_root>ibm\edge\lb\servers\lib\liblbcbr.dll:ndServerInit
PostAuth <install_root>ibm\edge\lb\servers\lib\liblbcbr.dll:ndPostAuth
PostExit <install_root>ibm\edge\lb\servers\lib\liblbcbr.dll:ndPostExit
ServerTerm <install_root>ibm\edge\lb\servers\lib\liblbcbr.dll:ndServerTerm
The cluster is the symbolic name located in the host portion of the URL and
should match the name used in the Proxy statement of the ibmproxy.conf file.
For more information, see Chapter 26, “Command reference for Dispatcher and
CBR,” on page 287.
For AIX, HP-UX, Linux, or Solaris systems: To add the cluster address to the
network interface, use the ifconfig command. Use the command for your operating
system as shown in Table 6.
Table 6. Commands to alias the NIC
AIX ifconfig interface_name alias cluster_address netmask netmask
HP-UX ifconfig interface_name cluster_address netmask netmask up
Linux ifconfig interface_name cluster_address netmask netmask up
Solaris 9, and ifconfig interface_name addif cluster_address netmask netmask up
Solaris 10
Note: For Linux and HP-UX systems, interface_name must have a unique number
for each cluster address that is added, for example: eth0:1, eth0:2, and so on.
For Windows 2003: To add the cluster address to the network interface, do the
following:
1. Click Start > Control Panel > Network Connections > Local Area Connection
2. Click Properties.
3. Select Internet Protocol (TCP/IP) and click Properties.
4. Select Use the following IP address and click Advanced.
5. Click Add and then type the IP address and subnet mask for the cluster.
To define a port to the cluster you defined in the previous step, issue the following
command:
cbrcontrol port add cluster:port
For more information, see Chapter 26, “Command reference for Dispatcher and
CBR,” on page 287.
You must define more than one server per port on a cluster in order to perform
load balancing.
The value pattern is the regular expression that is compared to the URL in each
client request. For more information on how to configure the pattern, see
Appendix B, “Content rule (pattern) syntax,” on page 409.
Some other rule types defined in Dispatcher can also be used in CBR. For more
information, see “Configure rules-based load balancing” on page 170.
mywebshop.com
(domain)
apps.mywebshop.com
(subdomain)
marketing.apps.mywebshop.com
developer.apps.mywebshop.com
(site names)
Client Internet
server 3 server 4
Note: If you collocate Site Selector on one of the load balanced servers, then you
will need four servers instead of five. However, collocation will impact
the performance of the load balanced servers.
Note: The parameter values must be typed in English characters. The only
exceptions are parameter values for host names and file names.
Note: For Windows platform: Start ssserver (IBM Site Selector) from the
Services panel: Start > Control Panel > Administrative Tools > Services.
2. Start the name server on the Site Selector configuration:
sscontrol nameserver start
3. Configure the site names (marketing.apps.mywebshop.com and
developer.apps.mywebshop.com) on Site Selector:
sscontrol sitename add marketing.apps.mywebshop.com
sscontrol sitename add developer.apps.mywebshop.com
4. Add the servers to the Site Selector configuration. (Configure server1 and
server2 to site name marketing.apps.mywebshop.com. Configure server3 and
server4 to site name developer.apps.myeebshop.com):
sscontrol server add marketing.apps.mywebshop.com:server1+server2
sscontrol server add developer.apps.mywebshop.com:server3+server4
5. Start the manager function of Site Selector:
sscontrol manager start
6. Start the advisor function of Site Selector (HTTP advisor for
marketing.apps.mywebshop.com and FTP advisor for
developer.apps.mywebshop):
sscontrol advisor start http marketing.apps.mywebshop.com:80
sscontrol advisor start ftp developer.apps.mywebshop.com:21
Site Selector will now make sure that client requests are not sent to a failed
server.
7. Ensure the Metric Server has been started on each of the load-balanced servers.
Planning Considerations
Site Selector works in conjunction with a domain name server to load balance
among a group of servers using measurements and weights that are gathered. You
can create a site configuration to let you load balance traffic among a group of
servers based on the domain name used for a client's request.
Limitations: The DNS queries that Site Selector supports are Type A queries only.
Any other query types will result in a return code of NOTIMPL (Not
Implemented). If an entire domain is delegated to Site Selector, ensure that the
domain receives only Type A queries.
com
company Managed by
atlanta boston company’s
DNS servers
Managed by
siteload Site Selector
In order for company's name server to recognize Site Selector as having authority
for the siteload subdomain, a name server entry will need to be added to its
named data file. For example, on AIX systems, a name server entry would look
like the following:
siteload.company.com. IN NS siteselector.company.com.
Refer to Figure 5 on page 12 which illustrates a site in which Site Selector is used
in conjunction with a DNS system to load balance across local and remote servers.
The four key functions of Site Selector (name server, manager, Metric Server, and
advisors) interact to balance and resolve the incoming requests between servers.
TTL considerations
Using DNS-based load balancing requires that caching of name resolutions be
disabled. The TTL (time to live) value determines the effectiveness of DNS-based
load balancing. TTL determines how long another nameserver will cache the
resolved response. Small TTL values allow for subtle changes in the server or
network load to be realized more quickly. However, disabling caching requires that
clients contact the authoritative name server for every name resolution request,
thus potentially increasing the client latency. When choosing a TTL value, careful
consideration should be given to the impact that disabled-caching has on an
environment. Also be aware that DNS-based load balancing is potentially limited
by client-side caching of name resolutions.
TTL can be configured using the sscontrol sitename [add | set] command. See
“sscontrol sitename — configure a sitename” on page 362 for more information.
The Site Selector provides the following network proximity options that can be set
per site name:
v Cache life: The amount of time a proximity response is valid and saved in the
cache.
v Proximity percent: The importance of the proximity response versus the health
of the server (as input from the manager weight).
Network proximity options can be set on the sscontrol sitename [add | set]
command. See Chapter 27, “Command reference for Site Selector,” on page 341 for
more information.
Methods of configuration
To create a basic configuration for the Site Selector component of Load Balancer,
there are four basic methods of configuring the Site Selector component:
v Command line
v Scripts
v Graphical user interface (GUI)
v Configuration wizard
Command line
This is the most direct means of configuring Site Selector. The command parameter
values must be entered in English characters. The only exceptions are host names
(used, for example, in site name and server commands) and file names.
Note: For Windows systems, click Start > Control Panel > Administrative
Tools > Services. Right-click IBM Site Selector and select Start. To stop
the service, follow the same steps and select Stop.
You can enter a minimized version of the sscontrol command parameters. You only
need to enter the unique letters of the parameters. For example, to get help on the
file save command, you can type sscontrol he f instead of sscontrol help file.
Scripts
The commands for configuring Site Selector can be entered into a configuration
script file and run together.
Note: To quickly run the content of a script file (for example, myscript), use either
of the following commands:
v For updating the current configuration, run the executable commands
from your script file using —
sscontrol file appendload myscript
v For completely replacing the current configuration, run the executable
commands from your script file using —
sscontrol file newload myscript
To save the current configuration into a script file (for example, savescript), run the
following command:
sscontrol file save savescript
This command will save the configuration script file in the following directory:
v AIX, HP-UX, Linux, and Solaris operating systems: /opt/ibm/edge/lb/servers/
configurations/ss
v Windows operating systems: <install_root>ibm\edge\lb\servers\
configurations\ss
GUI
For general instructions and an example of the GUI, see Figure 38 on page 403.
In order to configure the Site Selector component from the GUI, you must first
select Site Selector in the tree structure. After you connect to a host running
ssserver, you can create site names containing servers, start the manager, and start
advisors.
The GUI can be used to do anything that you would do with the sscontrol
command. For example, to define a site name using the command line, you would
enter sscontrol sitename add sitename command. To define a site name from the
GUI, right-click Name Server, then in the pop-up menu, left-click Add Site Name.
Enter the site name in the pop-up window, then click OK.
Pre-existing Site Selector configuration files can be loaded using the Load New
Configuration (for completely replacing the current configuration) and Append to
Current Configuration (for updating the current configuration) options presented
in the Host pop-up menu. You should save your Site Selector configuration to a
file periodically using the Save Configuration File As option also presented in the
Host pop-up menu. The File menu located at the top of the GUI will allow you to
save your current host connections to a file or restore connections in existing files
across all the Load Balancer components.
To run a command from the GUI: highlight the Host node from the GUI tree and
select Send command.... from the Host pop-up menu. In the command entry field,
type the command that you want to run, for example: nameserver status. The
results and history of the commands run in the current session appear in the
window provided.
You can access Help by clicking the question mark icon in the upper right corner
of the Load Balancer window.
v Help: Field level — describes each field, default values
v Help: How do I — lists tasks that can be done from that screen
v InfoCenter — provides centralized access to product information
For more information about using the GUI, see Appendix A, “GUI: General
instructions,” on page 403.
Configuration wizard
If you are using the configuration wizard, follow these steps:
1. Start the ssserver on Site Selector:
v Run the following as root use or Administrator:
ssserver
2. Start the wizard function of Site Selector, sswizard.
You can launch this wizard from the command prompt by issuing the
sswizard. Or, select the Configuration Wizard from the Site Selector component
menu as presented in the GUI.
The Site Selector wizard guides you step-by-step through the process of creating a
basic configuration for the Site Selector component. It asks you questions about
your network and guides you as you setup a site name that enables Site Selector to
load balance traffic between a group of servers.
You will need an unresolvable fully qualified hostname to use as a site name for a
group of servers that you set up. The site name is the name that the clients use to
access your site (such as www.yourcompany.com). Site Selector will load-balance
traffic for this site name among the group of servers using DNS.
Optionally, start the Name Server using the bindaddress keyword to bind only to
the specified address.
The site name is an unresolvable host name that the client will request. The site
name must be a fully qualified domain name (for example,
www.dnsdownload.com). When a client requests this site name, one of the server
IP addresses associated with the site name is returned.
For more information, see Chapter 27, “Command reference for Site Selector,” on
page 341.
You must define more than one server under a site name in order to perform load
balancing.
server A
9.17.32.51
server B
9.17.32.52
Client
www.Intersplash.com
Internet Cisco CSS
VIP=9.17.32.59 server C
Switch IP=9.17.32.50
Cisco CSS
VIP = 9.17.32.59 Controller
service A IP=9.17.32.51 9.17.32.53
service B IP = 9.17.32.52
service C IP = 9.17.32.53
SNMP enabled WsConsultant-1
read-write community = Public switch IP=9.17.32.50
read-write community = public
OwnerContent-1
OwnerName-1
Service A IP=9.17.32.51
Service B IP=9.17.32.52
ContentRule-1
contentName-1
Note: The parameter values must be typed in English characters. The only
exceptions are parameter values for host names and file names.
This chapter describes what a network planner should consider before installing
and configuring the Cisco CSS Controller component.
v See Chapter 16, “Configuring Cisco CSS Controller,” on page 113 for information
on configuring the load-balancing parameters of the Cisco CSS Controller
component.
v See Chapter 22, “Advanced features for Cisco CSS Controller and Nortel Alteon
Controller,” on page 197 for information on how to set up Load Balancer for
more advanced functions.
v See Chapter 23, “Operating and managing Load Balancer,” on page 213 for
information on remote authenticated administration, Load Balancer logs, and
usage of the Load Balancer components.
This chapter includes:
v “System requirements”
v “Planning considerations”
– “Placement of the consultant in the network” on page 108
– “High availability” on page 110
– “Calculating weights” on page 110
– “Problem determination” on page 111
System requirements
For hardware and software requirements, refer to the following Web page:
http://www.ibm.com/support/docview.wss?rs=180&uid=swg27006921
Planning considerations
The Cisco CSS Controller manages a set of switch consultants. Each consultant
determines weights for services that are load balanced by a single switch. The
switch for which the consultant provides weights is configured for content load
balancing. The consultant uses the SNMP protocol to send the calculated weights
to the switch. The switch uses the weights to select a service for the content rule it
is load balancing when the load balancing algorithm is weighted round-robin. To
determine weights, the consultant uses one or more of the following pieces of
information:
v Availability and response times, determined through the use of application
advisors that communicate with applications running on the service.
v System load information, determined by retrieving a metric value from metric
server agents running on the service.
See the Cisco Content Services Switch Getting Started Guide for a description of
content load balancing and for detailed information on configuring the switch.
Refer to the Cisco Content Services Switch Getting Started Guide for detailed
information about configuring VLANs and IP routing on the switch.
L2
Switch
clients
Cisco CSS
Controller
L2
Switch
server farm
VLAN-2
You can manage the Cisco CSS Controller using any of the following interfaces:
v A browser
v A GUI (remote or local)
v A command line (remote or local)
clients
intranet
Cisco CSS
Controller
Cisco CSS (optional secondary)
browser, GUI, or Controller
command line (primary)
interface
Figure 24. Example of consultant (with optional high availability partner), configured behind
switch with user interface in front of switch
High availability
Controller high availability enhances the fault tolerance capabilities of Load
Balancer. Designed with packet-forwarding high availability in mind, controller
high availability involves two controllers running simultaneously, one in the
primary role, the other in the secondary role.
Each controller is configured with identical switch information, and only one
controller is active at a time. This means that, as determined by the high
availability logic, only the active controller calculates and updates the switch with
new weights.
Controller high availability communicates with its partner using simple user
datagram protocol (UDP) packets over an address and port that you configure.
These packets are used to exchange information between controllers as it pertains
to high availability (reach information), and to determine partner controller
availability (heartbeats). If the standby controller determines that the active
controller has failed for any reason, the standby controller takes over from the
failed active controller. The standby controller then becomes the active controller,
and begins calculating and updating the switch with new weights.
Calculating weights
If the consultant determines that a service is unavailable, it will suspend that
service on the switch to prevent the switch from considering the server when it
load balances requests. When the service is available again, the consultant activates
the service on the switch so that it is considered for load balancing requests.
In each log, you can set the log size and logging level. See “Using Load Balancer
logs” on page 217 for more information.
Methods of configuration
To create a basic configuration for the Cisco CSS Controller component of Load
Balancer, there are three methods:
v Command line
v XML file
v Graphical user interface (GUI)
Command line
This method is the most direct means of configuring Cisco CSS Controller. The
procedures in this manual assume use of the command line. The command
parameter values must be entered in English characters. The only exceptions are
host names (used, for example, in the consultant add command) and file names.
You can enter an abbreviated version of the ccocontrol command parameters. You
only need to enter the unique letters of the parameters. For example, to get help on
the file save command, you can type ccocontrol he f instead of ccocontrol help
file.
XML
The currently-defined configuration can be saved to an XML file. This enables the
configuration to be loaded at a later time when you want to quickly recreate the
configuration.
To run the content of an XML file (for example, myscript.xml), use either of the
following commands:
v To save the current configuration into an XML file, issue the following
command:
ccocontrol file save XMLFilename
v To load a saved configuration, issue the following command:
ccocontrol file load XMLFileName
Use the load command only if you have previously done a file save.
GUI
For general instructions and an example of the graphical user interface (GUI), see
Figure 38 on page 403.
You can use the GUI to do anything that you would do with the ccocontrol
command. For example:
v To define a consultant using the command line, type ccocontrol consultant add
consultantID address IPAddress community name .
v To define a consultant from the GUI, right-click the Host node, then click Add a
switch consultant. Type the switch address and community name in the pop-up
window, then click OK.
v Use Load Configuration presented in the Host pop-up menu to load
pre-existing Cisco CSS Controller configuration files and to append to the
current configuration.
v Select Save Configuration File As to periodically save your Cisco CSS
Controller configuration to a file.
v Select File from the menu bar to save your current host connections to a file or
to restore connections in existing files across all Load Balancer components.
To access Help click the question mark icon in the upper right corner of the Load
Balancer window.
For more information about using the GUI, see Appendix A, “GUI: General
instructions,” on page 403.
Consultant must be able to connect to the Cisco CSS Switch as a Cisco CSS Switch
administrator.
When configuring the consultant, you must configure the address and SNMP
community name to match the corresponding attributes on the Cisco CSS Switch.
For help with commands used in this procedure, see Chapter 28, “Command
reference for Cisco CSS Controller,” on page 367.
Note: For Windows systems, click Start > Control Panel > Administrative Tools >
Services. Right-click IBM Cisco Controller and select Start.
See Chapter 22, “Advanced features for Cisco CSS Controller and Nortel Alteon
Controller,” on page 197 for detailed information on how to use and configure
controller high availability.
Client
www.Intersplash.com
Internet Nortel Alteon Layer 2
9.87.32.59 Switch Switch
switch IP = 9.87.32.50 Nortel Alteon
virtual server ID = 1 Controller
virtual server IP = 9.87.32.59 9.87.32.53
virtual port = 80
real server 1 IP = 9.87.32.51
real server 2 IP = 9.87.32.52 Consultant-1
SNMP enabled switch IP = 9.87.32.50
read community = Public read community = Public
write community = Private write community = Private
Service-1
virtual server ID = 1
virtual port = 80
real server 1
IP = 9.87.32.51
real server 2
IP = 9.87.32.52
Note: If a Layer 2 Switch is not used, the Nortel Alteon Controller machine and
the Web server machines can be connected directly to ports on Nortel
Alteon Web Switch.
v This configuration example requires five IP addresses:
– An IP address that you provide to clients to access your Web site,
www.Intersplashx.com (9.87.32.59)
– An IP address for an interface configured to the Nortel Alteon Web Switch
(9.87.32.50)
– An IP address for real server 1 (9.87.32.51)
– An IP address for real server 2 (9.87.32.52)
– An IP address for the Nortel Alteon Controller (9.87.32.53)
Note: The parameter values must be typed in English characters. The only
exceptions are parameter values for host names and file names.
This chapter describes what a network planner should consider before installing
and configuring the Nortel Alteon Controller component.
v See Chapter 19, “Configuring Nortel Alteon Controller,” on page 133 for
information on configuring the load-balancing parameters of the Nortel Alteon
Controller component.
v See Chapter 22, “Advanced features for Cisco CSS Controller and Nortel Alteon
Controller,” on page 197 for information on how to configure advisors and
metric servers.
v See Chapter 23, “Operating and managing Load Balancer,” on page 213 for
information on remote authenticated administration, Load Balancer logs, and
usage of the Load Balancer components.
This chapter includes:
v “System requirements”
v “Planning considerations”
– “Placement of the consultant in the network” on page 126
– “Server attributes on the switch (set by the controller)” on page 128
– “Configuring backup servers” on page 128
– “Configuring groups” on page 129
– “High availability” on page 130
– “Tuning” on page 131
– “Problem determination” on page 132
System requirements
For hardware and software requirements, refer to the following Web page:
http://www.ibm.com/support/docview.wss?rs=180&uid=swg27006921
Planning considerations
The Nortel Alteon Controller manages a set of switch consultants. Each consultant
determines weights for servers that are load balanced by a single switch. The
switch for which the consultant provides weights is configured for server load
balancing. The consultant uses the SNMP protocol to send the calculated weights
to the switch. The switch uses the weights to select a server for the service it is
load balancing. To determine weights, the consultant uses one or more of the
following pieces of information:
See your Nortel Alteon Web OS Application Guide for a description of server load
balancing and for detailed information on configuring the switch.
Refer to your Nortel Alteon Web OS Application Guide or Command Reference for
detailed information about configuring VLANs and IP routing on the switch.
L2
Switch
clients
Nortel Alteon
Controller
L2
Switch
server farm
VLAN-2
In Figure 27:
v The consultant is connected to the switch through an intranet in front of the
switch.
v Server load balancing direct access mode must be enabled on the switch to allow
the consultant to communicate with the switch and with the servers.
v With server load balancing direct access mode enabled, any client can send
traffic directly to any server. To limit direct server access to only the consultant,
you can specify load balancing mnet and mmask to the switch. Refer to your
Nortel Alteon Web OS Application Guide or Command Reference for detailed
information on configuring server load balancing and on direct server
interaction.
server farm
clients
intranet
Nortel Alteon
Controller
You can manage the Nortel Alteon Controller using any of the following interfaces:
In Figure 28:
v The consultant is connected behind the switch for which it is providing weights.
v The user interface is running on a remote system in front of the switch.
v The network must be configured so that the user interface is able to
communicate with the controller.
VLAN-1
server farm
clients
intranet
Nortel Alteon
browser, GUI, or Controller
command line
interface
Figure 28. Example of consultant behind switch and user interface in front of switch
If the consultant determines that a server is unavailable, the consultant sets the
server's maximum number of connections to zero to prevent the switch from
considering the server when it load balances requests. When the server is available
again, the maximum number of connections is restored to its original value. The
server maximum connections value corresponds to MIB variable
slbNewCfgRealServerMaxCons.
When a weight is calculated for a real server, the weight is set for the server. The
server weight value corresponds to MIB variable slbNewCfgRealServerWeight.
To avoid idle server resources, it is common practice that servers assigned to one
service be used as backups for servers assigned to a different service. When
implementing a configuration like this, avoid assigning the same real servers to
multiple concurrently-active services. If this occurs, the weight for the server is
overwritten by the consultant for each service in which the server is a part.
Each real server is identified by an integer and has a weight and IP address
attribute. Two real servers might have the same IP address. In this case, two real
servers are associated with the same physical server machine. The real servers
identified as backups should only be configured as backups for a single service. If
the same physical server machines will backup servers assigned to multiple
services, they must be configured once for each service and be given a server
identification that is unique for each service. This allows the backups to have a
unique weight assigned to them for each service they are backing up.
Nortel Alteon
Switch
L2 L2
Switch Switch
virtual server ID=1 virtual server ID=2
virtual port=80 virtual port=80
Real Server ID1 Real Server ID2 Real Server ID3 Real Server ID4
Read Server ID5 Read Server ID6 Read Server ID7 Read Server ID8
IP=9.67.50.1 IP=9.67.50.2 IP=9.67.50.3 IP=9.67.50.4
Configuring groups
Servers on a switch can be configured as part of multiple groups, and groups on
the switch can be configured to service multiple services.
Because it is possible to configure the same server for multiple services, the weight
is calculated for each service in which the server is a part. It is possible, therefore,
for the weight to be incorrect because it is unknown at any time for which service
the weight is intended.
Because of these possibilities, you must ensure that a real server is not assigned to
multiple services that are being load balanced. This does not mean that the same
server machine cannot be servicing requests for multiple services. It means that a
real server with a unique identifier must be configured on the switch for each
service that the server machine will handle requests for.
High availability
Both the Nortel Alteon Controller and the Nortel Alteon Web Switch have high
availability capabilities.
Two or more switches can back each other up when you configure them to act as a
virtual IP interface router (VIR) or as a virtual IP server router (VSR).
One consultant (managed by the controller) provides weights for only one switch.
Because a backup switch might take over for the master, you must configure the
controller with one consultant for each switch that has the possibility of becoming
master. In this way, when a switch becomes master, it is ensured of being provided
with weights.
In addition, when the controllers are connected to a VIR, they are ensured of
communication with the servers, the switches, and the backup controller, should it
lose connectivity to one of the switches.
Refer to your Nortel Alteon Web OS Application Guide for information about high
availability on the switch.
Controller high availability communicates with its partner using simple user
datagram protocol (UDP) packets over an address and port that you configure.
These packets are used to exchange information between controllers as it pertains
to high availability (reach information), and to determine partner controller
availability (heartbeats). If the standby controller determines that the active
controller has failed for any reason, the standby controller takes over from the
failed active controller. The standby controller then becomes the active controller,
and begins calculating and updating the switch with new weights.
In Figure 30:
v Two Nortel Alteon Controllers are connected behind switches.
v One controller is primary and is actively providing the switches with server
weights; the other controller is backup.
v The controllers must have TCP/IP communication for the backup to know when
it should take primary responsibility.
v Two Nortel Alteon Web Switches are configured, as a VIR and a VSR.
v The VIR provides high availability for connections to the servers.
v The VSR provides high availability for access to the virtual servers configured
on the switches.
v One of the switches is master and the other is backup.
v The primary controller is providing weights for both switches.
v The backup controller is sending heartbeats to the primary to determine when to
take over.
Internet
L2 L2
Switch Switch
Figure 30. Example of Nortel Alteon Controller and Nortel Alteon Web Switch high availability
Tuning
To avoid changing weights too often, you can configure the consultant with a
sensitivity threshold. The sensitivity threshold specifies the amount of change that
must take place between the old and new weights before the weight can change.
See “Sensitivity threshold” on page 201 for more information.
If the servers are handling too many monitoring requests from the consultant, you
can modify the metric collectors' sleeptime. See “Weight calculation sleeptimes” on
page 201 for a detailed description.
Problem determination
Cisco CSS Controller posts entries to the following logs:
v server.log
v consultant.log
v highavailability.log
v metriccollector.log
v binary.log
In each log, you can set the log size and logging level. See “Using Load Balancer
logs” on page 217 for more information.
Methods of configuration
To create a basic configuration for the Nortel Alteon Controller component of Load
Balancer, there are three methods:
v Command line
v XML file
v Graphical user interface (GUI)
Command line
This is the most direct means of configuring Nortel Alteon Controller. The
procedures in this manual assume use of the command line.
XML
The currently-defined configuration can be saved to an XML file. This enables the
configuration to be loaded at a later time when you want to quickly recreate the
configuration.
To run the content of an XML file (for example, myscript.xml), use the following
commands:
v To save the current configuration into an XML file, issue the following
command:
nalcontrol file save XMLFilename
Use the load command only if you have previously done a file save.
v To load a saved configuration, issue the following command:
nalcontrol file load XMLFileName
Use the load command only if you have previously done a file save.
GUI
For an example of the graphical user interface (GUI), see Figure 38 on page 403.
You can use the GUI to do anything that you would do with the nalcontrol
command. For example:
v To define a reach target using the command line, type nalcontrol
highavailability usereach address. To define a reach target from the GUI,
right-click High Availability > Add Reach Target.... Type the reach address in the
pop-up window, then click OK.
v Use Load Configuration presented in the Host pop-up menu to append the
configuration stored in a file to the running configuration. If you want to load a
new configuration, you must stop and restart the server before you load the file.
v Right-click the Host node, then select Save Configuration File As to periodically
save your Nortel Alteon Controller configuration to a file.
v Select File from the menu bar to save your current host connections to a file or
to restore connections in existing files across all Load Balancer components.
To access Help, click the question mark icon in the upper right corner of the Load
Balancer window.
v Help: Field level — describes each field, default values
v Help: How do I — lists tasks that can be done from that screen
v InfoCenter — provides centralized access to product information
For more information about using the GUI, see Appendix A, “GUI: General
instructions,” on page 403.
Note: For Windows systems, click Start > Control Panel > Administrative Tools >
Services. Right-click IBM Nortel Alteon Controller and select Start.
When a service is configured, the default metrics are defined as activeconn and
connrate. If you want additional metrics, or if you want metrics that are altogether
different from the defaults, type:
service metrics switchConsultantID:serviceID metricName 50
metricName2 50
SeeChapter 22, “Advanced features for Cisco CSS Controller and Nortel Alteon
Controller,” on page 197 for detailed information on how to use and configure
controller high availability.
Before you do a refresh of the configuration, stop the consultant. After the refresh
command updates the configuration, restart the consultant.
Note: When reading this chapter, if you are not using the Dispatcher component,
then substitute "dscontrol" with the following:
v For CBR, use cbrcontrol
v For Site Selector, use sscontrol (see Chapter 27, “Command reference for
Site Selector,” on page 341)
Table 10. Advanced configuration tasks for Load Balancer
Task Description Related information
Optionally, change load-balancing You can change the following “Optimizing the load balancing
settings load-balancing settings: provided by Load Balancer” on
v Proportion of importance given to status page 142
information
The default ratio is 50-50-0-0. If you use
the default, information from advisors,
Metric Server, and WLM are not used.
v Weights
v Manager fixed weights
v Manager intervals
v Sensitivity threshold
v Smoothing index
Use scripts to generate an alert or Load Balancer provides user exits that “Using scripts to generate an alert
record server failure when trigger scripts that you can customize or record server failure” on page
manager marks server(s) down when the manager marks server(s) down 145
or up or up
Use advisors Describes and lists the advisors, which “Advisors” on page 146
report on specific statuses of your servers
Use HTTP or HTTPS advisor Define a unique client HTTP URL string, “Configuring the HTTP or HTTPS
request and response (URL) specific for a service that you want to advisor using the request and
option query on the machine response (URL) option” on page 152
Use self advisor Provides backend server load status in a “Using Self Advisor in a two-tiered
Load Balancer two-tiered WAN WAN configuration” on page 153
configuration
Create custom advisors Describes how to write your own custom “Create custom (customizable)
advisors advisors” on page 154
Use Metric Server agent Metric Server provides system load “Metric Server” on page 157
information to Load Balancer
Use Workload Manager advisor WLM advisor provides system load “Workload Manager advisor” on
(WLM) information to Load Balancer page 159
Along with the current weight for each server and some other information
required for its calculations, the manager gets the first two values (active and new
connections) from the executor. These values are based on information that is
generated and stored internally in the executor.
Note: For Site Selector, the manager obtains the first two values (CPU and
memory) from Metric Server.
You can change the relative proportion of importance of the four values on a per
cluster (or site name) basis. Think of the proportions as percentages; the sum of the
relative proportions must equal 100%. The default ratio is 50/50/0/0, which
ignores the advisor and system information. In your environment, you may need
to try different proportions to find the combination that gives the best
performance.
When adding the WLM advisor, if the system metric proportion is zero,
then the manager increases this value to 1. Because the sum of the relative
proportions must total 100, the highest value is then decreased by 1.
The number of active connections is dependent upon the number of clients as well
as the length of time necessary to use the services that are being provided by the
load balanced server machines. If the client connections are quick (such as small
Web pages served using HTTP GET), then the number of active connections are
fairly low. If the client connections are slower (such as a database query), then the
number of active connections are higher.
You should avoid setting active and new connections proportions values too low.
You will disable load balancing and smoothing unless you have these first two
values set to at least 20 each.
To set the proportion of importance values use the dscontrol cluster set cluster
proportions command. See “dscontrol cluster — configure clusters” on page 295
for more information.
Weights
Weights are set by the manager function based upon internal counters in the
executor, feedback from the advisors, and feedback from a system-monitoring
program, such as Metric Server. If you want to set weights manually while running
the manager, specify the fixedweight option on the dscontrol server command. For
a description of the fixedweight option, see “Manager fixed weights” on page 144.
Weights are applied to all servers on a port. For any particular port, the requests
are distributed between servers based on their weights relative to each other. For
example, if one server is set to a weight of 10, and the other to 5, the server set to
10 should get twice as many requests as the server set to 5.
To specify the maximum weight boundary that any server can have, use the
dscontrol port set port weightbound weight command. This command affects how
much difference there can be between the number of requests each server will get.
If you set the maximum weightbound to 1, then all the servers can have a weight
of 1, 0 if quiesced, or -1 if marked down. As you increase this number, the
difference in how servers can be weighted is increased. At a maximum
weightbound of 2, one server could get twice as many requests as another. At a
maximum weightbound of 10, one server could get 10 times as many requests as
another. The default maximum weightbound is 20.
If an advisor finds that a server has gone down, it tells the manager, which sets the
weight for the server to zero. As a result, the executor will not send any additional
connections to that server as long as that weight remains zero. If there were any
active connections to that server before the weight changed, they will be left to
complete normally.
If all the servers are down, the manager sets the weights to half the weightbound.
Chapter 20. Manager, Advisors, and Metric Server functions for Dispatcher, CBR, and Site Selector 143
Manager fixed weights
Without the manager, advisors cannot be run and cannot detect if a server is
down. If you choose to run the advisors, but do not want the manager to update
the weight you have set for a particular server, use the fixedweight option on the
dscontrol server command. For example:
dscontrol server set cluster:port:server fixedweight yes
After fixedweight is set to yes, use the dscontrol server set weight command to set
the weight to the value you desire. The server weight value remains fixed while
the manager is running until you issue another dscontrol server command with
fixedweight set to no. For more information, see “dscontrol server — configure
servers” on page 330.
Note: TCP reset applies to all of the Dispatcher's forwarding methods. However, to
use the TCP reset feature, the clientgateway on the dscontrol executor
command must be set to a router address.
A useful feature to configure, in conjunction with TCP reset, is advisor retry. With
this feature, an advisor has the ability to retry a connection before marking a
server down. This would help prevent the advisor from marking the server down
prematurely which could lead to connection-reset problems. That is, just because
the advisor failed on the first attempt does not necessarily mean that the existing
connections are also failing. See “Advisor retry” on page 149 for more information.
Manager intervals
To optimize overall performance, the manager is restricted in how often it can
interact with the executor. You can make changes to this interval by entering the
dscontrol manager interval and dscontrol manager refresh commands.
The manager interval specifies how often the manager will update the server
weights that the executor uses in routing connections. If the manager interval is
too low, it can mean poor performance as a result of the manager constantly
interrupting the executor. If the manager interval is too high, it can mean that the
executor's request routing will not be based on accurate, up-to-date information.
For example, to set the manager interval to 1 second, enter the following
command:
dscontrol manager interval 1
The manager refresh cycle specifies how often the manager will ask the executor
for status information. The refresh cycle is based on the interval time.
For example, to set the manager refresh cycle to 3, enter the following command:
dscontrol manager refresh 3
Sensitivity threshold
Other methods are available for you to optimize load balancing for your servers.
To work at top speed, updates to the weights for the servers are only made if the
weights have changed significantly. Constantly updating the weights when there is
little or no change in the server status would create an unnecessary overhead.
When the percentage weight change for the total weight for all servers on a port is
greater than the sensitivity threshold, the manager updates the weights used by
the executor to distribute connections. Consider, for example, that the total weight
changes from 100 to 105. The change is 5%. With the default sensitivity threshold
of 5, the manager will not update the weights used by the executor, because the
percentage change is not above the threshold. If, however, the total weight changes
from 100 to 106, the manager will update the weights. To set the manager's
sensitivity threshold to a value other than the default (for example, 6), enter the
following command:
dscontrol manager sensitivity 6
Smoothing index
The manager calculates the server weights dynamically. As a result, an updated
weight can be very different from the previous one. Under most circumstances, this
will not be a problem. Occasionally, however, it may cause an oscillating effect in
the way the requests are load balanced. For example, one server can end up
receiving most of the requests due to a high weight. The manager will see that the
server has a high number of active connections and that the server is responding
slowly. It will then shift the weight over to the free servers and the same effect will
occur there too, creating an inefficient use of resources.
To alleviate this problem, the manager uses a smoothing index. The smoothing
index limits the amount that a server's weight can change, effectively smoothing
the change in the distribution of requests. A higher smoothing index will cause the
server weights to change less drastically. A lower index will cause the server
weights to change more drastically. The default value for the smoothing index is
1.5. At 1.5, the server weights can be rather dynamic. An index of 4 or 5 will cause
the weights to be more stable. For example, to set the smoothing index to 4, enter
the following command:
dscontrol manager smoothing 4
Chapter 20. Manager, Advisors, and Metric Server functions for Dispatcher, CBR, and Site Selector 145
In order to run the files, you must move them to the following directory and
remove the "sample" file extension:
v AIX, HP-UX, Linux, and Solaris operating systems: /opt/ibm/edge/lb/servers/bin
v Windows operating systems: <install_root>ibm\edge\lb\servers\bin
The following sample scripts are provided:
v serverDown — a server is marked down by the manager.
v serverUp — a server is marked back up by the manager.
v managerAlert — all servers are marked down for a particular port.
v managerClear — at least one server is now up, after all were marked down for
a particular port.
If all servers on a cluster are marked down (either by the user or by the advisors),
the managerAlert (if configured) starts, and Load Balancer attempts to route traffic
to the servers using a round-robin technique. The serverDown script does not start
when the last server in the cluster is detected as offline.
By design, Load Balancer attempts to continue to route the traffic in case a server
comes back online and responds to the request. If Load Balancer instead dropped
all traffic, the client would receive no response.
When Load Balancer detects that the first server of a cluster is back online, the
managerClear script (if configured) starts, but the serverUp script (if configured) is
not run until an additional server is brought back online.
Advisors
Advisors are agents within Load Balancer. Their purpose is to assess the health
and loading of server machines. They do this with a proactive client-like exchange
with the servers. Advisors can be considered as lightweight clients of the
application servers.
The product provides several protocol-specific advisors for the most popular
protocols. However, it does not make sense to use all of the provided advisors
with every component of Load Balancer. (For instance, you do not use the Telnet
advisor with the CBR component.) Load Balancer also supports the concept of a
“custom advisor” that allows users to write their own advisors.
Advisors then listen for a response from the server. After getting the response, the
advisor makes an assessment of the server. To calculate this “load” value, most
advisors measure the time for the server to respond, and then use this value (in
milliseconds) as the load.
Advisors then report the load value to the manager function, where it appears in
the manager report in the “Port” column. The manager then calculates aggregate
weight values from all its sources, per its proportions, and sets these weight values
into the executor function. The Executor will then use these weights for load
balancing new incoming client connections.
If the advisor determines that a server is alive and well, it will report a positive,
non-zero load number to the Manager. If the advisor determines that a server is
not active, it will return a special load value of negative one (-1). The Manager and
the Executor will not forward any further connections to that server until that
server has come back up.
Note: Before sending the initial request message, the advisor will ping the server.
This is intended to provide quick status to determine if the machine is
online. After the server responds to the ping, no more pings are sent. To
disable the pings, add -DLB_ADV_NO_PING to the Load Balancer start
script file.
Chapter 20. Manager, Advisors, and Metric Server functions for Dispatcher, CBR, and Site Selector 147
(cluster/site specific advisor). For example, if you have Load Balancer defined with
three clusters (clusterA, clusterB, clusterC), each having port 80 you can do the
following:
v Cluster/site specific advisor: To start an advisor on port 80 for clusterA, specify
both the cluster and port:
dscontrol advisor start http clusterA:80
This command will start the HTTP advisor on port 80 for clusterA. The HTTP
advisor will advise on all servers attached to port 80 for clusterA.
v Group advisor: To start a custom advisor on port 80 for all other clusters, simply
specify the port:
dscontrol advisor start ADV_custom 80
This command will start the ADV_custom advisor on port 80 for clusterB and
clusterC. Your custom advisor will advise on all servers attached to port 80 for
clusterB and clusterC. (For more information on custom advisors, see “Create
custom (customizable) advisors” on page 154.)
Note: The group advisor will advise on all clusters/sites that do not currently
have a cluster/site specific advisor.
Using the previous configuration example for the group advisor, you can choose to
stop the custom advisor ADV_custom for port 80 on just one of the clusters or for
both clusters (clusterB and clusterC).
v To stop the custom advisor for port 80 on just clusterB, specify cluster and port:
dscontrol advisor stop ADV_custom clusterB:80
v To stop the custom advisor for port 80 on clusterB and clusterC, specify just the
port:
dscontrol advisor stop ADV_custom 80
Advisor intervals
Note: The advisor defaults should work efficiently for the great majority of
possible scenarios. Be careful when entering values other than the defaults.
The advisor interval sets how often an advisor asks for status from the servers on
the port it is monitoring and then reports the results to the manager. If the advisor
interval is too low, it can mean poor performance as a result of the advisor
constantly interrupting the servers. If the advisor interval is too high, it can mean
that the manager's decisions about weighting will not be based on accurate,
up-to-date information.
For example, to set the interval to 3 seconds for the HTTP advisor for port 80,
enter the following command:
dscontrol advisor interval http 80 3
It does not make sense to specify an advisor interval that is smaller than the
manager interval. The default advisor interval is seven seconds.
For example, to set the advisor report timeout to 30 seconds for the HTTP advisor
for port 80, enter the following command:
dscontrol advisor timeout http 80 30
For more information on setting the advisor report timeout, see “dscontrol advisor
— control the advisor” on page 289.
To obtain the fastest failed-server detection, set the advisor connect and receive
timeouts to the smallest value (one second), and set the advisor and manager
interval time to the smallest value (one second).
For example, to set the connecttimeout and receivetimeout to 9 seconds for the
HTTP advisor on port 80, type the following command:
dscontrol advisor connecttimeout http 80 9
dscontrol advisor receivetimeout http 80 9
The default for connect and receive timeout is 3 times the value specified for the
advisor interval time.
Advisor retry
Advisors have the ability to retry a connection before marking a server down. The
advisor will not mark a server down until the server query has failed the number
of retries plus 1. The retry value should be no larger than 3. The following
command sets a retry value of 2 for the LDAP advisor on port 389:
dscontrol advisor retry ldap 389 2
List of advisors
v The HTTP advisor opens a connection, sends a HEAD request by default, waits
for a response connection, and returns the elapsed time as a load. See
“Configuring the HTTP or HTTPS advisor using the request and response (URL)
option” on page 152 for more information on how to change the type of request
sent by the HTTP advisor.
v The HTTPS advisor is a "heavyweight" advisor for SSL connections. It performs
a full SSL socket connection with the server. The HTTPS advisor opens an SSL
connection, sends an HTTPS request, waits for a response, closes the
connnection, and returns the elapsed time as a load. (See also the SSL advisor,
which is a "lightweight" advisor for SSL connections.)
Chapter 20. Manager, Advisors, and Metric Server functions for Dispatcher, CBR, and Site Selector 149
Note: The HTTPS advisor has no dependency upon server key or certificate
content, but they must not be expired.
v The SIP advisor opens a connection, sends an OPTIONS request, waits for a
response, closes the connection, and returns the elapsed time as a load. The SIP
advisor that is supported runs on TCP only and requires an application to be
installed on a server that responds to an OPTIONS request.
v The FTP advisor opens a connection, sends a SYST request, waits for a response,
closes the connection, and returns the elapsed time as a load.
v The LDAP advisor opens a connection, sends an anonymous BIND request,
waits for a response, closes the connection, and returns the elapsed time as a
load.
Note: Use the LDAPS advisor instead of this advisor if it is possible for your
environment.
v The LDAPS is a secure version of the LDAP advisor. It performs a full SSL
socket connection with the server. The LDAPS advisor opens an SSL connection,
sends an LDAPS request, waits for a response, closes the connnection, and
returns the elapsed time as a load.
v The Telnet advisor opens a connection, waits for an initial message from the
server, closes the connection, and returns the elapsed time as a load.
v The NNTP advisor opens a connection, waits for an initial message from the
server, sends a quit command, closes the connection, and returns the elapsed
time as a load.
v The IMAP advisor opens a connection, waits for an initial message from the
server, sends a quit command, closes the connection, and returns the elapsed
time as a load.
v The POP3 advisor opens a connection, waits for an initial message from the
server, sends a quit command, closes the connection, and returns the elapsed
time as a load.
v The SMTP advisor opens a connection, waits for an initial message from the
server, sends a quit, closes the connection, and returns the elapsed time as a
load.
v The SSL advisor is a "lightweight" advisor for SSL connections. It does not
establish a full SSL socket connection with the server. The SSL advisor opens a
connection, sends an SSL CLIENT_HELLO request, waits for a response, closes
the connection, and returns the elapsed time as a load. (See also the HTTPS
advisor, which is a "heavyweight" advisor for SSL connections.)
Note: When using the Caching Proxy advisor, Caching Proxy needs to be
running on all servers being load balanced. The machine on which the
Load Balancer resides does not need to have Caching Proxy installed
unless it is collocated on the same machine it is load balancing.
v The connect advisor does not exchange any protocol-specific data with the
server. It simply measures the time it takes to open and close a TCP connection
with the server. This advisor is useful for server applications which use TCP, but
with a higher-level protocol for which an IBM-supplied or custom advisor is not
available.
v The DB2 advisor works in conjunction with the DB2 servers. Dispatcher has the
built in capability of checking the health of DB2 servers without the need for
customers to write their own custom advisors. The DB2 advisor communicates
with the DB2 connection port only, not the Java connection port.
v The DNS advisor opens a connection, sends a pointer query for DNS, waits for
a response, closes the connection and returns the elapsed time as a load.
v The ping advisor does not open a TCP connection with the servers, but instead
reports whether the server responds to a ping. While the ping advisor may be
used on any port, it is also designed for configurations using the wildcard port,
over which multiple protocol traffic may be flowing. It is also useful for
configurations using non-TCP protocols with their servers, such as UDP.
Note: If you disable pings in your Load Balancer start script, the ping advisor
will not work.
v The reach advisor pings its target machines. This advisor is also designed for the
Dispatcher's high availability components to determine reachability of its reach
targets. Its results flow to high availability component and do not appear in the
manager report. Unlike the other advisors, the reach advisor starts automatically
by the manager function of the Dispatcher component.
v The self advisor collects load status information on backend servers. You can
use the self advisor when using Dispatcher in a two–tiered configuration, where
the Dispatcher furnishes information from the self advisor to the top-tiered Load
Balancer. The self advisor specifically measures the connections per second rate
on backend servers of the Dispatcher at the executor level. See “Using Self
Advisor in a two-tiered WAN configuration” on page 153 for more information.
v The WLM (Workload Manager) advisor is designed to work in conjunction with
servers on OS/390 mainframes running the MVS™ Workload Manager (WLM)
component. For more information, see “Workload Manager advisor” on page
159.
v Dispatcher provides the ability for a customer to write a custom (customizable)
advisor. This enables support for proprietary protocols (on top of TCP) for
Chapter 20. Manager, Advisors, and Metric Server functions for Dispatcher, CBR, and Site Selector 151
which IBM has not developed a specific advisor. For more information, see
“Create custom (customizable) advisors” on page 154.
v The WAS (WebSphere Application Server) advisor works in conjunction with the
WebSphere Application servers. Customizable sample files for this advisor are
provided in the installation directory. For more information, see “WAS advisor”
on page 155.
After you have started an HTTP or HTTPS advisor, you can define a unique client
HTTP URL string, specific for the service that you want to query on the server.
This allows the advisor to assess the health of the individual services within a
server. You can do this by defining logical servers with unique server names that
have the same physical IP address. See “Server Partitioning: logical servers
configured to one physical server (IP address)” on page 43 for more information.
For each defined logical server under the HTTP port you can specify a unique
client HTTP URL string, specific for the service that you want to query on the
server. The HTTP or HTTPS advisor uses the advisorrequest string to query the
health of the servers. The default value is HEAD / HTTP/1.0. The advisorresponse
string is the response that the advisor scans for in the HTTP response. The advisor
uses the advisorresponse string to compare to the real response that is received
from the server. The default value is null.
When you create the request that the HTTP or HTTPS advisor sends to backend
servers to see if they are functioning, you type the start of the HTTP request and
Load Balancer completes the end of the request with the following:
\r\nAccept:
*/*\r\nUser-Agent:IBM_Load_Balanacer_HTTP_Advisor\r\n\r\n
If you want to add other HTTP header fields before Load Balancer appends this
string to the end of the request, you can do so by including your own \r\n string
in the request. The following is an example of what you might type to add the
HTTP host header field to your request:
GET /pub/WWW/TheProject.html HTTP/1.0 \r\nHost: www.w3.org
Note: After starting an HTTP or HTTPS advisor for a specified HTTP port number,
the advisor request and response value is enabled for servers under that
HTTP port.
Load
Balancer
Dispatcher 1 Dispatcher 2
Self advisor Self advisor
Metric Server Metric Server
Figure 31. Example of a two-tiered WAN configuration using the self advisor
In this example, the self advisor along with Metric Server reside on the two
Dispatcher machines that are being load balanced by the top tier Load Balancer.
The self advisor specifically measures the connections per second rate on backend
servers of the Dispatcher at the executor level.
The self advisor writes the results to the dsloadstat file. Load Balancer also
provides an external metric called dsload. The Metric Server agent on each
Dispatcher machine runs its configuration that calls the external metric dsload. The
dsload script extracts a string from the dsloadstat file and returns it to the Metric
Server agent. Subsequently, each of the Metric Server agents (from each of the
Dispatchers) returns the load status value to the top-tiered Load Balancer for use
in determining which Dispatcher to forward client requests.
See “Configure wide area Dispatcher support” on page 184 for more information
on using Dispatcher in WAN configurations. See “Metric Server” on page 157 for
more information on Metric Server.
Chapter 20. Manager, Advisors, and Metric Server functions for Dispatcher, CBR, and Site Selector 153
Create custom (customizable) advisors
The custom (customizable) advisor is a small piece of Java code, which you
provide as a class file, that gets called by the base code. The base code provides all
administrative services, such as starting and stopping an instance of the custom
advisor, providing status and reports, and recording history information in a log
file. It also reports results to the manager component. Periodically the base code
will perform an advisor cycle, where it individually evaluates all servers in its
configuration. It starts by opening a connection with a server machine. If the
socket opens, the base code will call the “getLoad” method (function) in the
custom advisor. The custom advisor then performs whatever steps are necessary to
evaluate the health of the server. Typically, it will send a user-defined message to
the server and then wait for a response. (Access to the open socket is provided to
the custom advisor.) The base code then closes the socket with the server and
reports the load information to the Manager.
The base code and custom advisor can operate in either normal or replace mode.
Choice of the mode of operation is specified in the custom advisor file as a
parameter in the constructor method.
In normal mode, the custom advisor exchanges data with the server, and the base
advisor code times the exchange and calculates the load value. The base code then
reports this load value to the manager. The custom advisor needs only return a
zero (on success) or negative one (on error). To specify normal mode, the replace
flag in the constructor is set to false.
In replace mode, the base code does not perform any timing measurements. The
custom advisor code performs whatever operations are desired for its unique
requirements, and then returns an actual load number. The base code will accept
the number and report it to the manager. For best results, normalize your load
number between 10 and 1000, with 10 representing a fast server, and 1000
representing a slow server. To specify replace mode, the replace flag in the
constructor is set to true.
With this feature, you can write your own advisors that will provide the precise
information about servers that you need. A sample custom advisor,
ADV_sample.java, is provided with the Load Balancer product.
After installing Load Balancer, you may find the sample code in:
v For AIX, HP-UX, Linux, Solaris systems: /opt/ibm/edge/lb/servers/samples/
CustomAdvisors
v For Windows systems: <install_root>ibm\edge\lb\servers\samples\
CustomAdvisors
Note: If you add a custom advisor to Dispatcher, or any other applicable Load
Balancer component, you must stop and then restart dsserver (or the service
for Windows systems) to enable the Java process to read the new custom
advisor class files. The custom advisor class files are loaded only at startup.
It is not necessary to stop the executor. The executor continues to run even
when dsserver, or the service, has been stopped.
If the custom advisor references additional Java classes, the classpath in the
Load Balancer start script file (dsserver, cbrserver, ssserver) should be
updated to include the location.
Naming Convention
Your custom advisor file name must be in the form “ADV_myadvisor.java.” It must
start with the prefix “ ADV_” in uppercase. All subsequent characters must be in
lowercase letters.
As per Java conventions, the name of the class defined within the file must match
the name of the file. If you copy the sample code, be sure to change all instances of
“ADV_sample” inside the file to your new class name.
Compilation
Custom advisors are written in Java language. Use the Java compiler that is
installed with Load Balancer. These files are referenced during compilation:
v the custom advisor file
v the base classes file, ibmlb.jar, found in the following directory:
– AIX, HP-UX, Linux, and Solaris operating systems: /opt/ibm/edge/lb/servers/
lib
– Windows operating systems: <install_root>ibm\edge\lb\servers\lib
Your class path must point to both the custom advisor file and the base classes file
during the compile.
where:
v Your advisor file is named ADV_fred.java
v Your advisor file is stored in the current directory
Before starting the advisor, copy the class file to the following directory:
v AIX, HP-UX, Linux, and Solaris operating systems: /opt/ibm/edge/lb/servers/lib/
CustomAdvisors
v Windows operating systems: <install_root>ibm\edge\lb\servers\lib\
CustomAdvisors
Note: If you wish, custom advisors may be compiled on one operating system and
run on another. For example, you may compile your advisor on Windows
systems, copy the class file (in binary) to an AIX machine, and run the
custom advisor there.
Chapter 20. Manager, Advisors, and Metric Server functions for Dispatcher, CBR, and Site Selector 155
For AIX, HP-UX, Linux, and Solaris systems, the syntax is similar.
Run
To run the custom advisor, you must first copy the class file to the proper
installation directory:
v AIX, HP-UX, Linux, and Solaris operating systems: /opt/ibm/edge/lb/servers/lib/
CustomAdvisors/ADV_fred.class
v Windows operating systems: <install_root>ibm\edge\lb\servers\lib\
CustomAdvisors\ADV_fred.class
Configure the component, start its manager function, and issue the command to
start your custom advisor:
dscontrol advisor start fred 123
where:
v fred is the name of your advisor, as in ADV_fred.java
v 123 is the port on which your advisor will operate
If the custom advisor references additional Java classes, the classpath in the Load
Balancer start script file (dsserver, cbrserver, ssserver) should be updated to
include the location.
Required routines
Like all advisors, a custom advisor extends the function of the advisor base, called
ADV_Base. It is the advisor base that actually performs most of the advisor's
functions, such as reporting loads back to the manager for use in the manager's
weight algorithm. The advisor base also performs socket connect and close
operations and provides send and receive methods for use by the advisor. The
advisor itself is used only for sending and receiving data to and from the port on
the server being advised. The TCP methods within the advisor base are timed to
calculate the load. A flag within the constructor in the ADV_base overwrites the
existing load with the new load returned from the advisor if desired.
Note: Based on a value set in the constructor, the advisor base supplies the load to
the weight algorithm at specified intervals. If the actual advisor has not
completed so that it can return a valid load, the advisor base uses the
previous load.
Search order
Load Balancer first looks at the list of native advisors that it provides. If it does not
find a given advisor there, Load Balancer then looks at the customer's list of
customized advisors.
Sample advisor
The program listing for a sample advisor is included in “Sample advisor” on page
419. After installation, this sample advisor can be found in the following directory:
v AIX, HP-UX, Linux, and Solaris operating systems: /opt/ibm/edge/lb/servers/lib/
CustomAdvisors
v Windows operating systems: <install_root>ibm\edge\lb\servers\lib\
CustomAdvisors
Metric Server
This feature is available for all the Load Balancer components.
Metric Server provides server load information to the Load Balancer in the form of
system-specific metrics, reporting on the health of the servers. The Load Balancer
manager queries the Metric Server agent residing on each of the servers, assigning
weights to the load balancing process using the metrics gathered from the agents.
The results are also placed into the manager report.
Note: When two or more metrics are gathered and normalized for each server into
a single system load value, rounding errors may occur.
For information on operating Metric Server (starting and stopping) and using
Metric Server logs see “Using the Metric Server component” on page 230.
WLM Restriction
Like the WLM advisor, the Metric Server reports on server systems as a whole,
rather than on individual protocol-specific server daemons. Both WLM and Metric
Server place their results into the system column of the manager report. As a
consequence, running both the WLM advisor and Metric Server at the same time is
not supported.
Prerequisites
The Metric Server agent must be installed and running on all servers that are being
load balanced.
Chapter 20. Manager, Advisors, and Metric Server functions for Dispatcher, CBR, and Site Selector 157
v Load Balancer manager (Load Balancer side)
1. Start dsserver.
2. Issue command: dscontrol manager start manager.log port
port is the RMI port chosen for all the Metric Server agents to run on. The
default RMI port that is set in the metricserver.cmd file is 10004.
3. Issue command: dscontrol metric add cluster:systemMetric
systemMetric is the name of the script (residing on the backend server) which
should run on each of the servers in the configuration under the specified
cluster (or site name). Two scripts are provided for the customer - cpuload
and memload. Or, you can create custom system metric scripts. The script
contains a command which should return a numeric value in the range of
0-100 or a value of -1 if the server is down. This numeric value should
represent a load measurement, not an availability value.
Note: The RMI port value specified must be the same value as the RMI port
value for the Metric Server on the Load Balancer machine.
3. The following two scripts are already provided for the customer: cpuload
(returns the percentage of cpu in use ranging from 0-100) and memload
(returns the percentage of memory in use ranging from 0-100). These scripts
reside in the following directory:
– AIX, HP-UX, Linux, and Solaris operating systems: /opt/ibm/edge/lb/ms/
script
– Windows operating systems: <install_root>ibm\edge\lb\ms\script
Note: A custom metric script must be a valid program or script with a ".bat"
or ".cmd" extension. Specifically, for AIX, HP-UX, Linux, and Solaris
operating systems, scripts must begin with the shell declaration,
otherwise they may not properly run.
4. Start the agent by issuing the metricserver command.
5. To stop the Metric Server agent, issue the metricserver stop command.
To have Metric Server run on an address other than the local host, you need to edit
the metricserver file on the load balanced server machine. After the occurence of
"java" in the metricserver file, insert the following:
-Djava.rmi.server.hostname=OTHER_ADDRESS
In addition, before the "if" statements in the metricserver file, add the following
line: hostname OTHER_ADDRESS.
For Windows platform: You will also need to alias the OTHER_ADDRESS on the
Microsoft stack of the Metric Server machine. For example:
call netsh interface ip add address "Local Area Connection"
addr=9.37.51.28 mask=255.255.240.0
When gathering metrics across different domains, you must explicitly set the
java.rmi.server.hostname in the server script (dsserver, cbrserver, etc) to the fully
qualified domain name (FQDN) of the machine that is requesting the metrics. This
is necessary because, depending on your setup and operating system,
InetAddress.getLocalHost.getHostName() might not return the FQDN.
When MVS Workload Management has been configured on your OS/390 system,
Dispatcher can accept capacity information from WLM and use it in the load
balancing process. Using the WLM advisor, Dispatcher will periodically open
connections through the WLM port on each server in the Dispatcher host table and
accept the capacity integers returned. Because these integers represent the amount
of capacity that is still available and Dispatcher expects values representing the
loads on each machine, the capacity integers are inverted by the advisor and
normalized into load values (that is, a large capacity integer but a small load value
both represent a healthier server). The resulting loads are placed into the System
column of the manager report.
There are several important differences between the WLM advisor and other
Dispatcher advisors:
Chapter 20. Manager, Advisors, and Metric Server functions for Dispatcher, CBR, and Site Selector 159
1. Other advisors open connections to the servers using the same port on which
flows normal client traffic. The WLM advisor opens connections to the servers
using a port different from normal traffic. The WLM agent on each server
machine must be configured to listen on the same port on which the Dispatcher
WLM Advisor is started. The default WLM port is 10007.
2. Other advisors only assess those servers defined in the Dispatcher
cluster:port:server configuration for which the server's port matches the
advisor's port. The WLM advisor advises upon every server in the Dispatcher
configuration (regardless of the cluster:port). Therefore you must not define any
non-WLM servers when using the WLM advisor.
3. Other advisors place their load information into the manager report under its
“Port” column. The WLM advisor places its load information into the manager
report under its system column.
4. It is possible to use both protocol-specific advisors along with the WLM
advisor. The protocol-specific advisors will poll the servers on their normal
traffic ports, and the WLM advisor will poll the system load using the WLM
port.
Note: When reading this chapter, if you are not using the Dispatcher component,
then substitute "dscontrol" with the following:
v For CBR, use cbrcontrol
v For Site Selector, use sscontrol (see Chapter 27, “Command reference for
Site Selector,” on page 341)
Table 11. Advanced configuration tasks for the Load Balancer
Task Description Related information
Collocate Load Balancer on a Set up a collocated Load Balancer “Using collocated servers” on page
machine that it is load balancing machine. 162
Configure high availability or Set up a second Dispatcher machine to “High availability” on page 164
mutual high availability provide a backup.
Configure rules-based load Define conditions under which a subset of “Configure rules-based load
balancing your servers are used. balancing” on page 170
Use port affinity override to Allows a server to override the stickytime “port affinity override” on page 176
provide a mechanism for a server setting on its port.
to override the port sticky feature
Use sticky (affinity) feature to Allows client requests to be directed to the “How affinity feature for Load
configure a cluster's port to be same server. Balancer works” on page 178
sticky
Use cross port affinity to expand Allows client requests received from “Cross port affinity” on page 179
the sticky (affinity) feature across different ports to be directed to the same
ports server.
Use affinity address mask to Allows clients requests received from the “Affinity address mask
designate a common IP subnet same subnet to be directed to the same (stickymask)” on page 179
address server.
Use active cookie affinity to load A rule option that allows a session to “Active cookie affinity” on page 181
balance servers for CBR maintain affinity for a particular server.
Use passive cookie affinity to A rule option that allows a session to “Passive cookie affinity” on page
load balance servers for maintain affinity for a particular server 183
Dispatcher's content-based based on the cookie name/cookie value.
routing and the CBR component
Use URI affinity to load-balance A rule option that allows a session to “URI affinity” on page 184
across Caching Proxy servers maintain affinity for a particular server
with unique content to be cached based on the URI.
on each individual server
Configure wide area Dispatcher Set up a remote Dispatcher to load balance “Configure wide area Dispatcher
support across a wide area network. Or, load support” on page 184
balance across a wide area network
(without a remote Dispatcher) using a
server platform that supports GRE.
Use explicit linking Avoid bypassing the Dispatcher in your “Using explicit linking” on page 190
links.
Note: A collocated server competes for resources with Load Balancer during times
of high traffic. However, in the absence of overloaded machines, using a
collocated server offers a reduction in the total number of machines
necessary to set up a load-balanced site.
Solaris: There is a limitation that you cannot configure WAN advisors when the
entry-point Dispatcher is collocated. See “Using remote advisors with Dispatcher's
wide area support” on page 186.
For Dispatcher's nat or cbr forwarding, you must configure (alias) an unused
adapter address on the NFA. The server should be configured to listen on this
address. Configure the server using the following command syntax:
dscontrol server add cluster:port:new_alias address new_alias router router_ip
returnaddress return_address
Failure to configure for this can lead to system errors, no response from the server,
or both.
Support for collocation when configuring Dispatcher's nat forwarding method can
now be done on the following operating systems if the following steps are
performed on the Dispatcher machine:
v AIX, Linux, and Windows: the collocated server is configured the same as any
server. No changes are necessary to the configuration.
v Solaris and HP-UX: the cluster is aliased using ifconfig as normal; however, the
return address must be arp published instead of aliased. To do this, run the
following command:
arp -s hostname ether_addr pub
using the local MAC address for ether_addr. This enables the local application to
send traffic to the return address in the kernel.
Chapter 21. Advanced features for Dispatcher, CBR, and Site Selector 163
High availability
The high availability function (configurable using dscontrol highavailability
command) is available for the Dispatcher component (but not for the CBR or Site
Selector component).
For a more complete discussion of many of the tasks below, see “Setting up the
Dispatcher machine” on page 50.
1. Create alias script files on each of the 2 Dispatcher machines. See “Using
scripts” on page 167.
2. Start the server on both Dispatcher server machines.
3. Start the executor on both machines.
4. Ensure that the nonforwarding address (NFA) of each Dispatcher machine is
configured, and is a valid IP address for the subnet of the Dispatcher
machines.
5. Add the heartbeat information on both machines:
dscontrol highavailability heartbeat add sourceaddress destinationaddress
At least one heartbeat pair must have the NFAs of the pair as the
source and destination address.
Reach targets are recommended but not required. See “Failure detection
capability using heartbeat and reach target” on page 166 for more information.
7. Add the backup information to each machine:
v For the primary machine:
dscontrol highavailability backup add primary [auto | manual] port
v For the backup machine:
dscontrol highavailability backup add backup [auto | manual] port
v For mutual high availability each Dispatcher machine has both primary and
backup roles:
dscontrol highavailability backup add both [auto | manual] port
Note: Select an unused port on your machines as the port. The port number
entered will be used as a key to ensure the correct host is receiving the
packet.
8. Check the high availability status on each machine:
dscontrol highavailability status
The machines should each have the correct role (backup, primary, or both),
states, and substates. The primary should be active and synchronized; the
backup should be in standby mode and should be synchronized within a
short time. The strategies must be the same.
9. Set up the cluster, port, and server information on both machines.
Note: For mutual high availability configuration (Figure 14 on page 46), for
example, configure the cluster sets shared between the 2 Dispatchers as
follows:
v For Dispatcher 1 issue:
dscontrol cluster set clusterA primaryhost NFAdispatcher1
dscontrol cluster set clusterB primaryhost NFAdispatcher2
Chapter 21. Advanced features for Dispatcher, CBR, and Site Selector 165
v For Dispatcher 2 issue:
dscontrol cluster set clusterB primaryhost NFAdispatcher2
dscontrol cluster set clusterA primaryhost NFAdispatcher1
10. Start the manager and advisors on both machines.
Notes:
1. To configure a single Dispatcher machine to route packets without a backup, do
not issue any of the high availability commands at startup.
2. To convert two Dispatcher machines configured for high availability to one
machine running alone, stop the executor on one of the machines, then delete
the high availability features (the heartbeats, reach, and backup) on the other.
3. In both of the two cases above, you must alias the network interface card with
cluster addresses, as required.
4. When two Dispatcher machines are run in high availability configuration and
are synchronized, enter all dscontrol commands (to update the configuration)
on the standby machine first, and then on the active machine.
5. When running two Dispatcher machines in a high availability configuration,
unexpected results may occur if you set any of the parameters for the executor,
cluster, port, or server (for example, port stickytime) to different values on the
two machines.
6. For mutual high availability, consider the case where one of the Dispatchers
must actively route packets for its primary cluster as well as take over routing
packets for the backup cluster. Ensure this will not exceed your capacity for
throughput on this machine.
7. For Linux systems, when configuring high availability and collocation together
when using the Dispatcher component's MAC port forwarding method, see
“Linux loopback aliasing alternatives when using Load Balancer's mac
forwarding” on page 60.
8. For tips to help alleviate problems that might arise from high availability
configuration problems such as:
v Connections dropped after takeover
v Partner machines unable to synchronize
v Requests erroneously directed to the backup partner machine
See “Problem: Tips on configuring high availability” on page 263.
Heartbeats are sent by the active Dispatcher and are expected to be received by the
standby Dispatcher every half second. If the standby Dispatcher fails to receive a
heartbeat within 2 seconds, a failover begins. All heartbeats must break for a
takeover from the standby Dispatcher to occur. In other words, when two
heartbeat pairs are configured, both heartbeats must break. To stabilize a high
availability environment and to avoid failover, add more than one heartbeat pair.
Note: When you configure the reach target, the reach advisor must also be started.
The reach advisor starts automatically when you start the manager function.
For more information on the reach advisor, see page 151.
Recovery Strategy
Two Dispatcher machines are configured: the primary machine, and a second
machine called the backup. At startup, the primary machine sends all the
connection data to the backup machine until that machine is synchronized. The
primary machine becomes active, that is, it begins load balancing. The backup
machine, meanwhile, monitors the status of the primary machine, and is said to be
in standby state.
If the backup machine at any point detects that the primary machine has failed, it
performs a takeover of the primary machine’s load balancing functions and becomes
the active machine. After the primary machine has once again become operational,
the machines respond according to how the recovery strategy has been configured
by the user. There are two kinds of strategy:
Automatic
The primary machine resumes routing packets as soon as it becomes
operational again.
Manual
The backup machine continues routing packets even after the primary
becomes operational. Manual intervention is required to return the primary
machine to active state and reset the backup machine to standby.
The strategy parameter must be set the same for both machines.
The manual recovery strategy allows you to force the routing of packets to a
particular machine, using the takeover command. Manual recovery is useful when
maintenance is being performed on the other machine. The automatic recovery
strategy is designed for normal unattended operation.
For a mutual high availability configuration, there is no per cluster failure. If any
problem occurs with one machine, even if it affects just one cluster, then the other
machine will take over for both clusters.
Note: During takeover situations, some connection updates may be lost. This may
cause existing long-running connections (such as telnet) that are being
accessed at the time of the takeover to end.
Using scripts
For Dispatcher to route packets, each cluster address must be aliased to a network
interface device.
Chapter 21. Advanced features for Dispatcher, CBR, and Site Selector 167
v In a stand-alone Dispatcher configuration, each cluster address must be aliased
to a network interface card (for example, en0, tr0).
v In a high availability configuration:
– On the active machine, each cluster address must be aliased to a network
interface card (for example, en0, tr0).
– On the standby machine, each cluster address must be aliased to a loopback
device (for example, lo0) only if you are using a MAC forwarding method
with collocated servers.
v In any machine in which the executor has been stopped, all aliases should be
removed to prevent conflicts with another machine that may be started.
For information on aliasing the network interface card, see “Step 5. Alias the
network interface card” on page 53.
Because the Dispatcher machines will change states when a failure is detected, the
commands above must be issued automatically. Dispatcher will run user-created
scripts to do that. Sample scripts can be found in the following directory:
v AIX, HP-UX, Linux, and Solaris operating systems: /opt/ibm/edge/lb/servers/
samples
v Windows operating systems: <install_root>ibm\edge\lb\servers\samples
These scripts must be moved to the following directory in order to run:
v AIX, HP-UX, Linux, and Solaris operating systems: /opt/ibm/edge/lb/servers/bin
v Windows operating systems: <install_root>ibm\edge\lb\servers\bin
The scripts will run automatically only if dsserver is running.
Notes:
1. For a mutual high availability configuration, each “go" script is called by the
Dispatcher with a parameter identifying the primary Dispatcher address. The
script must query this parameter and perform the executor configure
commands for those cluster addresses associated with that primary Dispatcher.
2. In order to configure high availability for Dispatcher's nat forwarding method,
you must add the return addresses to the script files.
On Windows systems: In your configuration setup, if you have Site Selector load
balancing two Dispatcher machines that are operating in a high availability
environment, you will need to add an alias on the Microsoft stack for the metric
servers. This alias should be added to the goActive script. For example:
call netsh interface ip add address "Local Area Connection"
addr=9.37.51.28 mask=255.255.240.0
In the goStandby and goInOp, the alias will need to be removed. For example:
call netsh interface ip delete address "Local Area Connection"
addr=9.37.51.28
If there are multiple NIC's on the machine, then first check which interface you
should use by issuing the following command on the command prompt: netsh
interface ip show address. This command will return a list of currently
configured interfaces and will number the "Local Area Connection" (for example,
"Local Area Connection 2") so you can determine which one you should use.
Chapter 21. Advanced features for Dispatcher, CBR, and Site Selector 169
For those interfaces and configurations where Dispatcher's native IP takeover
function will not work properly, the customer may place appropriate commands in
the go scripts to manually move the addresses. This will ensure that those network
topologies can also benefit from high availability.
In most cases when configuring rules, you should configure a default always true
rule in order to catch any request that is passed by other higher priority rules. This
default can be a "Sorry, the site is currently down, try again later" response when
all other servers fail for the client request.
You should use rules-based load balancing with Dispatcher and Site Selector when
you want to use a subset of your servers for some reason. You must always use
rules for the CBR component.
Rules are evaluated in priority order. In other words, a rule with a priority of 1
(lower number) is evaluated before a rule with a priority of 2 (higher number). The
first rule that is satisfied will be used. When a rule has been satisfied, no further
rules are evaluated.
If a rule has no servers associated with it, the rule only needs to meet condition
one to be satisfied. In this case, Dispatcher will drop the connection request, Site
Selector will return the name server request with an error, and CBR will cause
Caching Proxy to return an error page.
If no rules are satisfied, Dispatcher will select a server from the full set of servers
available on the port, Site Selector will select a server from the full set of servers
available on the site name, and CBR will cause Caching Proxy to return an error
page.
You may want to use rules based on the client IP address if you want to screen the
customers and allocate resources based on where they are coming from.
For example, you notice that your network is getting a lot of unpaid and therefore
unwanted traffic from clients coming from a specific set of IP addresses. You create
a rule using the dscontrol rule command, for example:
dscontrol rule add 9.67.131.153:80:ni type ip
beginrange 9.0.0.0 endrange 9.255.255.255
This "ni" rule screens out any connection from unwanted clients. You would then
add to the rule the servers that you want accessible, or if you do not add any
servers to the rule, requests coming from 9.x.x.x addresses are not served by any of
your servers.
Chapter 21. Advanced features for Dispatcher, CBR, and Site Selector 171
You may want to use rules based on the client port if your clients are using some
kind of software that asks for a specific port from TCP/IP when making requests.
For example, you could create a rule that says that any request with a client port
of 10002 will get to use a set of special fast servers because you know that any
client request with that port is coming from an elite group of customers.
You may want to use rules based on the time of day for capacity planning reasons.
For example, if your Web site gets hit most during the same group of hours every
day, you might want to dedicate five additional servers during the peak time
period.
Another reason you might use a rule based on the time of day is when you want
to take some of the servers down for maintenance every night at midnight, so you
can set up a rule that excludes those servers during the necessary maintenance
period.
You may want to use rules based on the content of the “type of service” (TOS)
field in the IP header. For example, if a client request comes in with one TOS value
that indicates normal service, it can be routed to one set of servers. If a different
client request comes in with a different TOS value that indicates a higher priority
of service, it can be routed to a different set of servers.
The TOS rule allows you to fully configure each bit in the TOS byte using the
dscontrol rule command. For significant bits that you want matched in the TOS
byte, use 0 or 1. Otherwise, the value x is used. The following is an example for
adding a TOS rule:
dscontrol rule add 9.67.131.153:80:tsr type service tos 0xx1010x
You may want to use rules based on connections per second if you need to share
some of your servers with other applications. For example, you can set two rules:
1. If connections per second on port 80 is between 0 and 2000, then use these 2
servers
2. If connections per second on port 80 is greater than 2000, then use these 10
servers
Or you might be using Telnet and want to reserve two of your five servers for
Telnet, except when the connections per second increases above a certain level.
This way, Dispatcher would balance the load across all five servers at peak times.
You may want to use rules based on active connections total on a port if your
servers get overloaded and start throwing packets away. Certain Web servers will
continue to accept connections even though they do not have enough threads to
respond to the request. As a result, the client requests time out and the customer
coming to your Web site is not served. You can use rules based on active
connections to balance capacity within a pool of servers.
For example, you know from experience that your servers will stop serving after
they have accepted 250 connections. You can create a rule using the dscontrol rule
command or the cbrcontrol rule command, for example:
dscontrol rule add 130.40.52.153:80:pool2 type active
beginrange 250 endrange 500
or
You would then add to the rule your current servers plus some additional servers,
which will otherwise be used for other processing.
For bandwidth rules, Dispatcher calculates bandwidth as the rate at which data is
delivered to clients by a specific set of servers. Dispatcher tracks capacity at the
server, rule, port, cluster, and executor levels. For each of these levels, there is a
byte counter field: kilobytes transferred per second. Dispatcher calculates these
rates over a 60 second interval. You can view these rate values from the GUI or
from the output of a command line report.
The begin range and end range are specified in kilobytes per second.
Chapter 21. Advanced features for Dispatcher, CBR, and Site Selector 173
Shared bandwidth rule
Prior to configuring the shared bandwidth rule, you must specify the maximum
amount of bandwidth (kilobytes per second) that can be shared at the executor or
cluster level using dscontrol executor or dscontrol cluster command with the
sharedbandwidth option. The sharebandwidth value should not exceed the total
bandwidth (total network capacity) available. Using the dscontrol command to set
shared bandwidth only provides an upper limit for the rule.
The size for sharedbandwidth is an integer value (kilobytes per second). The
default is zero. If the value is zero, then bandwidth cannot be shared.
Sharing bandwidth at the executor level allows the entire Dispatcher configuration
to share a maximum amount of bandwidth. As long as the bandwidth used at the
executor level is below the specified amount, then this rule will evaluate as true. If
the total bandwidth used is greater than that defined, then this rule will evaluate
as false.
For example: Consider a group of three servers on port 2222. If the reserved
bandwidth is set to 300, then the maximum kbytes per second is 300, over a period
of 60 seconds. When this rate is exceeded, then the rule no longer evaluates as
true. If this were the only rule, then one of the three servers would be selected by
Dispatcher to handle the request. If there were a lower priority "always true" rule,
then the request could be redirected to another server and answered with "site
busy".
The shared bandwidth rule can provide additional server access to clients.
Specifically, when used as a lower priority rule following a reserved bandwidth
rule, a client can still access a server even though the reserved bandwidth has been
exceeded.
Note: Dispatcher tracks bandwidth by measuring client traffic, such as data "acks",
that flow to a server. If for any reason this traffic is not "seen" by Dispatcher,
results are unpredictable when using the bandwidth rules.
For the metric all rule, you choose a system metric (cpuload, memload, or your
own customized system metric script), and Site Selector compares the system
metric value (returned by the Metric Server agent residing in each load-balanced
server) with the begin and end range that you specify in the rule. The current
system metric value for all the servers in the server set must be within the range
for the rule to run.
Note: The system metric script you choose must reside on each of the
load-balanced servers.
For the metric average rule, you choose a system metric (cpuload, memload, or
your own customized system metric script), and Site Selector compares the system
metric value (returned by the Metric Server agent residing in each load-balanced
server) with the begin and end range that you specify in the rule. The average of
the current system metric values for all the servers in the server set must be within
the range for the rule to run.
Note: The system metric script you choose must reside on each of the
load-balanced servers.
Chapter 21. Advanced features for Dispatcher, CBR, and Site Selector 175
A rule may be created that is “always true.” Such a rule will always be selected,
unless all the servers associated with it are down. For this reason, it should
ordinarily be at a lower priority than other rules.
You can even have multiple “always true” rules, each with a set of servers
associated with it. The first true rule with an available server is chosen. For
example, assume you have six servers. You want two of them to handle your
traffic under all circumstances, unless they are both down. If the first two servers
are down, you want a second set of servers to handle the traffic. If all four of these
servers are down, then you will use the final two servers to handle the traffic. You
could set up three “always true” rules. Then the first set of servers will always be
chosen as long as at least one is up. If they are both down, one from the second set
is chosen, and so forth.
As another example, you may want an “always true” rule to ensure that if
incoming clients do not match any of the rules you have set, they will not be
served. You would create a rule using the dscontrol rule command like:
dscontrol rule add 130.40.52.153:80:jamais type true priority 100
Then you would not add any servers to the rule, causing the clients packets to be
dropped with no response.
Note: You do not need to set a beginrange or endrange when creating an always
true rule.
You can define more than one “always true” rule, and thereafter adjust which one
gets run by changing their priority levels.
You will want to use content type rules to send requests to sets of servers
specifically set up to handle some subset of your site's traffic. For example, you
may want to use one set of servers to handle all cgi-bin requests, another set to
handle all streaming audio requests, and a third set to handle all other requests.
You would add one rule with a pattern that matches the path to your cgi-bin
directory, another that matches the file type of your streaming audio files, and a
third always true rule to handle the rest of the traffic. You would then add the
appropriate servers to each of the rules.
Important: For examples and scenarios on how to use the content rule and valid
pattern syntax for the content rule, see Appendix B, “Content rule (pattern)
syntax,” on page 409.
It is a two–step process: add the rule, then define which servers to serve to if the
rule is true. For example, our system administrator wanted to track how much use
the proxy servers were getting from each division on site. IP addresses are given to
each division. Create the first set of rules based on client IP address to separate
each division's load:
dscontrol rule add 130.40.52.153:80:div1 type ip b 9.1.0.0 e 9.1.255.255
dscontrol rule add 130.40.52.153:80:div2 type ip b 9.2.0.0 e 9.2.255.255
dscontrol rule add 130.40.52.153:80:div3 type ip b 9.3.0.0 e 9.3.255.255
Next, add a different server to each rule, then measure the load on each of the
servers in order to bill the division properly to the services they are using. For
example:
dscontrol rule useserver 130.40.52.153:80:div1 207.72.33.45
dscontrol rule useserver 130.40.52.153:80:div2 207.72.33.63
dscontrol rule useserver 130.40.52.153:80:div3 207.72.33.47
On the dscontrol rule command there is a server evaluation option for rules. Use
the evaluate option to choose to evaluate the rule's condition across all the servers
on the port or to evaluate the rule's condition across just the servers within the
rule. (In earlier versions of Load Balancer, you could only measure each rule's
condition across all servers on the port.)
Notes:
1. The server evaluation option is only valid for rules that make their decisions
based upon the characteristics of the servers: total connections (per second)
rule, active connections rule, and reserved bandwidth rule.
2. The "connection" type rule has an additional evaluate option to choose —
upserversonrule. See “Using rules based on the connections per second” on
page 172 for more information.
The following are examples of adding or setting the evaluate option on a reserved
bandwidth rule:
dscontrol rule add 9.22.21.3:80:rbweval type reservedbandwidth evaluate level
dscontrol rule set 9.22.21.3:80:rbweval evaluate level
The evaluate level can be set to either port, rule, or upserversonrule. The default is
port.
Chapter 21. Advanced features for Dispatcher, CBR, and Site Selector 177
v The second rule is an always true rule that contains a single server that responds
with a “site busy" type response.
The result is that when traffic exceeds the threshold of the servers within the first
rule, traffic is sent to the “site busy" server within the second rule. When traffic
falls below the threshold of the servers within the first rule, new traffic continues
once again to the servers in the first rule.
The first rule measures all server traffic (including the “site busy" server) on the
port to determine whether the traffic exceeds the threshold. As congestion
decreases for the servers associated to the first rule, an unintentional result may
occur where traffic continues to the “site busy" server because traffic on the port
still exceeds the threshold of the first rule.
If you are enabling cross port affinity, stickytime values of the shared ports must
be the same (nonzero) value. See “Cross port affinity” on page 179 for more
information.
For the Site Selector component: You enable the affinity feature when you
configure a sitename to be sticky. Configuring a sitename to be sticky allows the
client to use the same server for multiple name service requests. This is done by
setting stickytime on the sitename to some number of seconds. The feature is
disabled by setting stickytime to zero.
A sticky time value for a server is the interval between the closing of one
connection and the opening of a new connection during which time a client is sent
back to the same server used during the first connection. After the sticky time
expires, the client can be sent to a server different from the first. The sticky time
value for a server is configured using the dscontrol executor, port, or cluster
commands.
The server down command (dscontrol server down) is used to bring a server
offline The server is not taken down until after the stickytime value expires.
Cross port affinity is the sticky feature that has been expanded to cover multiple
ports. For example, if a client request is first received on one port and the next
request is received on another port, cross port affinity allows the dispatcher to
send the client request to the same server. In order to use this feature, the ports
must:
v share the same cluster address
v share the same servers
v have the same (nonzero) stickytime value
v have the same stickymask value
More than one port can link to the same crossport. When subsequent connections
come in from the same client on the same port or a shared port, the same server
will be accessed. The following is an example of configuring multiple ports with a
cross port affinity to port 10:
dscontrol port set cluster:20 crossport 10
dscontrol port set cluster:30 crossport 10
dscontrol port set cluster:40 crossport 10
After cross port affinity has been established, you have the flexibility to modify the
stickytime value for the port. However, it is recommended that you change the
stickytime values for all shared ports to the same value, otherwise unexpected
results may occur.
To remove the cross port affinity, set the crossport value back to its own port
number. See “dscontrol port — configure ports” on page 319, for detailed
information on command syntax for the crossport option.
Affinity address mask is a sticky feature enhancement to group clients based upon
common subnet addresses. Specifying stickymask on the dscontrol port command
allows you to mask the common high-order bits of the 32-bit IP address. If this
feature is configured, when a client request first makes a connection to the port, all
subsequent requests from clients with the same subnet address (represented by
that part of the address which is being masked) will be directed to the same server.
Chapter 21. Advanced features for Dispatcher, CBR, and Site Selector 179
For example, if you want all incoming client requests with the same network Class
A address to be directed to the same server, you set the stickymask value to 8
(bits) for the port. To group client requests with the same network Class B address,
set the stickymask value to 16 (bits). To group client requests with the same
network Class C address, set the stickymask value to 24 (bits).
For best results, set the stickymask value when first starting the Load Balancer. If
you change the stickymask value dynamically, results will be unpredictable.
Interaction with cross port affinity: If you are enabling cross port affinity,
stickymask values of the shared ports must be the same. See “Cross port affinity”
on page 179 for more information.
To enable affinity address mask, issue an dscontrol port command similar to the
following:
dscontrol port set cluster:port stickytime 10 stickymask 8
Possible stickymask values are 8, 16, 24 and 32. A value of 8 specifies the first 8
high-order bits of the IP address (network Class A address) will be masked. A
value of 16 specifies the first 16 high-order bits of the IP address (network Class B
address) will be masked. A value of 24 specifies the first 24 high-order bits of the
IP address (network Class C address) will be masked. If you specify a value of 32,
you are masking the entire IP address which effectively disables the affinity
address mask feature. The default value of stickymask is 32.
See “dscontrol port — configure ports” on page 319, for detailed information on
command syntax for stickymask (affinity address mask feature).
To remove a server from the Load Balancer configuration for any reason (updates,
upgrades, service, and so forth), you can use the dscontrol manager quiesce
command. The quiesce subcommand allows existing connections to complete
(without being severed) and forwards only subsequent new connections from the
client to the quiesced server if the connection is designated as sticky and
stickytime has not expired. The quiesce subcommand disallows any other new
connections to the server.
The now option determines how sticky connections will be handled as follows:
v If you do not specify “now," you allow existing connections to complete and
forward subsequent new connections to the quiesced server from those clients
with existing connections that are designated as sticky, as long as the quiesced
server receives the new request before stickytime expires. (However, if you have
not enabled the sticky (affinity) feature, the quiesced server cannot receive any
new connections.)
Affinity option on the rule based on the content of the client request
You can specify the following types of affinity on the dscontrol rule command:
v Active cookie — enables load-balancing Web traffic with affinity to the same
server based upon cookies generated by Load Balancer.
Active cookie affinity only applies to the CBR component.
v Passive cookie — enables load-balancing Web traffic with affinity to the same
server based upon self-identifying cookies generated by the servers. In
conjunction with passive cookie affinity, you must also specify the cookiename
parameter on the rule command.
Passive cookie applies to the CBR component and to Dispatcher component's cbr
forwarding method.
v URI — enables load-balancing Web traffic to caching-proxy servers in a manner
that effectively increases the capacity of the cache.
URI affinity applies to the CBR component and to Dispatcher component's cbr
forwarding method.
The default for the affinity option is "none." The stickytime option on the port
command must be zero (not enabled) in order to set the affinity option on the rule
command to active cookie, passive cookie, or URI. When affinity is set on the rule,
you cannot enable stickytime on the port.
When a rule has been enabled for active cookie affinity, new client requests are
load-balanced using standard CBR algorithms, while succeeding requests from the
same client are sent to the initially chosen server. The chosen server is stored as a
cookie in the response to the client. As long as the client's future requests contains
the cookie, and each request arrives within the stickytime interval, the client will
maintain affinity with the initial server.
Active cookie affinity is used to ensure that a client continues to be load balanced
to the same server for some period of time. This is accomplished by sending a
cookie to be stored by the clients browser. The cookie contains the cluster:port:rule
that was used to make the decision, the server that was load balanced to, and a
timeout timestamp for when the affinity is no longer valid. The cookie is in the
Chapter 21. Advanced features for Dispatcher, CBR, and Site Selector 181
following format: IBMCBR=cluster:port:rule+server-time! The cluster:port:rule and
server information are encoded so the CBR configuration is not revealed.
This new cookie is then inserted in the headers that go back to the client, and if
the client's browser is configured to accept cookies, it will send back subsequent
requests.
Each affinity instance in the cookie is 65 bytes in length and end at the exclamation
mark. As a result, a 4096 byte cookie can hold approximately 60 individual active
cookie rules per domain. If the cookie fills up completely, then all expired affinity
instances are purged. If all instances are still valid, then the oldest one is dropped,
and the new instances for the current rule is added.
Note: CBR will replace any occurrences of old format IBMCBR cookies as they
appear in the proxy.
The active cookie affinity option, for the rule command, can only be set to
activecookie if port stickytime is zero (not enabled). When active cookie affinity is
active on a rule then you cannot enable stickytime on the port.
On AIX, Solaris and Linux systems, the cbrserver file is located in /usr/bin
directory.
Passive cookie affinity provides a way to make clients sticky to a particular server.
When you enable the affinity of a rule to "passivecookie", passive cookie affinity
allows you to load-balance Web traffic with affinity to the same server, based on
self-identifying cookies generated by the servers. You configure passive cookie
affinity at the rule level.
When the rule fires, if passive cookie affinity is enabled, Load Balancer will choose
the server based on the cookie name in the HTTP header of the client request.
Load Balancer begins to compare the cookie name from the client's HTTP header
to the configured cookie value for each server.
The first time Load Balancer finds a server whose cookie value contains the client's
cookie name, Load Balancer chooses that server for the request.
Note: Load Balancer provides this flexibility in order to handle cases where the
server might generate a cookie value that has a static part appended with a
variable part. For example, the server's cookie value might be the server
name (a static value) appended with a timestamp (a variable value).
If the cookie name in the client request is not found or does not match any of the
content within the servers' cookie values, the server is chosen using existing server
selection or the weighted round-robin technique.
Chapter 21. Advanced features for Dispatcher, CBR, and Site Selector 183
URI affinity
URI affinity applies to Dispatcher's cbr forwarding method and the CBR
component. See “Dispatcher's content-based routing (cbr forwarding method)” on
page 41 for information on how to configure the cbr forwarding method.
URI affinity allows you to load-balance Web traffic to Caching Proxy servers which
allow unique content to be cached on each individual server. As a result, you will
effectively increase the capacity of your site's cache by eliminating redundant
caching of content on multiple machines. Configure URI affinity at the rule level.
After the rule fires, if URI affinity is enabled and the same set of servers are up
and responding, then Load Balancer will forward new incoming client requests
with the same URI to the same server.
Typically, Load Balancer can distribute requests to multiple servers that serve
identical content. When using Load Balancer with a group of caching servers,
frequently accessed content eventually becomes cached on all the servers. This
supports a very high client load by replicating identical cached content on multiple
machines. This is particularly useful for high volume Web sites.
However, if your Web site supports a moderate volume of client traffic to very
diverse content, and you prefer to have a larger cache spread across multiple
servers, your site would perform better if each caching server contained unique
content and Load Balancer distributed the request only to the caching server with
that content.
With URI affinity, Load Balancer allows you to distribute the cached content to
individual servers, eliminating redundant caching of content on multiple machines.
Performance for diverse-content server sites using Caching Proxy servers is
improved with this enhancement. It will send identical requests to the same server,
thereby caching content on single servers only. And, the effective size of the cache
will grow larger with each new server machine added to the pool.
If you are not using the Dispatcher's wide area support and not using Dispatcher's
nat forwarding method, a Dispatcher configuration requires that the Dispatcher
machine and its servers all be attached to the same LAN segment (see Figure 32 on
page 185). A client's request comes into the Dispatcher machine and is sent to the
server. From the server, the response is sent directly back to the client.
Client Router
The wide area Dispatcher feature adds support for offsite servers, known as remote
servers (see Figure 33). If GRE is not supported at the remote site and if
Dispatcher's nat forwarding method is not being used, then the remote site must
consist of a remote Dispatcher machine (Dispatcher 2) and its locally attached
servers (ServerG, ServerH, and ServerI). A client's packet will go from the Internet
to the initial Dispatcher machine. From the initial Dispatcher machine, the packet
will then go to a geographically remote Dispatcher machine and one of its locally
attached servers.
All the Dispatcher machines (local and remote) must be on the same type of
operating system and platform in order to run wide area configurations.
This allows one cluster address to support all worldwide client requests while
distributing the load to servers around the world.
The Dispatcher machine initially receiving the packet can still have local servers
attached to it, and it can distribute the load between its local servers and the
remote servers.
Command Syntax
To configure wide area support :
1. Add the servers. When you add a server to a Dispatcher, you must define
whether the server is local or remote (see above). To add a server and define it
as local, issue the dscontrol server add command without specifying a router.
This is the default. To define the server as remote, you must specify the router
through which Dispatcher must send the packet in order to reach the remote
server. The server must be another Dispatcher and the server's address must be
Chapter 21. Advanced features for Dispatcher, CBR, and Site Selector 185
the nonforwarding address of the Dispatcher. For example, in Figure 34 on page
187, if you are adding LB 2 as a remote server under LB 1, you must define
router 1 as the router address. General syntax:
dscontrol server add cluster:port:server router address
For more information on the router keyword, see “dscontrol server — configure
servers” on page 330.
2. Configure aliases. On the first Dispatcher machine (where the client request
arrives from the Internet), the cluster address must be aliased using the
executor configure command. (For Linux or UNIX systems, you can use the
executor configure or ifconfig command.) On the remote Dispatcher machines,
however, the cluster address is not aliased to a network interface card.
On remote Dispatchers: Perform the following configuration steps for each remote
cluster address. For a high-availability configuration at the remote Dispatcher
location, you must perform these steps on both machines.
AIX systems
v Dispatcher must have each cluster configured on the interface with a netmask
255.255.255.255 in order for the advisors to work properly. Use one of the
following syntax formats for configuring a cluster:
– ifconfig interface_name alias cluster_address netmask 255.255.255.255.
For example,
ifconfig en0 alias 10.10.10.99 netmask 255.255.255.255
– dscontrol executor configure interface_address interface_name netmask.
For example,
dscontrol executor configure 204.67.172.72 en0 255.255.255.255
Note: Advisors running on both the local and remote Dispatcher machines are
necessary.
Figure 34. Wide area example configuration with remote Load Balancers
Here is how to configure the Dispatcher machines to support cluster address xebec
on port 80. LB1 is defined as the “entry-point” Load Balancer. An Ethernet
connection is assumed. Note that LB1 has five servers defined: three local
(ServerA, ServerB, ServerC) and two remote (LB2 and LB3). Remotes LB2 and LB3
each have three local servers defined.
Chapter 21. Advanced features for Dispatcher, CBR, and Site Selector 187
dscontrol executor configure xebec
Notes
1. On all servers (A-I), alias the cluster address to the loopback.
2. Clusters and ports are added with dscontrol on all participating Dispatcher
machines: the entry-point Dispatcher and all remotes.
3. See “Using remote advisors with Dispatcher's wide area support” on page 186
for help with using remote advisors with wide area support.
4. Wide area support prohibits infinite routing loops. (If a Dispatcher machine
receives a packet from another Dispatcher, it will not forward it to a third
Dispatcher.) Wide area supports only one level of remotes.
5. Wide area supports UDP and TCP.
6. Wide area works along with high availability: Each Dispatcher may be backed
up by an adjacent standby machine (on the same LAN segment).
7. The Manager and Advisors work with wide area, and, if used, should be
started on all participating Dispatcher machines.
8. Load Balancer supports WAN only on like operating systems.
Load Balancer implements GRE as part of its WAN feature. This allows Load
Balancer to provide wide area load balancing directly to any server systems that
can unwrap the GRE packets. Load Balancer does not need to be installed at the
remote site if the remote servers support the encapsulated GRE packets. Load
Balancer encapsulates WAN packets with the GRE key field set to decimal value
3735928559.
Figure 35. Wide area example configuration with server platform that supports GRE
For this example (Figure 35), to add remote ServerD, which supports GRE, define it
within your Load Balancer configuration as if you are defining a WAN server in
the cluster:port:server hierarchy:
To configure each Linux backend server, issue the following commands as root.
(These commands may be added to the system's startup facility so that changes are
preserved across reboots.)
# modprobe ip_gre
# ip tunnel add gre-nd mode gre ikey 3735928559
# ip link set gre-nd up
# ip addr add cluster address dev gre-nd
Note: The Linux server configured using these instructions must not be on the
same physical segment as the entry-point Load Balancer. This is because the
Chapter 21. Advanced features for Dispatcher, CBR, and Site Selector 189
Linux server will respond to "ARP who-has" requests for the cluster address,
causing a race condition leading to a possible "short-circuit" in which all
traffic to the cluster address is directed only to the winner of the ARP-race.
If your pages specify links that point to individual servers for your site, you are in
effect forcing a client to go to a specific machine, thus bypassing any load
balancing function that might otherwise be in effect. For this reason, always use
the address of Dispatcher in any links contained in your pages. Note that the kind
of addressing used may not always be apparent, if your site uses automated
programming that dynamically creates HTML. To maximize your load-balancing,
you should be aware of any explicit addressing and avoid it where possible.
For AIX systems, this configuration can also take advantage of the fast speeds of
the SP High Performance Switch if you are running Dispatcher and the TCP server
machines on nodes in an SP Frame.
To create a private network, each machine must have at least two LAN cards, with
one of the cards connected to the private network. You must also configure the
second LAN card on a different subnet. The Dispatcher machine will then send the
client requests to the TCP server machines through the private network.
The servers added using the dscontrol server add command must be added using
the private network addresses; for example, referring to the Apple server example
in Figure 36 on page 191, the command should be coded as:
not
If you are using Site Selector to provide load information to Dispatcher, you must
configure Site Selector to report loads on the private addresses.
The “wildcard” refers to the cluster's ability to match multiple IP addresses (that is,
acts as a wildcard). Cluster address 0.0.0.0 is used to specify a wildcard cluster.
You must still explicitly configure each cluster address on one of the network
adapters of your Dispatcher workstation. You should not add any of the cluster
addresses to the Dispatcher configuration using the dscontrol cluster add
command however.
Add only the wildcard cluster (address 0.0.0.0), and configure the ports and
servers as required for load balancing. Any traffic to any of the adapter configured
addresses is load balanced using the wildcard cluster configuration.
An advantage of this approach is that traffic to all the cluster addresses is taken
into account when determining the best server to go to. If one cluster is getting a
lot of traffic, and it has created many active connections on one of the servers,
traffic to other cluster addresses is load balanced using this information.
You can combine the wildcard cluster with actual clusters if you have some cluster
addresses with unique port/server configurations, and some with common
configurations. The unique configurations must each be assigned to an actual
cluster address. All common configurations can be assigned to the wildcard cluster.
Chapter 21. Advanced features for Dispatcher, CBR, and Site Selector 191
The wildcard cluster can be used to load balance traffic to addresses that are not
explicitly configured on any network adapter of the Dispatcher workstation. In
order for this to work, the Dispatcher must at least be able to see all the traffic it is
to load balance. The dispatcher workstation will not see traffic to addresses that
have not been explicitly configured on one of its network adapters unless it is set
up as the default route for some set of traffic.
After Dispatcher has been configured as a default route, any TCP or UDP traffic
through the Dispatcher machine is load balanced using the wildcard cluster
configuration.
One application of this is to load balance firewalls. Because firewalls can process
packets for any destination address and any destination port, you need to be able
to load balance traffic independent of the destination address and port.
Firewalls are used to handle traffic from non-secure clients to secure servers, and
the responses from the secure servers, as well as traffic from clients on the secure
side to servers on the non-secure side, and the responses.
You must set up two Dispatcher machines, one to load balance non-secure traffic to
the non-secure firewall addresses and one to load balance secure traffic to the
secure firewall addresses. Because both of these Dispatchers must use the wildcard
cluster and wildcard port with different sets of server addresses, the two
Dispatchers must be on two separate workstations.
To enable this feature, you must start Caching Proxy listening for client requests on
port 80. You then configure a wildcard cluster (0.0.0.0). In the wildcard cluster, you
configure port 80. In port 80, you configure the NFA of the Dispatcher machine as
the only server. Now any client traffic to any address on port 80 is delivered to the
Caching Proxy server running on the Dispatcher workstation. The client request
will then be proxied as usual, and the response is sent back from Caching Proxy to
the client. In this mode, the Dispatcher component is not performing any load
balancing.
If the wildcard port and the FTP port on the same cluster do not have the same
server set, then high port applications (port >1023) may fail when a client has an
existing FTP control connection. Therefore, configuring different server sets for the
FTP and wildcard ports on the same cluster is not recommended. If this scenario is
desired, the FTP daemon passive port range must be configured in the Load
Balancer configuration.
Dispatcher provides the ability to detect potential "denial of service" attacks and
notify administrators by an alert. Dispatcher does this by analyzing incoming
requests for a conspicuous amount of half-open TCP connections on servers, a
common trait of simple denial of service attacks. In a denial of service attack, a site
receives a large quantity of fabricated SYN packets from a large number of source
IP addresses and source port numbers, but the site receives no subsequent packets
for those TCP connections. This results in a large number of half-opened TCP
connections on the servers, and over time the servers can become very slow,
accepting no new incoming connections.
Note: There must be incoming traffic through the cluster and port that are under
attack for Dispatcher to determine the end of a denial of service attack.
Dispatcher is unable to detect that the attack stops until traffic begins to
flow again.
Load Balancer provides user exits that trigger scripts which you can customize that
alert the Administrator to a possible denial of service attack. Dispatcher provides
sample script files in the following directory:
v AIX, HP-UX, Linux, and Solaris operating systems: /opt/ibm/edge/lb/servers/
samples
v Windows operating systems: <install_root>ibm\edge\lb\servers\samples
The following scripts are available:
v halfOpenAlert — a probable denial of service (DoS) attack has been detected
v halfOpenAlertDone — the DoS attack has finished
In order to run the files, you must move them to the following directory and
remove the ".sample" file extension:
v AIX, HP-UX, Linux, and Solaris operating systems: /opt/ibm/edge/lb/servers/bin
v Windows operating systems: <install_root>ibm\edge\lb\servers\bin
To implement the DoS attack detection, set the maxhalfopen parameter on the
dscontrol port command as follows:
dscontrol port set 127.40.56.1:80 maxhalfopen 1000
Chapter 21. Advanced features for Dispatcher, CBR, and Site Selector 193
In the above example, Dispatcher will compare the current total number of
half-open connections (for all servers residing on cluster 127.40.56.1 on port 80)
with the threshold value of 1000 (specified by the maxhalfopen parameter). If the
current half-open connections exceeds the threshold, then a call to an alert script
(halfOpenAlert) is made. When the number of half-open connections drops below
the threshold, a call to another alert script (halfOpenAlertDone) is made to indicate
that the attack is over.
To provide additional protection from denial of service attacks for backend servers,
you can configure wildcard clusters and ports. Specifically, under each configured
cluster add a wildcard port with no servers. Also add a wildcard cluster with a
wildcard port and no servers. This will have the effect of discarding all packets
which are not addressed to a non-wildcard cluster and port. For information on
wildcard clusters and wildcard ports, see “Use wildcard cluster to combine server
configurations” on page 191 and “Use wildcard port to direct unconfigured port
traffic” on page 192.
The binary logging feature allows server information to be stored in binary files.
These files can then be processed to analyze the server information that has been
gathered over time.
The following information is stored in the binary log for each server defined in the
configuration.
v cluster address
v port number
v serverID
v server address
v server weight
v server total connections
v server active connections
Some of this information is retrieved from the executor as part of the manager
cycle. Therefore the manager must be running in order for the information to be
logged to the binary logs.
The start option starts logging server information to binary logs in the logs
directory. One log is created at the start of every hour with the date and time as
the name of the file.
The stop option stops logging server information to the binary logs. The log
service is stopped by default.
The set interval option controls how often information is written to the logs. The
manager will send server information to the log server every manager interval.
The information is written to the logs only if the specified log interval seconds
have elapsed since the last record was written to the log. By default, the log
interval is set to 60 seconds. There is some interaction between the settings of the
manger interval and the log interval. Since the log server is provided with
information no faster than manager interval seconds setting the log interval less
than the manager interval effectively sets it to the same as the manager interval.
This logging technique allows you to capture server information at any granularity.
You can capture all changes to server information that are seen by the manager for
calculating server weights. However, this amount of information is probably not
required to analyze server usage and trends. Logging server information every 60
seconds gives you snapshots of server information over time. Setting the log
interval very low can generate huge amounts of data.
The set retention option controls how long log files are kept. Log files older than
the retention hours specified are deleted by the log server. This will only occur if
the log server is being called by the manager, so stopping the manager will cause
old log files not to be deleted.
The status option returns the current settings of the log service. These settings are
whether the service is started, what the interval is, and what the retention hours
are.
A sample Java program and command file have been provided in the following
directory:
v AIX, HP-UX, Linux, and Solaris operating systems: /opt/ibm/edge/lb/samples/
BinaryLog
v Windows operating systems: <install_root>ibm\edge\lb\samples\BinaryLog
Chapter 21. Advanced features for Dispatcher, CBR, and Site Selector 195
This sample shows how to retrieve all the information from the log files and print
it to the screen. It can be customized to do any type of analysis you want with the
data. An example using the supplied script and program for the dispatcher would
be:
dslogreport 2001/05/01 8:00 2001/05/01 17:00
Note: In this chapter xxxcontrol denotes ccocontrol for Cisco CSS Controller and
nalcontrol for Nortel Alteon Controller.
Collocation
Cisco CSS Controller or Nortel Alteon Controller can reside on the same machine
as a server for which you are load balancing requests. This is commonly referred
to as collocating a server. No additional configuration steps are required.
Note: A collocated server competes for resources with Load Balancer during times
of high traffic. However, in the absence of overloaded machines, using a
collocated server offers a reduction in the total number of machines
necessary to set up a load-balanced site.
High availability
The high availability feature is now available for Cisco CSS Controller and Nortel
Alteon Controller.
To improve controller fault tolerance, the high availability function contains these
features:
v Heartbeat mechanism to determine availability of partner controllers. Heartbeats
are exchanged between addresses configured on the xxxcontrol highavailability
add command. You can configure the interval during which beats are exchanged
and the interval during which a controller takes over from its partner.
v A list of reach targets that each controller must be able to reach to calculate
weights and update the switch. See “Failure detection” on page 199 for more
information.
v Logic to elect the active controller based on availability and reach information.
v Configurable takeover strategy used in determining how a controller takes over
from its partner.
v Manual takeover mechanism for maintenance on active controllers.
v Reports that display current controller role, state, synchronization, and so forth.
The address and partneraddress parameters are reversed on the primary and
secondary machines.
5. Optionally, configure high availability parameters on the local and partner
controllers; for example:
xxxcontrol highavailability set beatinterval 1000
6. Optionally, configure reach targets on local and partner controllers as follows:
xxxcontrol highavailability usereach 10.20.20.20
The same number of reach targets must be configured on the local and partner
controllers.
7. Start the high availability component and define recovery strategy on local and
partner controllers as follows:
xxxcontrol highavailability start auto
8. Optionally, display high availability information on local and partner
controllers as follows:
xxxcontrol highavailability report
9. Optionally, specify takeover on standby controller to take over from active
controller as follows:
xxxcontrol highavailability takeover
When you configure controller high availability, you can provide a list of hosts that
each of the controllers must reach to work correctly. There must be at least one
host for each subnet that your controller machine uses. These hosts can be routers,
IP servers, or other host types.
Host reachability is obtained by the reach advisor, which pings the host.
Switchover takes place if the heartbeat messages cannot go through, or if the
reachability criteria are better met by the standby controller than by the active
controller. To make this decision based on all available information, the active
controller regularly sends the standby controller its reachability capabilities and
vice versa. The controllers then compare their reachability information with their
partner's information and decide who should be active.
Recovery strategy
The roles of the two controller machines are configured as primary and secondary.
At startup the controllers exchange information until each machine is
synchronized. At this point, the primary controller moves to the active state and
begins calculating weights and updating the switch, while the secondary machine
moves to standby state and monitors the availability of the primary machine.
At any point if the standby machine detects that the active machine has failed, the
standby machine performs a takeover of the active (failed) machine's
load-balancing functions and becomes the active machine. When the primary
machine is again operational, the two machines determine which controller will be
active according to how recovery strategy is configured.
Automatic recovery
The primary controller moves to the active state, calculating and updating weights,
as soon as it becomes operational again. The secondary machine moves to standby
after the primary is active.
Manual recovery
The active secondary controller remains in active state, even after the primary
controller is operational.
The primary controller moves to standby state and requires manual intervention to
move to the active state.
The strategy parameter must be set the same for both machines.
Examples
For Cisco CSS Controller high availability configuration examples, see “Examples”
on page 377.
Chapter 22. Advanced features for Cisco CSS Controller and Nortel Alteon Controller 199
Optimizing the load balancing provided by Load Balancer
The controller function of Load Balancer performs load balancing based on the
following settings:
v “Importance given to metric information”
v “Weights”
v “Weight calculation sleeptimes” on page 201
v “Advisor sleeptimes” on page 202
v “Sensitivity threshold” on page 201
You can change these settings to optimize load balancing for your network.
You can change the relative proportion of importance of the metric values. Think
of the proportions as percentages; the sum of the relative proportions must equal
100%. By default, the active connections and new connections metrics are used and
their proportions are set to 50/50. In your environment, you might need to try
different metric proportion combinations to find the combination that gives the
best performance.
Weights
Weights are set based upon application response time and availability, feedback
from the advisors, and feedback from a system-monitoring program, such as
Metric Server. If you want to set weights manually, specify the fixedweight option
for the server. For a description of the fixedweight option, see “Controller fixed
weights” on page 201.
Weights are applied to all servers providing a service. For any particular service,
the requests are distributed between servers based on their weights relative to each
If an advisor finds that a server has gone down, the weight for the server is set to
-1. For Cisco CSS Controller and Nortel Alteon Controller the switch is informed
that the server is not available and the switch stops assigning connections to the
server.
Use the fixedweight command to set the weight to the value you desire. The
server weight value remains fixed while the controller is running until you issue
another command with fixedweight set to no.
The consultant sleeptime specifies how often the consultant updates the server
weights. If the consultant sleeptime is too low, it can mean poor performance as a
result of the consultant constantly interrupting the switch. If the consultant
sleeptime is too high, it can mean that the switch's load balancing is not based on
accurate, up-to-date information.
Sensitivity threshold
Other methods are available for you to optimize load balancing for your servers.
To work at top speed, updates to the weights for the servers are only made if the
weights have changed significantly. Constantly updating the weights when there is
little or no change in the server status would create an unnecessary overhead.
When the percentage weight change for the total weight for all servers providing a
service is greater than the sensitivity threshold, the weights used by the load
balancer to distribute connections are updated. Consider, for example, that the total
weight changes from 100 to 105. The change is 5%. With the default sensitivity
threshold of 5, the weights used by the load balancer are not updated, because the
percentage change is not above the threshold. If, however, the total weight changes
from 100 to 106, the weights are updated. To set the consultant's sensitivity
threshold to a value other than the default, enter the following command:
xxxcontrol consultant set consultantID sensitivity percentageChange
Advisors
Advisors are agents within Load Balancer. Their purpose is to assess the health
and load of server machines. They do this with a proactive client-like exchange
with the servers. Consider advisors as lightweight clients of the application
servers.
Chapter 22. Advanced features for Cisco CSS Controller and Nortel Alteon Controller 201
Note: For a detailed list of advisors, see “List of advisors” on page 149.
Advisors then listen for a response from the server. After getting the response, the
advisor makes an assessment of the server. To calculate this load value, most
advisors measure the time for the server to respond, then use this value (in
milliseconds) as the load.
Advisors then report the load value to the consultant function, where it appears in
the consultant report. The consultant then calculates aggregate weight values from
all its sources, per its proportions, and sends these weight values to the switch.
The switch uses these weights for load balancing new incoming client connections.
If the advisor determines that a server is alive and well, it reports a positive,
non-zero load number to the consultant. If the advisor determines that a server is
not active, it returns a special load value of negative one (-1) to inform the switch
that the server is down. Subsequently, the switch does not forward any further
connections to that server until the server has come back up.
Advisor sleeptimes
Note: The advisor defaults work efficiently for the great majority of possible
scenarios. Use caution when entering values other than the defaults.
The advisor sleeptime sets how often an advisor asks for status from the servers
on the port it is monitoring and then reports the results to the consultant. If the
advisor sleeptime is too low, it can result in poor performance because the advisor
constantly interrupts the servers. If the advisor sleeptime is too high, it can mean
that the consultant's weighting decisions are not based on accurate, up-to-date
information.
For example, to set the interval to 3 seconds for the HTTP advisor, type the
following command:
xxxcontrol metriccollector set consultantID:HTTP sleeptime 3
To obtain the fastest failed-server detection, set the advisor connect and receive
timeouts to the smallest value (one second), and set the advisor and consultant
sleeptime to the smallest value (one second).
The default for connect and receive timeout is 3 times the value specified for the
advisor sleeptime.
Advisor retry
Advisors have the ability to retry a connection before marking a server down. The
advisor will not mark a server down until the server query has failed the number
of retries plus 1. If not set the retry value defaults to zero.
For the Cisco CSS Controller, set the retry value using ccocontrol ownercontent set
command. For more information, see “ccocontrol ownercontent — control the
owner name and content rule” on page 380.
For the Nortel Alteon Controller, set the retry value using nalcontrol service set
command. For more information, see “nalcontrol service — configure a service” on
page 400.
The custom (customizable) advisor is a small piece of Java code that you provide
as a class file, and is called by the base code. The base code provides all
administrative services, such as:
v Starting and stopping an instance of the custom advisor
v Providing status and reports
v Recording history information in a log file
It also reports results to the consultant. Periodically the base code performs an
advisor cycle, where it individually evaluates all servers in its configuration. It
starts by opening a connection with a server machine. If the socket opens, the base
code calls the getLoad method (function) in the custom advisor. The custom
advisor then performs the necessary steps to evaluate the health of the server.
Typically, it sends a user-defined message to the server and then waits for a
response. (Access to the open socket is provided to the custom advisor.) The base
code then closes the socket with the server and reports the load information to the
consultant.
The base code and custom advisor can operate in either normal or replace mode.
Choice of the mode of operation is specified in the custom advisor file as a
parameter in the constructor method.
In normal mode, the custom advisor exchanges data with the server, and the base
advisor code times the exchange and calculates the load value. The base code then
reports this load value to the consultant. The custom advisor needs only return a
zero (on success) or negative one (on error). To specify normal mode, the replace
flag in the constructor is set to false.
In replace mode, the base code does not perform any timing measurements. The
custom advisor code performs whatever operations are desired for its unique
Chapter 22. Advanced features for Cisco CSS Controller and Nortel Alteon Controller 203
requirements, and then returns an actual load number. The base code will accept
the number and report it to the consultant. For best results, normalize your load
number between 10 and 1000, with 10 representing a fast server, and 1000
representing a slow server. To specify replace mode, the replace flag in the
constructor is set to true.
With this feature, you can write your own advisors to provide the precise
information about servers that you need. A sample custom advisor,
ADV_ctlrsample.java, is provided for the controllers. After installing Load
Balancer, you can find the sample code in:
v AIX, HP-UX, Linux, and Solaris operating systems: /opt/ibm/edge/lb/servers/
samples/CustomAdvisors
v Windows systems: <install_root>ibm\edge\lb\servers\samples\CustomAdvisors
Note: If you add a custom advisor to Cisco CSS Controller or Nortel Alteon
Controller, you must stop and then restart ccoserver or nalserver (for
Windows systems, use Services) to enable the Java process to read the new
custom advisor class files. The custom advisor class files are loaded only at
startup.
Naming Convention
Your custom advisor file name must be in the form ADV_myadvisor.java. It must
start with the prefix ADV_ in uppercase. All subsequent characters must be
lowercase letters.
As per Java conventions, the name of the class defined within the file must match
the name of the file. If you copy the sample code, be sure to change all instances of
ADV_ctrlsample inside the file to your new class name.
Compilation
Custom advisors are written in Java language. Use the Java compiler that is
installed with Load Balancer. The following files are referenced during compilation:
v The custom advisor file
v The base classes file, ibmlb.jar, found in the following directory:
– AIX, HP-UX, Linux, and Solaris operating systems: /opt/ibm/edge/lb/servers/
lib
– Windows operating systems: <install_root>ibm\edge\lb\servers\lib
Your classpath must point to both the custom advisor file and the base classes file
during the compile.
where:
v Your advisor file is named ADV_pam.java
v Your advisor file is stored in the current directory
Before starting the advisor, copy the class file to the following directory:
Note: If you want, custom advisors can be compiled on one operating system and
run on another. For example, you can compile your advisor on Windows
systems, copy the class file (in binary) to an AIX machine, and run the
custom advisor there.
For AIX, HP-UX, Linux , and Solaris systems, the syntax is similar.
Run
To run the custom advisor, you must first copy the class file to the proper
installation directory:
v AIX, HP-UX, Linux, and Solaris operating systems: /opt/ibm/edge/lb/servers/lib/
CustomAdvisors/ADV_pam.class
v Windows operating systems: <install_root>ibm\edge\lb\servers\lib\
CustomAdvisors\ADV_pam.class
Start the consultant, then issue this command to start your custom advisor:
For Cisco CSS Controller
ccocontrol ownercontent metrics consultantID:ownerContentID pam 100
For Nortel Alteon Controller
nalcontrol service metrics consultantID:serviceID pam 100
where:
v pam is the name of your advisor, as in ADV_pam.java
v 100 is the proportion of weight given to this advisor
Required routines
Like all advisors, a custom advisor extends the function of the advisor base, called
ADV_Base. It is the advisor base that actually performs most of the advisor's
functions, such as reporting loads back to the consultant for use in the consultant's
weight algorithm. The advisor base also performs socket connect and close
operations and provides send and receive methods for use by the advisor. The
advisor itself is used only for sending and receiving data to and from the port on
the server being advised. The TCP methods within the advisor base are timed to
calculate the load. A flag within the constructor in the ADV_base overwrites the
existing load with the new load returned from the advisor if desired.
Note: Based on a value set in the constructor, the advisor base supplies the load to
the weight algorithm at specified intervals. If the actual advisor has not
completed so that it can return a valid load, the advisor base uses the
previous load.
Chapter 22. Advanced features for Cisco CSS Controller and Nortel Alteon Controller 205
v A getLoad routine. The base advisor class performs the open socket; therefore
getLoad needs only to issue the appropriate send and receive requests to
complete the advise cycle.
Search order
The controllers first look at the provided list of native advisors; if they do not find
a given advisor there, they look at the list of custom advisors.
Sample advisor
The program listing for a controller sample advisor is included in “Sample
advisor” on page 419. After installation, this sample advisor can be found in the
following directory:
v AIX, HP-UX, Linux, and Solaris operating systems: /opt/ibm/edge/lb/servers/lib/
CustomAdvisors
v Windows operating systems: <install_root>ibm\edge\lb\servers\lib\
CustomAdvisors
Metric Server
Metric Server provides server load information to the Load Balancer in the form of
system-specific metrics, reporting on the health of the servers. The Load Balancer
consultant queries the Metric Server agent residing on each of the servers,
assigning weights to the load balancing process using the metrics gathered from
the agents. The results are also placed into the service report for Cisco CSS
Controller or the server report for Nortel Alteon Controller.
Prerequisites
The Metric Server agent must be installed and running on all servers that are being
load balanced.
Chapter 22. Advanced features for Cisco CSS Controller and Nortel Alteon Controller 207
Note: The RMI port value specified must be the same value as the RMI port
value for the Metric Server on the controller machine.
3. The following two scripts are provided: cpuload (returns the percentage of
cpu in use ranging from 0-100) and memload (returns the percentage of
memory in use ranging from 0-100). These scripts reside in the following
directory:
– For UNIX and Linux based operating systems, the directory is
/opt/ibm/edge/lb/ms/script.
– For Windows systems, the directory is <install_root>ibm\edge\lb\ms\
script.
Optionally, you can write your own customized metric script files that define
the command that the Metric Server will issue on the server machines.
Ensure that any custom scripts are executable and located in the following
directory:
– For UNIX and Linux based operating systems, the directory is
/opt/ibm/edge/lb/ms/script.
– For Windows systems, the directory is <install_root>ibm\edge\lb\ms\
script.
Custom scripts must return a numeric load value.
Note: A custom metric script must be a valid program or script with a .bat
or .cmd extension. Specifically, for AIX, HP-UX, Linux, and Solaris
operating systems, scripts must begin with the shell declaration;
otherwise, they might not properly run.
4. Start the agent by issuing the metricserver command.
5. To stop the Metric Server agent, type metricserver stop.
To have Metric Server run on an address other than the local host, edit the
metricserver file on the load-balanced server machine. After java in the
metricserver file, insert the following:
-Djava.rmi.server.hostname=OTHER_ADDRESS
In addition, before the "if" statements in the metricserver file, add this: hostname
OTHER_ADDRESS.
For Windows systems: Alias the OTHER_ADDRESS on the Microsoft stack. To alias
an address on the Microsoft stack, see the section on aliasing an address on the
Microsoft stack for a metric server.
When MVS Workload Management has been configured on your OS/390 system,
the controllers can accept capacity information from WLM and use it in the load
balancing process. Using the WLM advisor, the controllers periodically open
connections through the WLM port on each server in the consultant host table and
accept the capacity integers returned. Because these integers represent the amount
of capacity that is still available and the consultants expects values representing the
loads on each machine, the capacity integers are inverted by the advisor and
normalized into load values (for example, a large capacity integer but a small load
The following information is stored in the binary log for each server defined in the
configuration.
v parent (ownercontentID for Cisco CSS Controller; serviceID for Nortel Alteon
Controller)
v server ID
v server address
v server port
v server weight
v number of metrics configured for this server
v list of metric values
Use the xxxcontrol consultant binarylog command set to configure binary logging.
v binarylog start
v binarylog stop
v binarylog report
v binarylog set interval <seconds>
v binarylog set retention <hours>
The start option starts logging server information to binary logs in the logs
directory. One log is created at the start of every hour with the date and time as
the name of the file.
The stop option stops logging server information to the binary logs. The log
service is stopped by default.
The set interval option controls how often information is written to the logs. The
consultant sends server information to the log server every consultant interval. The
information is written to the logs only if the specified log interval seconds have
elapsed since the last record was written to the log. By default, the log interval is
set to 60 seconds.
Chapter 22. Advanced features for Cisco CSS Controller and Nortel Alteon Controller 209
There is some interaction between the settings of the consultant interval and the
log interval. Because the log server is provided with information no faster than the
consultant interval seconds, setting the log interval less than the consultant interval
effectively sets it to the same as the consultant interval.
This logging technique allows you to capture server information at any granularity.
You can capture all changes to server information that are seen by the consultant
for calculating server weights; however, this amount of information is probably not
required to analyze server usage and trends. Logging server information every 60
seconds gives you snapshots of server information over time. Setting the log
interval very low can generate huge amounts of data.
The set retention option controls how long log files are kept. Log files older than
the retention hours specified are deleted by the log server. This occurs only if the
log server is being called by the consultant, so if you stop the consultant, old log
files are not deleted.
A sample Java program and command file are provided in the following directory:
v AIX, HP-UX, Linux, and Solaris operating systems: /opt/ibm/edge/lb/servers/
samples/BinaryLog
v Windows operating systems: <install_root>ibm\edge\lb\servers\samples\
BinaryLog
This sample shows how to retrieve all the information from the log files and print
it to the screen. It can be customized to do any type of analysis you want with the
data.
This produces a report of the controller's server information from 8:00 AM to 5:00
PM on May 1, 2002.
The following sample scripts are provided, where xxx is cco for Cisco CSS
Controller, and nal for Nortel Alteon Controller:
v xxxserverdown — a server is marked down by the controller.
v xxxserverUp — a server is marked back up by the controller.
v xxxallserversdown — all servers are marked down for a particular service.
This chapter explains how to operate and manage Load Balancer and includes the
following sections:
v “Remote administration of Load Balancer”
– “Remote Method Invocation (RMI)”
– “Web-based administration” on page 215
v “Using Load Balancer logs” on page 217
– “For Dispatcher, CBR, and Site Selector” on page 217
– “For Cisco CSS Controller and Nortel Alteon Controller” on page 218
v “Using the Dispatcher component” on page 219
– “Using Simple Network Management Protocol with the Dispatcher
component” on page 221
v “Using the Content Based Routing component” on page 228
v “Using the Site Selector component” on page 228
v “Using the Cisco CSS Controller component” on page 229
v “Using the Nortel Alteon Controller component” on page 229
Use the following command to generate public and private keys to be used for
remote authentication:
lbkeys [create|delete]
This command runs only on the same machine as the Load Balancer.
Using the create option creates a private key in the servers key directory:
v AIX, HP-UX, Linux, and Solaris operating systems: /opt/ibm/edge/lb/servers/key
v Windows operating systems: <install_root>ibm\edge\lb\servers\key
The script also creates public keys in the administration keys directory for each of
the Load Balancer components:
v AIX, HP-UX, Linux, and Solaris operating systems: /opt/ibm/edge/lb/admin/keys
v Windows operating systems: <install_root>ibm\edge\lb\admin\keys
The file name for the public key is: component-ServerAddress-RMIport. These public
keys must then be transported to the remote clients and placed in the
administration keys directory.
For a Load Balancer machine with hostname address 10.0.0.25 using the default
RMI port for each component, the lbkeys create command generates the following
files:
v The private key:
– AIX, HP-UX, Linux, and Solaris operating systems: /opt/ibm/edge/lb/servers/
key/authorization.key
– Windows operating systems: <install_root>ibm\edge\lb\servers\key\
authorization.key
v The public keys:
– AIX, HP-UX, Linux, and Solaris operating systems:
- /opt/ibm/edge/lb/admin/keys/dispatcher-10.0.0.25-10099.key
- /opt/ibm/edge/lb/admin/keys/cbr-10.0.0.25-11099.key
- /opt/ibm/edge/lb/admin/keys/ss-10.0.0.25-12099.key
- /opt/ibm/edge/lb/admin/keys/cco-10.0.0.25-13099.key
- /opt/ibm/edge/lb/admin/keys/nal-10.0.0.25-14099.key
– Windows operating systems:
- <install_root>ibm\edge\lb\admin\keys\dispatcher-10.0.0.25-10099.key
- <install_root>ibm\edge\lb\admin\keys\cbr-10.0.0.25-11099.key
- <install_root>ibm\edge\lb\admin\keys\ss-10.0.0.25-12099.key
- <install_root>ibm\edge\lb\admin\keys\cco-10.0.0.25-13099.key
- <install_root>ibm\edge\lb\admin\keys\nal-10.0.0.25-14099.key
The administration fileset has been installed on another machine. The public key
files must be placed in the following directory on the remote client machine:
v AIX, HP-UX, Linux, and Solaris operating systems: /opt/ibm/edge/lb/admin/keys
The remote client will now be authorized to configure Load Balancer on 10.0.0.25.
These same keys must be used on all remote clients that you want to authorize to
configure Load Balancer on 10.0.0.25.
If you were to run the lbkeys create command again, a new set of public/private
keys would be generated. This would mean that all remote clients who tried to
connect using the previous keys would not be authorized. The new key would
have to be placed in the correct directory on those clients you want to reauthorize.
The lbkeys delete command deletes the private and public keys on the server
machine. If these keys are deleted, no remote clients will be authorized to connect
to the servers.
For both lbkeys create and lbkeys delete there is a force option. The force option
suppresses the command prompts that ask if you wish to overwrite or delete the
existing keys.
After you establish the RMI connection, you can communicate between the
configuration programs using dscontrol, cbrcontrol, sscontrol, ccocontrol,
nalcontrol, dswizard, cbrwizard, and sswizard commands from a command
prompt. You can also configure Load Balancer using the GUI by typing lbadmin
from a command prompt.
Note: Due to changes to security packages in the Java version, Load Balancer keys
generated for releases prior to v5.1.1 may not be compatible with the keys
for the current release, so you must regenerate your keys when you install a
new release.
Web-based administration
Requirements
To use Web-based administration, the following is required on the client machine
that performs remote administration:
v JRE 1.3.0 (or higher)
v For information on supported browsers, refer to the following Web page:
http://www.ibm.com/support/docview.wss?rs=180&uid=swg27006921
Note: If you are using Netscape, do not resize (Minimize, Maximize, Restore
Down, and so on) the Netscape browser window in which the Load
Balancer GUI appears. Because Netscape reloads a page every time
browser windows are resized, this will cause a disconnect from the host
to occur. You will need to reconnect to the host each time you resize the
window.
The following is required on the host machine that you are accessing in order to
perform remote Web-based administration:
v Caching Proxy V6
v Perl 5.5 (or higher)
Note: On HP-UX systems, the lbwebaccess.pl script assumes the Perl binary is
located in the /usr/bin/ directory. (The first line of the script contains
#!/usr/bin/perl.) Update this directory path to wherever the Perl
application is located. Another option is to create a symbolic link. For
example, if Perl is installed at /opt/perl/bin/perl, run the command:
ln -s /opt/perl/bin/perl /usr/bin/perl
The userID and password to the host machine that you are accessing remotely is
also required. The userID and password are the same as the Caching Proxy
administration userID and password.
Where host_name is the name of the machine you are accessing in order to
communicate with Load Balancer.
When the Web page is loaded, the Load Balancer GUI will appear in the browser
window for you to perform remote Web-based administration.
From the Load Balancer GUI, you can also issue configuration control commands.
In order to issue a command from the GUI:
1. highlight the Host node from the GUI tree
2. select Send command... from the Host pop-up menu
Note: Additionally, for the Dispatcher component only, entries can be made to a
subagent (SNMP) log.
Note: The Content Based Routing (CBR) component is not available on platforms
that run a 64-bit JVM, except for HP-UX ia64. On HP-UX ia64, the CBR
component runs as a 32-bit application. You can use the CBR forwarding
method of Load Balancer's Dispatcher component to provide content-based
routing without the use of Caching Proxy. See “Dispatcher's content-based
routing (cbr forwarding method)” on page 41 for more information.
You can set the logging level to define the expansiveness of the messages written
to the log. At level 0, errors are logged and Load Balancer also logs headers and
records of events that happen only once (for example, a message about an advisor
starting to be written to the manager log). Level 1 includes ongoing information,
and so on, with level 5 including every message produced to aid in debugging a
problem if necessary. The default for the manager, advisor, server, or subagent logs
is 1.
AIX, HP-UX, Linux , and Solaris systems: The dsserver script is found in /usr/bin
directory. In this script, the variable lb_logdir is set to the default directory. You can
modify this variable to specify your log directory. Example:
LB_LOGDIR=/path/to/my/logs/
set LB_LOGDIR=c:\path\to\my\logs\
For all operating systems, make sure that there are no spaces on either side of the
equal sign and that the path ends in a slash ("/" or "\" as appropriate).
Binary logging
Note: Binary logging does not apply to the Site Selector component.
The binary logging feature of Load Balancer uses the same log directory as the
other log files. See “Using binary logging to analyze server statistics” on page 194.
You can also set the maximum size of a log. When you set a maximum size for the
log file, the file will wrap; when the file reaches the specified size, the subsequent
entries will be written at the top of the file, overwriting the previous log entries.
You cannot set the log size to a value that is smaller than the current one. Log
entries are timestamped so you can tell the order in which they were written.
The higher you set the log level, the more carefully you should choose the log size.
At level 0, it is probably safe to leave the log size to the default of 1MB; however,
when logging at level 3 and above, you should limit the size without making it too
small to be useful.
Controller logs
Cisco CSS Controller and Nortel Alteon Controller have logs as follows:
v controller log (controller set command)
v consultant log (consultant set command)
v highavailability log (highavailability set command)
v metriccollector log (metriccollector set command)
v binary log (consultant binarylog command)
The following is an example of configuring the logging level and maximum log
size for the metric monitor log that logs communication with Metric Server agents:
xxxcontrol metriccollector set consultantID:serviceID:metricName
loglevel x logsize y
AIX, HP-UX, Linux , and Solaris systems: The xxxserver script is found in
/usr/bin directory. In this script, the variable xxx_logdir is set to the default
directory. You can modify this variable to specify your log directory. Example:
xxx_LOGDIR=/path/to/my/logs/
set xxx_LOGDIR=c:\path\to\my\logs\
For all operating systems, make sure that there are no spaces on either side of the
equal sign and that the path ends in a slash ("/" or "\" as appropriate).
Binary logging
The binary logging feature of Load Balancer uses the same log directory as the
other log files. See “Using binary logging to analyze server statistics” on page 194.
At the port level, for example, you can specify the stale timeout value on the
dscontrol port set staletimeout command.
Stale timeout can be set at the executor, cluster, and port levels. At the executor
and cluster levels, the default is 300 seconds and it filters down to the port. At the
port level, the default depends on the port. Some well defined ports have different
default stale timeout values. For example, the telnet port 23 has a default of
259,200 seconds.
Some services may also have staletimeout values of their own. For example, LDAP
(Lightweight Directory Access Protocol) has a configuration parameter called
idletimeout. When idletimeout seconds have been exceeded, an idle client
connection will be forcibly closed. Idletimeout may also be set to 0, which means
that the connection will never be forcibly closed.
Connectivity problems can occur when Load Balancer's stale timeout value is
smaller than the service's timeout value. In the case of LDAP, the Load Balancer
staletimeout value defaults to 300 seconds. If there is no activity on the connection
for 300 seconds, Load Balancer will remove the connection record from its tables. If
the idletimeout value is larger than 300 seconds (or set to 0), the client may still
believe that it has a connection to the server. When the client sends packets, the
packets will be discarded by Load Balancer. This causes LDAP to hang when a
request is made to the server. To avoid this problem, set the LDAP idletimeout to a
nonzero value that is the same or smaller than the Load Balancer staletimeout
value.
To improve the performance of connection record allocation and reuse, use the
executor set fintimeout command to control the period during which Dispatcher
should keep connections in the FIN state, active in the Dispatcher tables and
accepting traffic. When a connection in the FIN state exceeds fintimeout, it is
removed from the Dispatcher tables and ready for reuse. You can change the FIN
timeout using the dscontrol executor set fincount command.
Note: The MIB, ibmNetDispatcherMIB.02, will not load using Tivoli NetView
xnmloadmib2 program. To fix this problem, comment out the
NOTIFICATION-GROUP section of the MIB. That is, insert "- -" in front of
the line "indMibNotifications Group NOTIFICATION-GROUP", and the 6
lines which follow.
The network management system uses SNMP GET commands to look at MIB
values on other machines. It then can notify you if specified threshold values are
exceeded. You can then affect Dispatcher performance, by modifying configuration
data for Dispatcher, to proactively tune or fix Dispatcher problems before they
become Dispatcher or Web server outages.
Dispatcher provides a subagent that updates and retrieves MIB data. The subagent
responds with the appropriate MIB data when the SNMP agent sends a GET
The Dispatcher SNMP support includes an SNMP subagent that uses Distributed
Program Interface (DPI) capability. DPI is an interface between an SNMP agent and
its subagents. Windows operating system uses the Windows extension agent as an
interface between an SNMP agent and its subagents.
Figure 37. SNMP commands for AIX, HP-UX, Linux, and Solaris operating systems
AIX systems provides an SNMP agent that uses SNMP Multiplexer protocol
(SMUX) and provides DPID2, which is an additional executable that works as a
translator between DPI and SMUX.
For HP-UX systems, you must obtain an SNMP agent that is SMUX-enabled
because HP-UX does not provide one. Load Balancer provides DPID2 for HP-UX
systems.
Linux systems provides an SNMP agent that uses SMUX. Most of the Linux
versions (for example, Red Hat) come with a UCD SNMP package. UCD SNMP
version 4.1 or later has SMUX enabled agents. Load Balancer provides DPID2 for
Linux systems.
Note: For SuSE Linux systems, you must obtain an SNMP agent that is
SMUX-enabled because SuSE does not provide one.
For Solaris systems, you must obtain an SNMP agent that is SMUX-enabled
because Solaris does not provide one. Load Balancer provides DPID2 for Solaris
systems in the /opt/ibm/edge/lb/servers/samples/SNMP directory.
The DPI agent must run as a root user. Before you run the DPID2 daemon, update
the /etc/snmpd.peers file and the /etc/snmpd.conf file as follows:
Also, you must comment all lines in the snmpd.conf file that begin with the
following words: com2sec, group, view or access.
Refresh snmpd (if it is already running) so that it will reread the snmpd.conf file:
refresh -s snmpd
Traps
SNMP communicates by sending and receiving traps, messages sent by managed
devices to report exception conditions or the occurrence of significant events, such
as a threshold having been reached.
The indSrvrGoneDown trap announces that the weight for the server specified by
the csID (cluster ID), psNum (port number), and ssID (server ID) portion of the
Object Identifier has gone to zero. The last known number of active connections for
the server is sent in the trap. This trap indicates that, as far as the Dispatcher can
determine, the specified server has gone down.
For AIX, HP-UX, Linux, and Solaris operating systems, due to a limitation in the
SMUX API, the enterprise identifier reported in traps from the ibmNetDispatcher
subagent may be the enterprise identifier of dpid2, instead of the enterprise
identifier of ibmNetDispatcher, 1.3.6.1.4.1.2.6.144. However, the SNMP management
utilities are able to determine the source of the trap because the data will contain
an object identifier from within the ibmNetDispatcher MIB.
For more information about the dscontrol command, see “dscontrol subagent —
configure SNMP subagent” on page 338.
Note that ipchains and iptables cannot be used to filter incoming traffic before it is
load balanced.
Some additional traffic must be permitted for all of Load Balancer to function
properly. Some examples of this communication are:
v Advisors communicate between the Load Balancer machine and the backend
servers.
v Load Balancer pings backend servers, reach targets, and high availability partner
Load Balancer machines.
v User interfaces (graphical user interface, command line, and wizards) use RMI.
v backend servers must respond to pings from the Load Balancer machine.
To deactivate iptables, list the modules (lsmod) to see which modules are using
ip_tables and ip_conntrack, then remove them by issuing rmmod ip_tables and
rmmod ip_conntrack. When you reboot the machine these modules will be added
again, so you need to repeat these step each time you reboot.
Note: The Content Based Routing (CBR) component is not available on platforms
that run a 64-bit JVM, except for HP-UX ia64. On HP-UX ia64, the CBR
component runs as a 32-bit application. You can use the CBR forwarding
method of Load Balancer's Dispatcher component to provide content-based
routing without the use of Caching Proxy. See “Dispatcher's content-based
routing (cbr forwarding method)” on page 41 for more information.
CBR and Caching Proxy collaborate using the Caching Proxy plug-in API to handle
HTTP and HTTPS (SSL) request. Caching Proxy must be running on the same
machine in order for CBR to begin load balancing servers. Set up CBR and
Caching Proxy as described in “CBR configuration example” on page 83.
Controlling CBR
After starting CBR, you can control it using either of the following methods:
v Configure CBR through the cbrcontrol command. The complete syntax of this
command is described in Chapter 26, “Command reference for Dispatcher and
CBR,” on page 287. Some example uses are listed here.
v Configure CBR using the graphical user interface (GUI). Type lbadmin on the
command line to open the GUI. See “GUI” on page 77 for more information on
how to configure CBR using the GUI.
Note:
In previous releases, for CBR you could change the log directory path in the
Caching Proxy configuration file. Now you can change the directory path where
the log gets stored in the cbrserver file. See “Changing the log file paths” on page
219.
Windows systems:
Click Start > Control Panel > Administrative Tools > Services. Right-click IBM
Metric Server and select Start. To stop the service, follow the same steps and select
Stop.
This problem determination tool packages the data into files as follows:
For AIX, HP-UX, Linux, and Solaris operating systems: /opt/ibm/edge/lb/
lbpmr.tar
For Windows systems: lbpmr.jar, which is created in the directory from which
you run the lbpd tool.
Before you call IBM service, have the following information available.
v For Dispatcher only, the lbpmr file that is generated by the problem
determination tool discussed above.
v In a high availability environment, configuration files from both Load Balancer
machines. On all operating systems, use the script you use to load the
configuration, or issue this command:
dscontrol file save primary.cfg
This command places the configuration file in the following directory:
– AIX, HP-UX, Linux, and Solaris operating systems: /opt/ibm/edge/lb/
servers/configuration/component
– Windows operating systems: <install_root>ibm\edge\lb\servers\
configuration\component
Advisor problems
Gather the following required information for advisor problems; for example,
when advisors are mistakenly marking servers as down.
v Set the advisor log at loglevel 5:
dscontrol advisor loglevel http 80 5
or
dscontrol advisor loglevel advisorName port loglevel
or
dscontrol advisor loglevel advisorName cluster:port loglevel
or
nalcontrol metriccollector set consultantID:serviceID:metricName
loglevel value
The ADVLOG call prints statements to the advisors log file when the level is
less than the logging level associated with the advisors. A logging level of 0
will cause the statement to always be written. You cannot use ADVLOG
from the constructor. The log file is not created until immediately after the
custom advisor's constructor has completed because the log file name
depends on information that is set in the constructor.
There is another way to debug your custom advisor that will avoid this
limitation. You can use System.out.println(message) statements to print
messages to a window. Edit the dsserver script and change javaw to java for
the print statements to appear in the window. The window used to start
dsserver must be kept open for the prints to appear. If you are using
Windows platforms, you must stop the Dispatcher from running as a service
and manually start it from a window to see the messages.
If you are using Dispatcher's nat or cbr forwarding methods, ping the return
address also.
2. Look through the arp output and match the MAC (16–digit hexadecimal
address) to one of the netstat -ni outputs to determine which machine
physically owns the cluster.
3. Use the following commands to interpret the output from both machines to see
if they both have the cluster address.
On AIX and HP-UX systems: netstat -ni
On Linux and Solaris systems: ifconfig -a
On Windows systems: ipconfig /all
If you do not get a response from the ping, and you are not using ULB, it is
possible that neither machine has the cluster IP address aliased to its interface; for
example, en0, tr0, and so forth.
Run the trace, recreate the problem, then kill the process.
v On HP-UX systems:
tcpdump -i lan0 host cluster and host client
You may need to download tcpdump from one of the HP-UX GNU software
archive sites.
v On Linux systems:
tcpdump -i eth0 host cluster and host client
Run the trace, recreate the problem, then kill the process.
v On Solaris:
snoop -v clientIPAddress destinationIPAddress > snooptrace.out
v On Windows systems, a sniffer is required. Use the same inputs as for a filter.
You can also increase different log levels (for example, manager log, advisor log
and so forth.) and investigate their output.
Upgrades
To identify a problem that is already fixed in a service release fix or patch, check
for upgrades. To obtain a list of Edge Components defects fixed, refer to the
WebSphere Application Server Web site Support page: http://www.ibm.com/
software/webservers/appserv/was/support/. From the Support page, follow the
link to the corrective service download site.
Java code
The correct version of Java code is installed as part the Load Balancer installation.
Troubleshooting tables
Refer to the following for:
v Dispatcher troubleshooting information — Table 12
v CBR troubleshooting information — Table 13 on page 240
v Site Selector troubleshooting information — Table 14 on page 241
v Cisco CSS Controller troubleshooting information — Table 15 on page 243
v Nortel Alteon Controller troubleshooting information — Table 16 on page 244
v Metric Server troubleshooting information — Table 17 on page 245
Table 12. Dispatcher troubleshooting table
Symptom Possible Cause Go to...
Dispatcher not running Conflicting port numbers “Checking Dispatcher port
correctly numbers” on page 246
Configured a collocated Wrong or conflicting address “Problem: Dispatcher and
server and it will not server will not respond” on
respond to load balanced page 249
requests
Connections from client v Wrong routing “Problem: Dispatcher
machines not being served or configuration requests are not being
connections timing out balanced” on page 249
v NIC not aliased to the
cluster address
v Server does not have
loopback device aliased to
the cluster address
v Extra route not deleted
v Port not defined for each
cluster
Client machines are not High availability not “Problem: Dispatcher
being served or are timing working high-availability function is
out not working” on page 250
Unable to add heartbeat Source address is not “Problem: Unable to add
(Windows platform) configured on an adapter heartbeat (Windows
platform)” on page 250
Advisors not working Advisors are not running on “Problem: Advisors not
correctly with wide area remote machines working correctly” on page
250
On a backend server running The Windows Server 2008 “Problem: On a Windows
Windows Server 2008, registry might not be Server 2008 backend server,
memload.exe crashes populated with the memload.exe crashes” on
performance keys that these page 250
tools require. This
application crash would be
reported from the cpuload
application.
If another application is using one of the Dispatcher's port numbers, you can either
change the Dispatcher's port numbers or change the application's port number.
Note: For Windows platform, dsserver and metricserver files are in the
<install_root>ibm\edge\lb\bin directory. For other platforms, these file are
in the /usr/bin/ directory.
Note: The Content Based Routing (CBR) component is not available on platforms
that run a 64-bit JVM, except for HP-UX ia64. On HP-UX ia64, the CBR
component runs as a 32-bit application. You can use the CBR forwarding
method of Load Balancer's Dispatcher component to provide content-based
routing without the use of Caching Proxy. See “Dispatcher's content-based
routing (cbr forwarding method)” on page 41 for more information.
If another application is using one of the CBR's port numbers, you can either
change the CBR's port numbers or change the application's port number.
Note: For Windows platform, cbrserver and metricserver files are in the
<install_root>ibm\edge\lb\bin directory. For other platforms, these file are
in the /usr/bin/ directory.
If another application is using one of the Site Selector's port numbers, you can
either change the Site Selector’s port numbers or change the application's port
number.
If another application is using one of the Cisco CSS Controller's port numbers, you
can either change the port numbers for Cisco CSS Controller or change the
application's port number.
Change the Cisco CSS Controller's port numbers by doing the following:
v To change the port used to receive commands from ccocontrol, modify the
CCO_RMIPORT variable in the ccoserver file. Change from 13099 to the port on
which you want Cisco CSS Controller to receive ccocontrol commands.
v To change the port used to receive metric reports from Metric Server:
1. Modify the RMI_PORT variable in the metricserver file. Change 10004 to the
port on which you want Cisco CSS Controller to communicate with Metric
Server.
2. Provide the metric_port argument when you start the consultant.
Note: For Windows platform, ccoserver and metricserver files are in the
<install_root>ibm\edge\lb\bin directory. For other platforms, these file are
in the /usr/bin directory.
If another application is using one of the Nortel Alteon Controller's port numbers,
you can either change the port numbers for Nortel Alteon Controller or change the
port numbers for the applicaton.
Change the port numbers for Nortel Alteon Controller by doing the following:
Note: For Windows platform, nalserver and metricserver files are in the
<install_root>ibm\edge\lb\bin directory. For other platforms, these file are
in the /usr/bin directory.
The following steps are an effective way to test that high availability scripts are
functioning properly:
1. gather a report by issuing netstat -an and ifconfig -a from the machine
2. run the goActive script
3. run the goStandby script
4. once again, gather a report by issuing netstat -an and ifconfig -a commands
The two reports are identical if the scripts are properly configured.
An ICMP ping is issued to the servers before the advisor request. If a firewall
exists between Load Balancer and the servers, ensure that pings are supported
across the firewall. If this setup poses a security risk to your network, modify the
java statement in dsserver to turn off all pings to the servers by adding the java
property:
LB_ADV_NO_PING="true"
java -DLB_ADV_NO_PING="true"
See “Using remote advisors with Dispatcher's wide area support” on page 186.
The crash occurs because the Windows Server 2008 registry might not be
populated with the performance keys that these tools require. This application
crash would be reported from the cpuload application.
The problem is due to an incorrect setting for HTML file association. The solution
is the following:
1. Click My Computer, click Tools, select Folder Options, and click File Types
tab
2. Select “Netscape Hypertext Document"
3. Click Advanced button, select open, click Edit button
4. Enter NSShell in the Application: field (not the Application Used to Perform
Action: field), and click OK
If all network interfaces are not designated for Load Balancer as configured in
ibmlb.conf, and if the NIC that is not defined in ibmlb.conf receives a frame, Load
Balancer does not have the ability to process and forward the frame.
To avoid this problem, you must override the default and set a unique MAC
address for each interface. Use this command:
ifconfig interface ether macAddr
For example:
ifconfig eri0 ether 01:02:03:04:05:06
When the route is being created, a problem might occur on the servers resulting
from the cluster being aliased on the loopback. If the gateway address for the route
falls in the subnet of the cluster/netmask, AIX systems create the route on the
loopback. This happens because that was the last interface aliased with that subnet.
For example, if the cluster is 9.37.54.69 and a 255.255.255.0 netmask is used, and
the intended gateway is 9.37.54.1, AIX systems use the loopback for the route. This
causes the server's responses to never leave the machine, and the client times out
waiting. The client typically sees one response from the cluster, then the route is
created and the client receives nothing more.
/usr/sbin/no -p -o udp_pmtu_discover=0
/usr/sbin/no -p -o tcp_pmtu_discover=0
This command will make the values persistent, and the values will apply to both
current and future reboot values.
This occurs because Java does not have access to enough memory to handle such a
large configuration.
There is an option on the runtime environment that can be specified to increase the
memory allocation pool available to Java.
The option is -Xmxn where n is the maximum size, in bytes, for the memory
allocation pool. n must be a multiple of 1024 and must be greater than 2MB. The
value n may be followed by k or K to indicate kilobytes, or m or M to indicate
megabytes. For example, -Xmx128M and -Xmx81920k are both valid. The default
value is 64M.
For example, to add this option, edit the lbadmin script file, modifying "javaw" to
"javaw -Xmxn" as follows. (For AIX systems, modify "java" to "java -Xmxn"):
v AIX systems
javaw -Xmx256m -cp $LB_CLASSPATH $LB_INSTALL_PATH $LB_CLIENT_KEYS
com.ibm.internet.nd.framework.FWK_Main 1>/dev/null 2>&1 &
v HP-UX systems
java -Xmx256m -cp $LB_CLASSPATH $LB_INSTALL_PATH $LB_CLIENT_KEYS
com.ibm.internet.nd.framework.FWK_Main 1>/dev/null 2>&1 &
v Linux systems
javaw -Xmx256m -cp $LB_CLASSPATH $LB_INSTALL_PATH $LB_CLIENT_KEYS
com.ibm.internet.nd.framework.FWK_Main 1>/dev/null 2>&1 &
v Solaris systems
java -Xmx256m -cp $LB_CLASSPATH $LB_INSTALL_PATH $LB_CLIENT_KEYS
com.ibm.internet.nd.framework.FWK_Main 1>/dev/null 2>&1 &
There is no recommended value for n , but it should be greater than the default
option. A good place to start would be with twice the default value.
If the IP addresses are not resolving correctly over the remote connection, specify
the IP address in the IP address notation format.
If "dsserver stop" does not work, stop the java process with
SRV_KNDConfigServer. Stop the process by finding its process identifier using ps
-ef | grep SRV_KNDConfigServer command and then ending the process using
kill process_id command.
You can safely run the "rmmod ibmlb" command to remove the Load Balancer
module from the kernel.
If this happens, you should begin to restructure your setup to avoid overloading
the Load Balancer machine with traffic. Alternatives include spreading the load
across several Load Balancer machines, or replacing the machine with a stronger
and faster computer.
With a high availability configuration, both servers take over primary operations
when a loss of network connectivity affects one or both. When the ARP request is
sent to repopulate the ARP cache, both servers respond, which causes the ARP
cache to mark the entry as not valid. Therefore, the advisors are not able to create
a socket to the backup servers.
Preventing the Windows operating system from clearing the ARP cache when there
is a loss of connectivity solves this problem. Microsoft has published an article that
explains how to accomplish this task. This article is on the Microsoft Web site,
located in the Microsoft Knowledge Base, article number 239924:
http://support.microsoft.com/default.aspx?scid=kb;en-us;239924.
When aliasing multiple clusters to the loopback device use the ifconfig command,
for example:
ifconfig lo:num clusterAddress netmask 255.255.255.255 up
Note: If the forwarding method is nat or cbr, the servers do not need to be on
the same subnet as the cluster.
v If all are on the same subnet, and you have aliased the cluster, ensure you alias
the cluster on a NIC that routes to this subnet. For example, if en0 is defined for
13.2.3.4 and en1 is defined for 9.1.2.3 and the cluster definition is 9.5.7.3, you
must configure the cluster on en1. The default interface is en0.
v On Linux platforms, ensure you have loaded the correct kernel by looking in the
/usr/lpp/ibm/internet/nd/logs/dispatcher directory for the loadoutput.log file.
Check this file for any reported errors.
The default for the router parameter is 0, which indicates the server is local. When
you set the server's router address to something other than 0, this indicates that it
is a remote server, on a different subnet. For more information on the router
parameter on the server add command, see “dscontrol server — configure servers”
on page 330.
To resolve this problem, start the Load Balancer scripts with the nohup command.
For example: nohup dsserver. This command prevents the processes started from
the terminal session from receiving a hangup signal from the terminal when it
exits, allowing the processes to continue even after the terminal session has ended.
Use the nohup command in front of any Load Balancer scripts that you want to
continue to process beyond the end of a terminal session.
A workaround for this is to add your server addresses and hostnames to your local
/etc/hosts file.
Check the go* scripts to ensure they are correctly configuring and unconfiguring
cluster addresses. If you have invoked a configuration file and have go* scripts
installed, ensure you do not have any "executor configure" command statements
for your cluster addresses in your configuration file, as this will conflict with the
configure and unconfigure commands in the go* scripts.
For more information on go* scripts when configuring high availability, see “Using
scripts” on page 167.
The MTU is set on each operating system based on the type of communication
media (for example, Ethernet). Routers from the local segment might have a
smaller MTU set if they connect to a different type of communication media.
Under normal TCP traffic, an MTU negotiation occurs during the connection setup,
and the smallest MTU is used to send data between the machines.
Dispatcher does not support MTU negotiation for Dispatcher's cbr or nat
forwarding method because it is actively involved as an endpoint for TCP
connections. For cbr and nat forwarding, Dispatcher defaults the MTU value to
1500. This value is the typical MTU size for standard Ethernet, so most customers
do not need to adjust this setting.
When using Dispatcher's cbr or nat forwarding method, if you have a router to the
local segment that has a lower MTU, you must set the MTU on the Dispatcher
machine to match the lower MTU.
To resolve this problem, use the following command to set the maximum segment
size (mss) value: dscontrol executor set mss new_value
For example:
dscontrol executor set mss 1400
The mss setting does not apply for Dispatcher’s mac forwarding method or any
non-Dispatcher component of Load Balancer.
The tips listed in this section can help alleviate problems that arise from high
availability configuration problems such as:
v Connections dropped after takeover
v Partner machines unable to synchronize
v Requests erroneously directed to the backup partner machine
The following tips are helpful for successful configuration of high availability on
your Load Balancer machines.
v The positioning of the high availability commands in your script files can make
a significant difference.
Examples of high availability commands are:
dscontrol highavailability heartbeat add ...
dscontrol highavailability backup add ...
dscontrol highavailability reach add ...
In most cases, you must position the high availability definitions at the end of
the file. The cluster, port, and server statements must be placed before the high
availability statements. This is because when high availability synchronizes, it
looks for the cluster, port, and server definitions when a connection record is
received.
If the cluster, port, and server do not exist, the connection record is dropped. If a
takeover occurs and the connection record has not been replicated on the partner
machine, the connection fails.
The exception to this rule is when using collocated servers that are configured
with the MAC-forwarding method. In this case, the high availability statements
must come before the collocated server statements. If the high availability
statements are not before the collocated server statements, Load Balancer
receives a request for the collocated server, but it appears the same as an
incoming request for the cluster and is load balanced. This can lead to a looping
of the packets on the network and lead to excess traffic. When the high
availability statements are placed before the collocated server, Load Balancer
knows that it should not forward incoming traffic unless it is in the ACTIVE
state.
v On z/OS or OS/390 operating systems, the hypervisor controls the interface and
multiplexes the real interface among the guest operating systems. The
hypervisor permits only one guest at a time to register itself for an IP address,
and there is an update window. This means that when the cluster IP is removed
from the backup machine, you might have to add a delay before trying to add
the cluster IP to the primary machine; otherwise, it fails and incoming
connections are not processed.
This command is not stored in the configuration file when it is saved, so you
must manually add it to the configuration file if you want this setting to persist
between shutdowns.
The timeout value is stored in one half seconds; therefore, the default value for
new_timeout is 100 (50 seconds).
v When a partner machine takes over the workload, it issues a gratuitous ARP
response to tell machines on the same subnet of the new hardware address
associated with the cluster IP address. You must ensure that your routers honor
gratuitous ARPs and update their cache, or the requests will be sent to the
inactive partner.
Note: For information on configuring the high availability feature see “High
availability” on page 164.
The OSA card also performs some functions that relate to the IP layer directly.
Responding to ARP (address resolution protocol) requests is one example of a
function that it performs. Another is that shared OSA routes IP packets based on
destination IP address, instead of on ethernet address as a layer 2 switch.
Effectively, the OSA card is a bridged network segment unto itself.
Load Balancer that runs on an S/390 Linux or zSeries Linux host can forward to
hosts on the same OSA or to hosts on the ethernet. All the hosts on the same
shared OSA are effectively on the same segment.
Load Balancer can forward out of a shared OSA because of the nature of the OSA
bridge. The bridge knows the OSA port that owns the cluster IP. The bridge knows
the MAC address of hosts directly connected to the ethernet segment. Therefore,
Load Balancer can MAC-forward across one OSA bridge.
However, Load Balancer cannot forward into a shared OSA. This includes the Load
Balancer on an S/390 Linux when the backend server is on a different OSA card
than the Load Balancer. The OSA for the backend server advertises the OSA MAC
address for the server IP, but when a packet arrives with the ethernet destination
address of the server's OSA and the IP of the cluster, the server's OSA card does
not know which of its hosts, if any, should receive that packet. The same principles
that permit OSA-to-ethernet MAC-forwarding to work out of one shared OSA do
not hold when trying to forward into a shared OSA.
Workaround:
In Load Balancer configurations that use zSeries or S/390 servers that have OSA
cards, there are two approaches you can take to work around the problem that has
been described.
1. Using platform features
If the servers in the Load Balancer configuration are on the same zSeries or
S/390 platform type, you can define point-to-point (CTC or IUCV) connections
between Load Balancer and each server. Set up the endpoints with private IP
addresses. The point-to-point connection is used for Load Balancer-to-server
traffic only. Then add the servers with the IP address of the server endpoint of
the tunnel. With this configuration, the cluster traffic comes through the Load
Balancer OSA card and is forwarded across the point-to-point connection where
the server responds through its own default route. The response uses the
server's OSA card to leave, which might or might not be the same card.
2. Using Load Balancer's GRE feature
If the servers in the Load Balancer configuration are not on the same zSeries or
S/390 platform type, or if it is not possible to define a point-to-point connection
between Load Balancer and each server, it is recommended that you use Load
Balancer's Generic Routing Encapsulation (GRE) feature, which is a protocol
that permits Load Balancer to forward across routers.
When using GRE, the client->cluster IP packet is received by Load Balancer,
encapsulated, and sent to the server. At the server, the original client->cluster IP
packet is excapsulated, and the server responds directly to the client. The
Where router backend_server is valid if Load Balancer and the backend server
are on the same IP subnet. Otherwise, specify the valid next-hop IP address as
the router.
To configure Linux systems to perform native GRE excapsulation, for each
backend server, issue the following commands:
modprobe ip_gre
ip tunnel add grelb0 mode gre ikey 3735928559
ip link set grelb0 up
ip addr add cluster_addr dev grelb0
Note: Do not define the cluster address on the loopback of the backend
servers. When using z/OS backend servers, you must use z/OS-specific
commands to configure the servers to perform GRE excapsulation.
The IBM Java SDK versions of the JVM and the Native POSIX Thread Library
(NPTL) shipped with some Linux distributions, such as Red Hat Enterprise Linux
3.0, can cause the memory leak to occur. The enhanced threading library NPTL is
shipped with some distributions of Linux systems, such as Red Hat Enterprise
Linux 3.0, that support NPTL.
To fix the memory leak, issue the following command before running the Load
Balancer machine to disable the NPTL library:
export LD_ASSUME_KERNEL=2.4.10
This problem might occur due to the iptables NAT module that is loaded. On SLES
9, there is a possible, but unconfirmed, error in this version of iptables that causes
strange behavior when interacting with Dispatcher.
Solution:
For example:
# lsmod | grep ip
iptable_filter 3072 0
iptable_nat 22060 0
ip_conntrack 32560 1 iptable_nat
ip_tables 17280 2
iptable_filter,iptable_nat
ipv6 236800 19
# rmmod iptable_nat
# rmmod ip_conntrack
Remove the modules in the order of their usage. Specifically, you can remove a
module only if the reference count (last column in lsmod output) is zero. If you
have configured any rules in iptables, you must remove them. For example:
iptables -t nat -F.
The iptable_nat module uses ip_conntrack, so you must first remove iptable_nat
module, and then remove ip_conntrack module.
Note: Just trying to list rules configured on a table loads up the corresponding
module; for example: iptables -t nat -L. Make sure that you do not run
this after the modules are removed.
Solution:
Issue the following command to manually unconfigure the cluster IP address from
the primary machine:
dscontrol executor unconfigure clusterIP
After this command is issued, look for the cluster IP address on the Windows IP
stack again by issuing the following command:
ipconfig /all
Issue the following command for each iptable listed in the output to display the
rules for the tables:
iptables -t <short_name> -L
For example:
iptables -t mangle -L
iptables -t nat -L
iptables -t filter -L
Upgrading the Java file set provided with the Load Balancer
installation
During the Load Balancer installation process, a Java file set also gets installed.
Load Balancer will be the only application that uses the Java version which installs
with the product. You should not upgrade this version of the Java file set on your
own. If there are problem which requires an upgrade for the Java file set, you
should report the problem to IBM Service so the Java file set which is shipped
within Load Balancer will be upgraded with an official fix level.
When the cluster IP address is deleted, either from the ethernet interface or the
loopback interface, any connections on that IP address are released. When the
operating system receives a packet on a connection that has been released, it sends
a RST response back to the client and the connection is terminated.
Refer to the section on disabling task offloading for instructions on configuring this
setting.
To address this issue, reorder the adapters in the Advanced Settings for the Control
Panel's Network Connections option. For example:
1. Open the Control Panel.
2. Open the Network Connections option.
3. From the menu bar, select Advanced > Advanced Settings...
4. Reorder the adapters that are listed in the Advanced Settings panel.
Possible cause: Solaris systems run a name service cache daemon. If this daemon is
running, the subsequent resolver request is answered from this cache instead of
querying Site Selector.
Solution: Turn off the name service cache daemon on the Solaris machine.
Verify this host is defined in the DNS. Edit the ssserver.cmd file and remove the
"w" from "javaw". This should provide more information about errors.
This error is logged when the key file fails authorization with the paired key due
to corruption in the pair. To correct this problem try the following:
v FTP the key file again using the binary transfer method.
v Create new key and redistribute it.
The SIZE and/or RSS field of the ps command may show an excessive amount of
memory being used.
This is a known AIX kernel problem. Apar IY33804 will correct this problem.
Obtain the fix from AIX support at http://techsupport.services.ibm.com/server/
fixes, or contact your local AIX support representative.
If you are using FTP to transfer your key files from the Load Balancer machine to
the backend server ensure that you are using binary mode to put or get key files
to or from the FTP server.
You must include all punctuation such as colons, quotation marks, and minus
signs that are shown in the syntax diagram.
Parameters
The following types of parameters are used in syntax diagrams.
Parameter
Description
Required
Required parameters are displayed on the main path.
Optional
Optional parameters are displayed below the main path.
Syntax examples
In the following example, the user command is a keyword. The required variable is
user_id, and the optional variable is password. Replace the variables with your own
values.
user user_id
password
Required keywords: required keywords and variables appear on the main path
line.
required_keyword
required_parameter_1
required_parameter_2
Optional values: Optional keywords and variables appear below the main path
line.
keyword
Choose one optional keyword from a stack: If there is more than one mutually
exclusive optional keyword or variable to choose from, they are stacked vertically
in alphanumeric order below the main path line.
parameter_1
parameter_2
Variables: A word in all italics is a variable. Where you see a variable in the syntax,
you must replace it with one of its allowable names or values, as defined in the
text.
variable
cluster:port
For previous versions, when the product was known as Network Dispatcher, the
Dispatcher control command name was ndcontrol. The Dispatcher control
command name is now dscontrol. Ensure you update all previous script files to
use dscontrol (not ndcontrol) for configuring Dispatcher.
CBR uses a subset of the Dispatcher commands listed in this command reference.
When using these syntax diagrams for CBR, substitute cbrcontrol for dscontrol.
For information, see “Configuration differences between CBR and Dispatcher” on
page 288.
You can enter a minimized version of the dscontrol command parameters. You
only need to enter the unique letters of the parameters. For example, to get help on
the file save command, you can type dscontrol he f instead of dscontrol help file.
The command parameter values must be entered in English characters. The only
exceptions are host names (used in cluster, server, and highavailability commands)
and file names (used in file commands).
Note: The Content Based Routing (CBR) component is not available on platforms
that run a 64-bit JVM, except for HP-UX ia64. On HP-UX ia64, the CBR
component runs as a 32-bit application. You can use the CBR forwarding
method of Load Balancer's Dispatcher component to provide content-based
routing without the use of Caching Proxy. See “Dispatcher's content-based
routing (cbr forwarding method)” on page 41 for more information.
Some of the commands that are omitted in CBR are listed below.
1. highavailability
2. subagent
3. executor
v report
v set nfa <value>
v set fintimeout <value>
v set hatimeout <value>
v set hasynctimeout <value>
v set porttype <value>
4. cluster
v report {c}
v set {c} porttype
5. port
v add {c:p} porttype
v add {c:p} protocol
v set {c:p} porttype
6. rule add {c:p:r} type port
7. server
v add {c:p:s} router
v set {c:p:s} router
connecttimeout
Set how long an advisor waits before reporting that a connect to a server for a
particular port on a server (a service) fails. For more information, see “Advisor
connect timeout and receive timeout for servers” on page 149.
name
The name of the advisor. Possible values include connect, db2, dns, ftp, http,
https, cachingproxy, imap, ldap, ldaps, nntp, ping, pop3, self, sip, smtp, ssl,
ssl2http, telnet, and wlm.
See “List of advisors” on page 149 for more information on the advisors that
Load Balancer provides.
Names of customized advisors are of the format xxxx, where ADV_xxxx is the
name of the class that implements the custom advisor. See “Create custom
(customizable) advisors” on page 154 for more information.
port
The number of the port that the advisor is monitoring.
cluster:port
The cluster value is optional on the advisor commands, but the port value is
required. If the cluster value is not specified, then the advisor will start
running on the port for all clusters. If you specify a cluster, then the advisor
will start running on the port, but only for the cluster you have specified. See
“Starting and stopping an advisor” on page 147 for more information.
The cluster is the address in IP address format or symbolic name. The port is
the number of the port that the advisor is monitoring.
timeoutseconds
A positive integer representing the timeout in seconds at which the advisor
waits before reporting that a connect to a server fails. The default is 3 times the
value specified for the advisor interval.
interval
Set how often the advisor will query the servers for information.
Note: The FTP advisor should advise only on the FTP control port (21). Do not
start an FTP advisor on the FTP data port (20).
log file
File name to which the management data is logged. Each record in the log is
time–stamped.
The default file is advisorname_port.log, for example, http_80.log. To change the
directory where the log files are kept, see “Changing the log file paths” on
page 219. The default log files for cluster (or site) specific advisors are created
with the cluster address, for example, http_127.40.50.1_80.log.
status
Display the current status of all the values in an advisor that can be set
globally and their defaults.
stop
Stop the advisor.
timeout
Set the number of seconds for which the manager will consider information
from the advisor as valid. If the manager finds that the advisor information is
older than this timeout period, the manager will not use that information in
determining weights for the servers on the port the advisor is monitoring. An
exception to this timeout is when the advisor has informed the manager that a
specific server is down. The manager will use that information about the
server even after the advisor information has timed out.
seconds
A positive number representing the number of seconds or the word unlimited.
The default value is unlimited.
Examples
v To start the http advisor on port 80 for cluster 127.40.50.1:
dscontrol advisor start http 127.40.50.1:80
v To start the http advisor on port 88 for all clusters:
dscontrol advisor start http 88
v To stop the http advisor at port 80 for cluster 127.40.50.1:
dscontrol advisor stop http 127.40.50.1:80
v To set the time (30 seconds) an HTTP advisor for port 80 waits before reporting
that a connect to a server fails:
dscontrol advisor connecttimeout http 80 30
v To set the time (20 seconds) an HTTP advisor for port 80 on cluster 127.40.50.1
waits before reporting that a connect to a server fails:
dscontrol advisor connecttimeout http 127.40.50.1:80 20
v To set the interval for the FTP advisor (for port 21) to 6 seconds:
dscontrol advisor interval ftp 21 6
v To display the list of advisors currently providing information to the manager:
dscontrol advisor list
start
Starts the binary log.
stop
Stops the binary log.
set
Sets fields for binary logging. For more information on setting fields for binary
logging, see “Using binary logging to analyze server statistics” on page 194.
retention
The number of hours that binary log files are kept. The default value for
retention is 24.
hours
The number of hours.
interval
The number of seconds between log entries. The default value for interval is
60.
seconds
The number of seconds.
status
Shows the retention and intervals of the binary log.
add
Add this cluster. You must define at least one cluster.
cluster
The cluster name or address to which clients connect. The cluster value is
either a symbolic name or in IP address format. A cluster value of 0.0.0.0 can
be used to specify a wildcard cluster. See “Use wildcard cluster to combine
server configurations” on page 191 for more information.
With the exception of the dscontrol cluster add command, you can use a colon
(:) to act as a wild card. For example, the following command, dscontrol
cluster set : weightbound 80, will result in setting a weightbound of 80 to all
clusters.
Note: For the Dispatcher's cbr forwarding method, if you set stickytime (to a
nonzero value), then port stickytime is enabled if the port is SSL (not
HTTP). If stickytime for ports to be created is non-zero and the new port
added is SSL, SSL ID affinity is enabled for the port. To disable SSL ID
affinity on the port, you will need to explicitly set the port stickytime to
0.
time
The value of stickytime in seconds.
weightbound
The default port weight bound. This may be overridden for individual ports
using port weightbound. The default value of weightbound is 20.
weight
The value of weightbound.
porttype
The default port type. This may be overridden for individual ports using port
porttype.
type
Possible values are tcp, udp, and both.
primaryhost
The NFA address of this Dispatcher machine or the NFA address of the backup
Examples
v To add cluster address 130.40.52.153:
dscontrol cluster add 130.40.52.153
v To remove cluster address 130.40.52.153:
dscontrol cluster remove 130.40.52.153
v To set the relative importance placed on input (active, new, port, system)
received by the manager for servers residing on cluster 9.6.54.12:
dscontrol cluster set 9.6.54.12 proportions 60 35 5 0
v To add a wildcard cluster:
dscontrol cluster add 0.0.0.0
report
Display a statistics snapshot report. For example: total packets received,
packets discarded, packets forwarded with errors, and so on.
Examples
v To display the internal counters for Dispatcher:
dscontrol executor status
Executor Status:
----------------
Nonforwarding address ............... 9.67.131.151
Client gateway address .............. 0.0.0.0
Fin timeout ......................... 60
Wide area network port number ....... 0
Shared bandwidth (Kbytes) ........... 0
Default maximum ports per cluster ... 8
Maximum number of clusters .......... 100
Default maximum servers per port .... 32
Default stale timeout ............... 300
Default sticky time ................. 0
Default weight bound ................ 20
Default port type ................... tcp/udp
v To set the nonforwarding address to 130.40.52.167:
dscontrol executor set nfa 130.40.52.167
v To set the maximum number of clusters:
dscontrol executor set maxclusters 4096
v To start the executor:
dscontrol executor start
v To stop the executor:
delete
Delete the file.
file[.ext]
A configuration file consisting of dscontrol commands.
The file extension (.ext) can be anything you like and can be omitted.
appendload
To update the current configuration, the appendload command runs the
executable commands from your script file.
report
Report on the available file or files.
save
Save the current configuration for Load Balancer to the file.
Note: Files are saved into and loaded from the following directories, where
component is either dispatcher or cbr:
v AIX, HP-UX, Linux, and Solaris operating systems:
/opt/ibm/edge/lb/servers/configurations/component
v Windows operating systems: <install_root>ibm\edge\lb\servers\
configurations\component
force
To save your file to an existing file of the same name, use force to delete the
existing file before saving the new file. If you do not use the force option, the
existing file is not overwritten.
newload
Loads and runs a new configuration file into the Load Balancer. The new
configuration file replaces the current configuration.
Examples
v To delete a file:
dscontrol file delete file3
FILE REPORT:
file1.save
file2.sv
file3
v To save your configuration into a file named file3:
dscontrol file save file3
Examples
v To get help on the dscontrol command:
dscontrol help
status
Return a report on high availability. Machines are identified as having one of
three status conditions or states:
Active A given machine (either a primary, backup, or both) is routing packets.
Standby
A given machine (either a primary, backup, or both) is not routing
packets; it is monitoring the state of an active Dispatcher.
Idle A given machine is routing packets, and is not trying to establish
contact with its partner Dispatcher.
Note: When configuring the reach target, you must also start the reach advisor.
The reach advisor starts automatically by the manager function.
add
Adds a target address for the reach advisor.
delete
Removes a target address from the reach advisor.
address
IP address (IP address format or symbolic) of the target node.
mask
A subnet mask.
heartbeat
Defines a communication session between the primary and backup Dispatcher
machines.
add
Tell the source Dispatcher the address of its partner (destination address).
srcaddress
Source address. The address (IP or symbolic) of this Dispatcher machine.
dstaddress
Destination address. The address (IP or symbolic) of the other Dispatcher
machine.
Note: The srcaddress and dstaddress must be the NFAs of the machines for at
least one heartbeat pair.
delete
Removes the address pair from the heartbeat information. You can specify
either the destination or source address of the heartbeat pair.
address
The address (IP or symbolic) of either the destination or source.
takeover
Simple high availability configuration (role of the Dispatcher machines are
either primary or backup):
v Takeover instructs a standby Dispatcher to become active and to begin
routing packets. This will force the currently active Dispatcher to become
Examples
v To check the high availability status of a machine:
dscontrol highavailability status
Output:
High Availability Status:
-------------------------
Role ........................primary
Recovery Strategy ........... manual
State ....................... Active
Sub-state.............. Synchronized
Primary host........... 9.67.131.151
Port .........................12345
Preferred Target....... 9.67.134.223
Heartbeat Status:
-----------------
Count ......................... 1
Source/destination ............ 9.67.131.151/9.67.134.223
Reachability Status:
--------------------
Count ................ 1
Address .............. 9.67.131.1 reachable
v To add the backup information to the primary machine using the automatic
recovery strategy and port 80:
dscontrol highavailability backup add primary auto 80
v To add an address that the Dispatcher must be able to reach:
dscontrol highavailability reach add 9.67.125.18
remote_host
The name of the remote Load Balancer machine being configured. When
typing this command, make sure there is no space between host: and
remote_host, for example:
dscontrol host:remote_host
After this command has been issued on the command prompt, enter any valid
dscontrol command you want issued to the remote Load Balancer machine.
logstatus
Displays the server log settings (log file name, logging level, and log size).
Examples
To display the logstatus:
dscontrol logstatus
interval
Set how often the manager will update the weights of the servers to the
executor, updating the criteria that the executor uses to route client requests.
seconds
A positive number representing in seconds how often the manager will update
weights to the executor. The default is 2.
loglevel
Set the logging level for the manager log.
level
The number of the level (0 to 5). The higher the number, the more information
that is written to the manager log. The default is 1. The following are the
possible values: 0 is None, 1 is Minimal, 2 is Basic, 3 is Moderate, 4 is
Advanced, 5 is Verbose.
logsize
Set the maximum size of the manager log. When you set a maximum size for
the log file, the file will wrap; when the file reaches the specified size, the
subsequent entries are written from the top of the file, overwriting the
previous log entries. Log size cannot be set smaller than the current size of the
log. Log entries are time stamped so you can tell the order in which they were
written. The higher you set the log level, the more carefully you should choose
the log size, because you can quickly run out of space when logging at the
higher levels.
bytes
The maximum size in bytes for the manager log file. You can specify either a
positive number greater than zero, or the word unlimited. The log file may not
Examples
v To set the updating interval for the manager to every 5 seconds:
dscontrol manager interval 5
v To set the level of logging to 0 for better performance:
dscontrol manager loglevel 0
v To set the manager log size to 1,000,000 bytes:
dscontrol manager logsize 1000000
v To specify that no more connections be sent to the server at 130.40.52.153:
dscontrol manager quiesce 130.40.52.153
--------------------------------------------------------------------
| SERVER | IP ADDRESS | STATUS |
--------------------------------------------------------------------
| mach14.dmz.com | 10.6.21.14 | ACTIVE |
| mach15.dmz.com | 10.6.21.15 | ACTIVE |
--------------------------------------------------------------------
-----------------------------
| MANAGER REPORT LEGEND |
-----------------------------
| ACTV | Active Connections |
| NEWC | New Connections |
| SYS | System Metric |
| NOW | Current Weight |
| NEW | New Weight |
| WT | Weight |
| CONN | Connections |
-----------------------------
-------------------------------------------------------------------
| www.dmz.com | | | | | |
| 10.6.21.100 | WEIGHT | ACTV | NEWC | PORT | SYS |
| PORT: 21 |NOW NEW| 49% | 50% | 1% | 0% |
-------------------------------------------------------------------
| mach14.dmz.com | 10 10 | 0 | 0 | -1 | 0 |
| mach15.dmz.com | 10 10 | 0 | 0 | -1 | 0 |
-------------------------------------------------------------------
-------------------------------------------------------------------
| www.dmz.com | | | | | |
| 10.6.21.100 | WEIGHT | ACTV | NEWC | PORT | SYS |
| PORT: 80 |NOW NEW| 49% | 50% | 1% | 0% |
-------------------------------------------------------------------
| mach14.dmz.com | 10 10 | 0 | 0 | 23 | 0 |
| mach15.dmz.com | 9 9 | 0 | 0 | 30 | 0 |
-------------------------------------------------------------------
---------------------------------------------------
| ADVISOR | CLUSTER:PORT | TIMEOUT |
---------------------------------------------------
| http | 80 | unlimited |
| ftp | 21 | unlimited |
---------------------------------------------------
v To restart all the servers to normalized weights and write a message to the
manager log file:
dscontrol manager restart Restarting the manager to update code
add
Add the specified metric.
cluster
The address to which clients connect. The address can be either the host name
of the machine, or the IP address notation format. Additional clusters are
separated by a plus sign (+).
metric
The system metric name. This must be the name of an executable or script file
in the metric server's script directory.
remove
Remove the specified metric.
proportions
Set the proportions for all the metrics associated with this object.
status
Display the current values of this metric.
Examples
v To add a system metric:
dscontrol metric add site1:metric1
v To set proportions for a sitename with two system metrics:
dscontrol metric proportions site1 0 100
v To display the current status of values associated with the specified metric:
dscontrol metric status site1:metric1
add
Add a port to a cluster. You must add a port to a cluster before you can add
any servers to that port. If there are no ports for a cluster, all client requests are
processed locally. You can add more than one port at one time using this
command.
cluster
The address of the cluster as either a symbolic name or in IP address format.
You can use a colon (:) to act as a wild card. For instance, the following
command, dscontrol port add :80, will result in adding port 80 to all clusters.
Examples
v To add port 80 and 23 to a cluster address 130.40.52.153:
dscontrol port add 130.40.52.153:80+23
v To add a wildcard port to a cluster address of 130.40.52.153:
dscontrol port set 130.40.52.153:0
v To set the maximum weight of 10 to port 80 at a cluster address of 130.40.52.153:
opts:
add
Add this rule to a port.
cluster
The address of the cluster as either a symbolic name or in IP address format.
You can use a colon (:) to act as a wild card. For instance, the following
command, dscontrol rule add :80:RuleA type type, will result in adding
RuleA to port 80 for all clusters.
Note: Affinity applies to rules configured with the Dispatcher component's cbr
forwarding method and to the CBR component.
affinity_type
Possible values for affinity type are: none (default), activecookie, passivecookie,
or uri.
cookiename
An arbitrary name set by the administrator that acts as an identifier to Load
Balancer. It is the name that Load Balancer should look for in the client HTTP
header request. The cookie name, along with the cookie value, acts as an
identifier to Load Balancer allowing Load Balancer to send subsequent requests
of a Web site to the same server machine. Cookie name is only applicable with
"passive cookie" affinity.
See “Passive cookie affinity” on page 183 for more information.
Examples
v To add a rule that will always be true, do not specify the beginning range or end
range:
dscontrol rule add 9.37.67.100:80:trule type true priority 100
v To create a rule forbidding access to a range of IP addresses, in this case those
beginning with “9:”
dscontrol rule add 9.37.131.153:80:ni type ip b 9.0.0.0 e 9.255.255.255
add
Add this server.
cluster
The address of the cluster as either a symbolic name or in IP address format.
You can use a colon (:) to act as a wild card. For instance, the following
command, dscontrol server add :80:ServerA, will result in adding ServerA to
port 80 on all clusters.
Note: Cookievalue is valid for Dispatcher (using cbr forwarding method) and
CBR.
Note: Router only applies to Dispatcher. If you are using nat or cbr forwarding
methods, when you add a server to the configuration you must specify
the router address.
addr
Value of the address of the router.
returnaddress
A unique IP address or hostname. It is an address configured on the
Dispatcher machine that Dispatcher uses as its source address when load
balancing the client's request to the server. This ensures that the server will
return the packet to the Dispatcher machine in order to process the content of
the request, rather than sending the packet directly to the client. (Dispatcher
will then forward the IP packet on to the client.) You must specify the return
address value when the server is added. Return address cannot be changed
unless you remove the server and add it again. The return address cannot be
the same as the cluster, server, or NFA address.
Note: Returnaddress only applies to Dispatcher. When you use nat or cbr
forwarding methods, you must define a return address for
communication between Load Balancer and the backend servers. The
Examples
v To add the server at 27.65.89.42 to port 80 on a cluster address 130.40.52.153:
dscontrol server add 130.40.52.153:80:27.65.89.42
v To set the server at 27.65.89.42 as nonsticky (port affinity override feature):
dscontrol server set 130.40.52.153:80:27.65.89.42 sticky no
v To mark the server at 27.65.89.42 as down:
dscontrol server down 130.40.52.153:80:27.65.89.42
v To remove the server at 27.65.89.42 on all ports on all clusters:
dscontrol server remove ::27.65.89.42
v To set the server at 27.65.89.42 as collocated (server resides in the same machine
as the Load Balancer):
dscontrol server set 130.40.52.153:80:27.65.89.42 collocated yes
v To set the weight to 10 for server 27.65.89.42 at port 80 on cluster address
130.40.52.153:
dscontrol server set 130.40.52.153:80:27.65.89.42 weight 10
v To mark the server at 27.65.89.42 as up:
dscontrol server up 130.40.52.153:80:27.65.89.42
v To add a remote server:
dscontrol server add 130.40.52.153:80:130.60.70.1 router 130.140.150.0
v To allow the HTTP advisor to query an HTTP URL request HEAD / HTTP/1.0 for
server 27.65.89.42 on HTTP port 80:
dscontrol server set 130.40.52.153:80:27.65.89.42
advisorrequest "\"HEAD / HTTP/1.0\""
v To show the status for server 9.67.143.154 on port 80:
dscontrol server status 9.67.131.167:80:9.67.143.154
loglevel
The level at which the dsserver logs its activities.
level
The default value of loglevel is 0. The range is 0–5. The following are the
possible values: 0 is None, 1 is Minimal, 2 is Basic, 3 is Moderate, 4 is
Advanced, 5 is Verbose.
logsize
The maximum number of bytes to be logged in the log file.
size
The default value of logsize is 1 MB.
Examples
v To see what is running:
dscontrol status
----------------------------------------
| ADVISOR | CLUSTER:PORT | TIMEOUT |
----------------------------------------
| reach | 0 | unlimited |
| http | 80 | unlimited |
| ftp | 21 | unlimited |
----------------------------------------
loglevel
The level at which the subagent logs its activities to a file.
level
The number of the level (0 to 5). The higher the number, the more information
that is written to the manager log. The default is 1. The following are the
possible values: 0 is None, 1 is Minimal, 2 is Basic, 3 is Moderate, 4 is
Advanced, 5 is Verbose.
logsize
Set the maximum size of the bytes to be logged in the subagent log. The
default is 1 MB. When you set a maximum size for the log file, the file will
wrap; when the file reaches the specified size, the subsequent entries are
written from the top of the file, overwriting the previous log entries. Log size
cannot be set smaller than the current size of the log. Log entries are
time—stamped so you can tell the order in which they were written. The
higher you set the log level, the more carefully you should choose the log size,
because you can quickly run out of space when logging at the higher levels.
bytes
The maximum size in bytes for the subagent log file. You can specify either a
positive number greater than zero, or the word unlimited. The log file may not
reach the exact maximum size before overwriting because the log entries
themselves vary in size. The default value is unlimited.
report
Display a statistics snapshot report.
start
Start the subagent.
community_name
The name of the SNMP value of community name that you can use as a
security password. The default is public.
For Windows platform: The community name for the operating system is
used.
log file
File name to which the SNMP subagent data is logged. Each record in the log
is time stamped. The default is subagent.log. The default file is installed in the
logs directory. See Appendix C, “Sample configuration files,” on page 413. To
change the directory where the log files are kept, see “Changing the log file
paths” on page 219.
Examples
v To start the subagent with a community name of bigguy:
dscontrol subagent start bigguy bigguy.log
You can enter a minimized version of the sscontrol command parameters. You only
need to enter the unique letters of the parameters. For example, to get help on the
file save command, you can enter sscontrol he f instead of sscontrol help file.
Note: The command parameter values must be entered in English characters. The
only exceptions are host names (used in cluster and server commands) and
file names (used in file commands).
connecttimeout
Set how long an advisor waits before reporting that a connect to a server fails.
For more information, see “Advisor connect timeout and receive timeout for
servers” on page 149.
name
The name of the advisor. Possible values include http, https, ftp, sip, ssl, smtp,
imap, pop3, ldap, ldaps, nntp, telnet, connect, ping, WLM, and WTE. Names
of customized advisors are of the format xxxx, where ADV_xxxx is the name of
the class that implements the custom advisor.
port
The number of the port that the advisor is monitoring.
seconds
A positive integer representing the time in seconds that the advisor waits
before reporting that a connect to a server has failed. The default is 3 times the
value specified for the advisor interval.
interval
Set how often the advisor queries the servers for information.
seconds
A positive integer representing the number of seconds between status requests
to the servers. The default is 7.
list
Show list of advisors currently providing information to the manager.
loglevel
Set the logging level for an advisor log.
level
The number of the level (0 to 5). The default is 1. The higher the number, the
more information that is written to the advisor log. The possible values are:
v 0 is None
name
The advisor name.
sitename:port
The sitename value is optional on the advisor commands; however, the port
value is required. If the sitename value is not specified, the advisor starts
running on all available sitenames configured. If you specify a sitename, the
advisor starts running for only the sitename you specify. Additional sitenames
are separated by a plus sign (+).
log file
File name to which the management data is logged. Each record in the log is
time-stamped.
The default file is advisorname_port.log, for example, http_80.log. To change the
directory where the log files are stored, see “Changing the log file paths” on
page 219.
You can start only one advisor for each sitename.
status
Display the current status and defaults of all the global values in an advisor.
stop
Stop the advisor.
timeout
Set the number of seconds that the manager considers information from the
advisor as valid. If the manager finds that the advisor information is older
than this timeout period, the manager does not use that information in
determining weights for the servers on the port the advisor is monitoring. An
exception to this timeout is when the advisor has informed the manager that a
specific server is down. The manager uses that information about the server,
even after the advisor information times out.
seconds
A positive number representing the number of seconds or unlimited. The
default value is unlimited.
version
Display the current version of the advisor.
Examples
v To set the time (30 seconds) an HTTP advisor (for port 80) waits before reporting
that a connect to a server fails:
sscontrol advisor connecttimeout http 80 30
v To set the interval for the FTP advisor (for port 21) to 6 seconds:
sscontrol advisor interval ftp 21 6
delete
Delete the file.
file.ext
A configuration file.
The file extension (.ext) can be anything you like and is optional.
appendload
Append a configuration file to the current configuration and load into the Site
Selector.
report
Report on the available file or files.
save
Save the current configuration for Site Selector to the file.
Note: Files are saved into and loaded from the following directories:
v AIX, HP-UX, Linux, and Solaris operating systems:
/opt/ibm/edge/lb/servers/configurations/ss
v Windows operating systems: <install_root>ibm\edge\lb\servers\
configurations\component
force
To save your file to an existing file of the same name, use force to delete the
existing file before saving the new file. If you do not use the force option, the
existing file is not overwritten.
newload
Load a new configuration file into Site Selector. The new configuration file will
replace the current configuration.
Examples
v To delete a file:
sscontrol file delete file3
FILE REPORT:
file1.save
file2.sv
file3
v To save your configuration into a file named file3:
sscontrol file save file3
Examples
v To get help on the sscontrol command:
sscontrol help
logstatus
Displays the server log settings (log file name, logging level, and log size).
interval
Set how often the manager updates the weights of the servers.
seconds
A positive number in seconds that represents how often the manager updates
weights. The default is 2.
loglevel
Set the logging level for the manager log.
level
The number of the level (0 to 5). The higher the number, the more information
that is written to the manager log. The default is 1. The possible values are:
v 0 is None
v 1 is Minimal
v 2 is Basic
v 3 is Moderate
v 4 is Advanced
v 5 is Verbose
logsize
Set the maximum size of the manager log. When you set a maximum size for
the log file, the file wraps; when the file reaches the specified size, the
subsequent entries are written from the top of the file, overwriting the
previous log entries. Log size cannot be set smaller than the current size of the
log. Log entries are time-stamped so you can tell the order in which they were
written. The higher you set the log level, the more carefully you must choose
the log size, because you can quickly run out of space when logging at the
higher levels.
bytes
The maximum size in bytes for the manager log file. You can specify either a
Examples
v To set the updating interval for the manager to every 5 seconds:
sscontrol manager interval 5
v To set the level of logging to 0 for better performance:
sscontrol manager loglevel 0
v To set the manager log size to 1,000,000 bytes:
sscontrol manager logsize 1000000
v To get a statistics snapshot of the manager:
sscontrol manager report
----------------------------------
| SERVER | STATUS |
----------------------------------
| 9.67.129.221| ACTIVE|
| 9.67.129.213| ACTIVE|
| 9.67.134.223| ACTIVE|
----------------------------------
--------------------------
| MANAGER REPORT LEGEND |
--------------------------
| CPU | CPU Load |
| MEM | Memory Load |
| SYS | System Metric |
| NOW | Current Weight |
| NEW | New Weight |
| WT | Weight |
--------------------------
------------------------------------------------------------------------
| mySite | WEIGHT | CPU 49% | MEM 50% | PORT 1% | SYS 0% |
------------------------------------------------------------------------
| |NOW NEW | WT LOAD | WT LOAD | WT LOAD | WT LOAD |
------------------------------------------------------------------------
| 9.37.56.180 | 10 10 |-99 -1|-99 -1|-99 -1| 0 0|
------------------------------------------------------------------------
| TOTALS:| 10 10 | -1| -1| -1| 0|
------------------------------------------------------------------------
-----------------------------------------
| ADVISOR | SITENAME:PORT | TIMEOUT |
-----------------------------------------
| http | 80 | unlimited |
-----------------------------------------
v To restart all the servers to normalized weights and write a message to the
manager log file:
sscontrol manager restart Restarting the manager to update code
add
Add the specified metric.
sitename
The configured sitename. Additional sitenames are separated by a plus sign
(+).
metric
The system metric name. This must be the name of an executable or script file
in the metric server's script directory.
remove
Remove the specified metric.
proportions
Proportions determines the significance of each metric as compared to the
others when they are combined into a single system load for a server.
status
Display the current server values for this metric.
Examples
v To add a system metric:
sscontrol metric add site1:metric1
v To set proportions for a sitename with two system metrics:
sscontrol metric proportions site1 0 100
v To display the current status of values associated with the specified metric:
sscontrol metric status site1:metric1
start
Starts the name server.
bindaddress
Starts the nameserver bound to the specified address. The nameserver
responds only to a request destined for this address.
address
An address (IP or symbolic) configured on the Site Selector machine.
stop
Stops the name server.
status
Displays the status of the name server.
opts:
add
Add this rule to a sitename.
sitename
An unresolvable hostname that the client will request. The sitename must be a
fully qualified domain name. Additional sitenames are separated by a plus
sign (+).
rule
The name you choose for the rule. This name can contain any alphanumeric
character, underscore, hyphen, or period. It can be from 1 to 20 characters and
cannot contain any blanks.
Examples
v To add a rule that will always be true, do not specify the beginning range or end
range:
sscontrol rule add sitename:rulename type true priority 100
v To create a rule forbidding access to a range of IP addresses, in this case those
beginning with “9” :
sscontrol rule add sitename:rulename type ip b 9.0.0.0 e 9.255.255.255
v To create a rule that will specify the use of a given server from the hour of 11:00
a.m. through the hour of 3:00 p.m.:
sscontrol rule add sitename:rulename type time beginrange 11 endrange 14
sscontrol rule useserver sitename:rulename server05
add
Add this server.
sitename
An unresolvable hostname that the client requests. The sitename must be a
fully qualified domain name. Additional sitenames are separated by a plus
sign (+).
server
The IP address of the TCP server machine as either a symbolic name or in IP
address format.
Examples
v To add the server at 27.65.89.42 to a sitename of site1:
sscontrol server add site1:27.65.89.42
v To mark the server at 27.65.89.42 as down:
loglevel
The level at which the ssserver logs its activities.
level
The default value of loglevel is 0. The possible values are:
v 0 is None
v 1 is Minimal
v 2 is Basic
v 3 is Moderate
v 4 is Advanced
v 5 is Verbose
logsize
The maximum number of bytes to be logged in the log file.
size
The default value of logsize is 1 MB.
add
Add a new sitename.
sitename
An irresolvable host name, requested by the client. Additional sitenames are
separated by a plus sign (+).
cachelife
The amount of time a proximity response is valid and saved in the cache. The
default is 1800. See “Using the Network Proximity feature” on page 93 for
more information.
value
A positive number representing the number of seconds a proximity response is
valid and saved in the cache.
networkproximity
Determines each server's network proximity to the requesting client. Use this
proximity response in the load balancing decision. Set the proximity on or off.
See “Using the Network Proximity feature” on page 93 for more information.
value
The choices are yes or no. The default is no, which means network proximity
is turned off.
proportions
Set the proportion of importance for cpu, memory, port (information from any
advisors), and system metrics for the Metric Server that are used by the
manager to set server weights. Each of these values is expressed as a
percentage of the total and the total is always 100.
cpu The percentage of CPU in use on each load balanced server machine
(input from Metric Server agent).
memory
The percentage of memory in use (input from Metric Server agent) on
each load balanced server
port The input from advisors listening on the port.
system The input from the Metric Server.
Examples
v To add a sitename:
sscontrol sitename add 130.40.52.153
v To turn on network proximity:
sscontrol sitename set mySite networkproximity yes
v To set a cache life of 1900000 seconds:
sscontrol sitename set mySite cachelife 1900000
v To set a proximity percent of 45:
sscontrol sitename set mySite proximitypercentage 45
Examples
v To see what is running, type:
sscontrol status
Note: You must use English characters for all command parameter values. The
only exceptions are host names (used in server commands) and file names
(used in file commands).
add
Adds a switch consultant.
scID (switchConsultantID)
A user-defined string that refers to the consultant.
address
The IP address of the Cisco CSS Switch to which the consultant provides
weights.
swIPAddr (switchIPAddress)
The IP address of the switch.
community
The name used in SNMP to get and set communications with the Cisco CSS
Switch.
commName
The read/write community name of the Cisco CSS Switch.
binarylog
Controls binary logging for a consultant.
report
Reports on the characteristics of binary logging.
set
Sets how often, in seconds, information is written to the binary logs. The
binary logging feature allows service information to be stored in binary log
files for each service defined in the configuration. The information is written to
the logs only when the specified log interval seconds elapse after the last
record was written to the log. The default binary logging interval is 60.
interval
Sets the number of seconds between entries in the binary log.
retention
Sets the number of hours that the binary log files are kept.
start
Starts binary logging.
stop
Stops binary logging.
remove
Removes a switch consultant.
report
Display characteristics of the controller. Version information displays as part of
this report.
set
Set characteristics of the controller.
loglevel
Sets the level at which the controller logs activities. The default value is 1.
level
The number of the level from 0 to 5. The default is 1. The possible values are:
0 = None
1 = Minimal
2 = Basic
3 = Moderate
4 = Advanced
5 = Verbose
logsize
Sets the maximum number of bytes logged in the log file. The default value is
1048576. When you set a maximum size for the log file, the file wraps; when
the file reaches the specified size, the subsequent entries are written from the
top of the file, overwriting the previous log entries. Log size cannot be set
smaller than the current size of the log. Log entries are time-stamped so you
can tell the order in which they were written. The higher you set the log level,
the more carefully you must choose the log size, because you can quickly run
out of space when logging at the higher levels.
size | unlimited
The maximum number of bytes logged in the consultant log. You can specify
either a positive number greater than zero, or the word unlimited. The log file
might not reach the exact maximum size before overwriting because the log
entries vary in size.
Examples
v To display a report on the controller:
ccocontrol controller report
This command produces output similar to:
Controller Report:
------------------------
Version . . . . . . . . . Version: 05.00.00.00 - 03/21/2002-09:49:57-EST
Logging level . . . . . . 1
Log size. . . . . . . . . 1048576
Configuration File. . . . config1.xml
Consultants:
Consultant consult1 -Started
v To set the level of logging to zero for better performance:
delete
Deletes the specified configuration file.
filename
A configuration file. The file extension must be .xml. If this extension is not
specified, it will be assumed.
load
Loads the configuration stored in the specified file.
Note: Loading a file appends the configuration stored in that file to the
running configuration. If you want to load a new configuration, you
must stop and restart the server before you load the file.
report
Lists the configuration files.
save
Saves the current configuration to the specified file.
Note: Files are saved into and loaded from the following directories:
v AIX, HP-UX, Linux, and Solaris systems: /opt/ibm/edge/lb/servers/
configurations/cco
v Windows systems: <install_root>ibm\edge\lb\servers\
configurations\cco
force
Saves to an existing file.
Examples
v To delete a file named file1:
ccocontrol file delete file1
v To append the configuration in the file to the current configuration:
ccocontrol file load config2
v To see a report of files that you have previously saved:
ccocontrol file report
This command produces output similar to:
FILE REPORT:
------------
file1.xml
file2.xml
file3.xml
v To save your configuration file in a file named config2.xml:
ccocontrol file save config2
Examples
v To get help on the ccocontrol command, type:
ccocontrol help
This command produces output similar to:
The following commands are available:
controller - operate on the controller
consultant - operate on switch consultants
file - operate on configuration files
help - operate on help
highavailability - operate on high availability
metriccollector - operate on metric collectors
ownerContent - operate on ownerContents
service - operate on services
v The following symbols are used in the online help syntax:
<> Braces enclose parameters or a sequence of characters.
[] Brackets enclose optional items.
| A vertical bar separates alternatives within brackets and braces.
: A colon is a separator between names; for example,
consultant1:ownercontent1.
add
Configures a high-availability node, partner, and reach targets.
address
The address from which to receive heartbeats.
address
The IP address of the high-availability node.
partneraddress
The address to which to send heartbeats. This is the IP address or host name
configured on the partner node. This address is used to communicate with the
partner high-availability machine.
address
The IP address of the partner.
port
The port used to communicate with the partner. The default is 12345.
port
The port number.
role
The high-availability role.
primary | secondary
The primary or secondary role.
dropreach
Remove this reach target from high availability criteria.
address
The IP address of the reach target.
remove
Remove the node, partner and reach target from high availability
configuration. High availability must be stopped before using this command.
report
Displays high availability information.
set
Sets the characteristics of high availability.
Examples
v To add a high availability node with an IP address of 9.37.50.17 with a primary
role on port 12345, and a partner address of 9.37.50.14:
ccocontrol highavailability add
address 9.37.50.17 role primary port 12345 partneraddress 9.37.50.14
v To add a reach target address of 9.37.50.9:
ccocontrol highavailability usereach 9.37.50.9
v To remove the reach target address of 9.37.50.9:
ccocontrol highavailability dropreach 9.37.50.9
v To start high availability with a recovery strategy of manual:
ccocontrol highavailability start manual
v To get a statistical snapshot of high availability:
ccocontrol highavailability report
This command produces output similar to:
High Availability Status:
-------------------------
Node . . . . . . . . . . . primary
Node Address . . . . . . . 9.37.50.17
Port . . . . . . . . . . . 12345
Partner Address. . . . . . 9.37.50.14
Recovery Strategy. . . . . manual
Heartbeat Interval . . . . 500
Takeover Interval. . . . . 2000
State. . . . . . . . . . . idle
Sub-state. . . . . . . . . unsynchronized
report
Displays the characteristics of a metric collector.
scID (switch consultant ID)
A user-defined string that refers to the consultant.
mN (metric name)
Name that identifies the provided or custom metric.
set
Sets the characteristics of a metric collector.
timeoutconnect
Set how long a metric collector waits before reporting that a connection fails.
sec
A positive integer representing the amount of time in seconds that the metric
collector waits before reporting that a connection to a service has failed.
loglevel
Sets the level at which the specified consultant logs activities. The default is 1.
level
The number of the level. The default is 1. The higher the number, the more
information that is written to the consultant log. The possible values are:
0 = None
1 = Minimal
2 = Basic
3 = Moderate
4 = Advanced
5 = Verbose
logsize
Sets the maximum number of bytes logged in the log file. The default value is
1048576. When you set a maximum size for the log file, the file wraps; when
the file reaches the specified size, the subsequent entries are written from the
top of the file, overwriting the previous log entries. Log size cannot be set
smaller than the current size of the log. Log entries are time-stamped so you
can tell the order in which they were written. The higher you set the log level,
the more carefully you must choose the log size, because you can quickly run
out of space when logging at the higher levels.
size | unlimited
The maximum number of bytes logged in the consultant log. You can specify
either a positive number greater than zero, or the word unlimited. The log file
might not reach the exact maximum size before overwriting because the log
entries vary in size.
Examples
v To see a report on the characteristics of a metric collector:
ccocontrol metriccollector report sc1:http
This command produces output similar to:
MetricCollector sc1:http
collected metric(s).... http
loglevel............... 5
logSize................ 1048576
sleepTimeSeconds....... 7
timeoutConnectSeconds.. 21
timeoutReceiveSeconds.. 21
v To set a timeoutconnect of 15 seconds and a logsize of unlimited for the sc1
switch consultant and the http metric:
ccocontrol metriccollector set sc1:http timeoutconnect 15 logsize unlimited
add
Adds an ownercontent to the specified consultant.
scID (switch consultant ID)
A user-defined string that represents the consultant.
OCName (ownercontent name)
A user-defined string that represents the owner name and the content rule on
the switch.
ownername
The name configured on the switch that identifies the owner configuration.
oN (ownername)
A unique text string with no spaces. The ownername must be the same as
specified on the Cisco switch.
contentrule
The name configured on the switch that identifies the owner's content rule
configuration.
cN (contentname)
A unique text string with no spaces. The contentname must be the same as
specified on the Cisco switch.
metrics
Specifies the set of metrics used in calculating weights and the importance of
each metric. The importance is expressed as a percentage of the total. The sum
of importance values must total 100. The metrics can be any combination of
the connection data metric, application advisor metrics, and metric server
metrics. The defaults are active connection (activeconn) and connection rate
(connrate) metrics with 50/50 importance.
mN (metricname)
Name that identifies the metric collector that will collect measurements to
determine the weight of the server.
Following is a list of valid metric names and their associated ports.
importance
A number from 0-to-100 that represents the importance of this metric in
calculating server weights.
refresh
Refreshes the configured services with the configuration from the Cisco CSS
Switch.
remove
Removes an ownercontent
report
Reports characteristics of ownercontents.
set
Sets characteristics of ownercontents.
metric
Sets the characteristics of a metric.
mN The name of the desired metric.
requeststring
Sets a request string for the specified metric. This represents the request sent
by a metric collector to gather metric information.
string
The request string sent by the metric collector to the server.
responsestring
Sets a response string for the specified metric. The specified response string is
used by the metric collector to compare the responses it receives from servers
and subsequently determine server availability.
string
The response string to which the metric collector compares received server
responses.
Examples
v To add an ownerContent named oc1 (with an owner name of owner1 and a
content name of content1) to the switch consultant ID of sc1:
ccocontrol ownerContent add sc1:oc1 ownername owner1 contentrule content1
v To specify a proportion of 50 each to the activeconn and http metrics:
ccocontrol ownerContent metrics sc1:oc1 activeconn 50 http 50
v To see a report of characteristics of ownercontents:
ccocontrol ownerContent report sc1:oc1
This command produces output similar to:
ownerContent sc1:oc1
Weightbound = 10
Metric activeconn has proportion 25
ResponseString... n/a
RequestString.... n/a
Metric http has proportion 50
ResponseString... n/a
RequestString.... n/a
Metric connrate has proportion 25
ResponseString... n/a
RequestString.... n/a
Contains Service t3
Contains Service t2
Contains Service t1
v To set an http request string:
ccocontrol ownerContent set sc1:oc1 metric http requeststring getCookie
report
Display characteristics of services.
scID (switch consultant ID)
A user-defined string that represents the consultant.
OCName (ownercontent name)
A user-defined string that represents the owner name and the content rule on
the switch.
svc (service)
A user-defined string on the switch that represents the service.
set
Set characteristics of services
fixedweight
Sets a fixed weight for this service. The default is off.
integer | off
A positive integer in the range of 0-to-10, representing the fixed weight for this
service, or the word off to specify no fixed weight.
requestsourceip
Sets the address from which to contact service for application requests.
IPAd (IP address)
The IP address from which to contact service, as a symbolic name or in IP
address format.
metricserveraddress
Sets the address at which to contact service for metric server requests.
IPAd (IP address)
The IP address of the metric server, as a symbolic name or in IP address
format.
metricserverport
Sets the port to use for contacting the metric server.
portN (port number)
The port number used to contact the metric server.
Examples
v To display a report on service t1 for the sc1 consultant:
ccocontrol service report sc1:oc1:t1
This command produces output similar to:
Service sc1:oc1:ta has weight 10
Fixed weight is off
Request Source Ip..... 9.27.24.156
Application port...... 80
MetricServer address.. 1.0.0.1
Note: You must use English characters for all command parameter values. The
only exceptions are host names (used in server commands) and file names
(used in file commands).
add
Adds a switch consultant.
scID
A user-defined string that refers to the consultant.
address
The IP address of the Nortel Alteon Web Switch to which the consultant
provides weights.
swIPAddr
The IP address of the switch.
rcommunity
The read community name used in the SNMP get communications with the
Nortel Alteon Web Switch. The default is public.
readCommName
The string that represents the read community name, as it is configured on the
Nortel Alteon Web Switch. The default is public.
wcommunity
The write community name used in the SNMP set communications
writeCommName
The string that represents the write community name, as it is configured on the
Nortel Alteon Web Switch. The default is private.
binarylog
Controls binary logging for a consultant.
report
Reports on the characteristics of binary logging.
set
Sets how often, in seconds, information is written to the binary logs. The
binary logging feature allows service information to be stored in binary log
files for each service defined in the configuration. The information is written to
the logs only when the specified log interval seconds elapse after the last
record was written to the log. The default binary logging interval is 60.
interval
Sets the number of seconds between entries in the binary log.
Examples
v To add a switch consultant with a switch identifier of sc1, an IP address of
9.37.50.17:
nalcontrol consultant add sc1 address 9.37.50.17
v To start binary logging:
nalcontrol consultant binarylog sc1 start
v To see a report on the characteristics of switch consultant sc1:
nalcontrol consultant report sc1
This command produces output similar to:
Consultant ID: sc1 Switch IP addr: 9.37.50.1
Read Community: public
Write Community: private
Consultant has been started
Sleep time = 7
Sensitivity = 5
Log level = 5
log size = 1,048,576
Service(s):
Service svc1
v To set the sleeptime between weight-setting cycles for the sc1 switch ID to 10
seconds:
nalcontrol consultant set sc1 sleeptime 10
v To start collecting metrics and setting weights for the consultant ID of sc1:
nalcontrol consultant start sc1
report
Display characteristics of the controller. Version information displays as part of
this report.
set
Set characteristics of the controller.
loglevel
Sets the level at which the controller logs activities. The default value is 1.
level
The number of the level from 0 to 5. The default is 1. The possible values are:
0 = None
1 = Minimal
2 = Basic
3 = Moderate
4 = Advanced
5 = Verbose
logsize
Sets the maximum number of bytes logged in the log file. The default value is
1048576. When you set a maximum size for the log file, the file wraps; when
the file reaches the specified size, the subsequent entries are written from the
top of the file, overwriting the previous log entries. Log size cannot be set
smaller than the current size of the log. Log entries are time-stamped so you
can tell the order in which they were written. The higher you set the log level,
the more carefully you must choose the log size, because you can quickly run
out of space when logging at the higher levels.
size | unlimited
The maximum number of bytes logged in the consultant log. You can specify
either a positive number greater than zero, or the word unlimited. The log file
might not reach the exact maximum size before overwriting because the log
entries vary in size.
Examples
v To display a report on the controller:
nalcontrol controller report
This command produces output similar to:
Controller Report:
------------------------
Version . . . . . . . . . Version: 05.00.00.00 - 03/21/2002-09:49:57-EST
Logging level . . . . . . 1
Log size. . . . . . . . . 1048576
Configuration File. . . . config1.xml
Consultants:
Consultant consult1 -Started
v To set the level of logging to zero for better performance:
delete
Deletes the specified configuration file.
filename
A configuration file. The file extension must be .xml. If this extension is not
specified, it will be assumed.
load
Loads the configuration stored in the specified file.
Note: Loading a file appends the configuration stored in that file to the
running configuration. If you want to load a new configuration, you
must stop and restart the server before you load the file.
report
Lists the configuration files.
save
Saves the current configuration to the specified file.
Note: Files are saved into and loaded from the following directories:
v AIX, HP-UX, Linux, and Solaris systems: /opt/ibm/edge/lb/servers/
configurations/nal
v Windows systems: <install_root>ibm\edge\lb\servers\
configurations\nal
Examples
v To delete a file named file1:
nalcontrol file delete file1
v To load a new configuration file to replace the current configuration:
nalcontrol file load config2
v To see a report of files that you have previously saved:
nalcontrol file report
This command produces output similar to:
FILE R EPORT:
------------
file1.xml
file2.xml
file3.xml
v To save your configuration file in a file named config2:
nalcontrol file save config2
Examples
v To get help on the nalcontrol command, type:
nalcontrol help
This command produces output similar to:
The following commands are available:
controller - operate on the controller
consultant - operate on switch consultants
file - operate on configuration files
help - operate on help
highavailability - operate on high availability
metriccollector - operate on metric collectors
server - operate on servers
service - operate on services
v The following symbols are used in the online help syntax:
<> Braces enclose parameters or a sequence of characters.
[] Brackets enclose optional items.
| A vertical bar separates alternatives within brackets and braces.
: A colon is a separator between names; for example, consultant1:service1.
add
Configures a high-availability node, partner, and reach targets.
address
The address from which to receive heartbeats.
address
The IP address of the high-availability node.
partneraddress
The address to which to send heartbeats. This is the IP address or host name
configured on the partner node. This address is used to communicate with the
partner high-availability machine.
address
The IP address of the partner.
port
The port used to communicate with the partner. The default is 12345.
port
The port number.
role
The high-availability role.
primary | secondary
The primary or secondary role.
dropreach
Remove this reach target from high availability criteria.
address
The IP address of the reach target.
remove
Remove the node, partner and reach target from high availability
configuration. High availability must be stopped before using this command.
report
Displays high availability information.
set
Sets the characteristics of high availability.
Examples
v To add a high availability node with an IP address of 9.37.50.17 with a primary
role on port 12345, and a partner address of 9.37.50.14:
nalcontrol highavailability add
address 9.37.50.17 role primary port 12345 partneraddress 9.37.50.14
v To add a reach target address of 9.37.50.9:
nalcontrol highavailability usereach 9.37.50.9
v To remove the reach target address of 9.37.50.9:
nalcontrol highavailability dropreach 9.37.50.9
v To start high availability with a recovery strategy of manual:
nalcontrol highavailability start manual
v To get a statistical snapshot of high availability:
nalcontrol highavailability report
This command produces output similar to:
High Availability Status:
-------------------------
Node . . . . . . . . . . . primary
Node Address . . . . . . . 9.37.50.17
Port . . . . . . . . . . . 12345
Partner Address. . . . . . 9.37.50.14
Recovery Strategy. . . . . manual
Heartbeat Interval . . . . 500
Takeover Interval. . . . . 2000
Started. . . . . . . . . . N
State. . . . . . . . . . . idle
Sub-state. . . . . . . . . unsynchronized
report
Displays the characteristics of a metric collector.
scID (switch consultant ID)
A user-defined string that refers to the consultant.
mN (metric name)
Name that identifies the provided or custom metric.
set
Sets the characteristics of a metric collector.
connecttimeout
Set how long a metric collector waits before reporting that a connection fails.
sec
A positive integer representing the amount of time in seconds that the metric
collector waits before reporting that a connection to a service has failed.
loglevel
Sets the level at which the specified consultant logs activities. The default is 1.
level
The number of the level. The default is 1. The higher the number, the more
information that is written to the consultant log. The possible values are:
0 = None
1 = Minimal
2 = Basic
3 = Moderate
4 = Advanced
5 = Verbose
logsize
Sets the maximum number of bytes logged in the log file. The default value is
1048576. When you set a maximum size for the log file, the file wraps; when
the file reaches the specified size, the subsequent entries are written from the
top of the file, overwriting the previous log entries. Log size cannot be set
smaller than the current size of the log. Log entries are time-stamped so you
can tell the order in which they were written. The higher you set the log level,
the more carefully you must choose the log size, because you can quickly run
out of space when logging at the higher levels.
size | unlimited
The maximum number of bytes logged in the consultant log. You can specify
either a positive number greater than zero, or the word unlimited. The log file
might not reach the exact maximum size before overwriting because the log
entries vary in size.
Examples
v To see a report on the characteristics of a metric collector:
nalcontrol metrinalllector report sc1:http
This command produces output similar to:
Metrinalllector sc1:http
collected metric(s).... http
loglevel............... 5
logSize................ 1048576
sleepTimeSeconds....... 7
timeoutConnectSeconds.. 21
timeoutReceiveSeconds.. 21
v To set a connecttimeout of 15 seconds and a logsize of unlimited for the sc1
switch consultant and the http metric:
nalcontrol metrinalllector set sc1:http connecttimeout 15 logsize unlimited
report
Display characteristics of servers.
scID
A user-defined string that represents the consultant.
svcID
A user-defined string that represents the virtual service identifier and the
virtual port number on the switch.
serverID
An integer that represents the server on the switch.
set
Set characteristics of servers
fixedweight
Sets a fixed weight for this server. The default is off. The maximum
fixedweight is 48.
integer | off
A positive integer representing the fixed weight for this server, or the word off
to specify no fixed weight.
requestsourceip
Sets the address from which to contact the server for application requests.
IPAddress
The IP address from which to contact the server, as a symbolic name or in IP
address format.
metricserveraddress
Sets the address from which to contact the server for metric server requests.
IPAddress
The IP address of the metric server, as a symbolic name or in IP address
format.
metricserverport
Sets the port to use for contacting the metric server.
portNumber
The port number used to contact the metric server.
Examples
v To display a report on server 1 for the sc1 consultant:
nalcontrol server report sc1:svc1:1
This command produces output similar to:
Server sc1:svc1:1 has weight -99
Fixed weight is off
Request Source Ip...... 9.27.24.156
Application port....... 99
MetricServer address... 9.99.99.98
add
Adds a service to the specified consultant.
scID (switchConsultantID)
A user-defined string that refers to the consultant.
svcID (serviceID)
A user-defined string that identifies the service.
vsid
The virtual service identifier keyword.
virSvrID (virtualServerID)
The number on the switch that represents the virtual server.
vport
The virtual port keyword.
virPortNum (virtualPortNumber)
The port number for the service that is currently configured on the switch.
metrics
Specifies the set of metrics used in calculating weights and the importance of
each metric. The importance is expressed as a percentage of the total. The sum
of importance values must total 100. The metrics can be any combination of
the connection data metric, application advisor metrics, and metric server
metrics. The defaults are active connection (activeconn) and connection rate
(connrate) metrics with 50/50 importance.
mN (metric name)
Name that identifies the metric collector that will collect measurements to
determine the weight of the server.
Following is a list of valid metric names and their associated ports.
importance
A number from 0-to-100 that represents the importance of this metric in
calculating server weights.
refresh
Refreshes a service with information from the Nortel Alteon Web Switch.
remove
Removes a service.
report
Reports characteristics of a service.
set
Sets characteristics of a service.
metric
Sets the characteristics of a configured metric.
mN (metric name)
The name of the desired metric.
requeststring
Sets a request string for the specified metric. This represents the request sent
by a metric collector to gather metric information.
string
The request string sent by the metric collector to the server.
responsestring
Sets a response string for the specified metric. The specified response string is
used by the metric collector to compare the responses it receives from servers
and subsequently determine server availability.
string
The response string to which the metric collector compares received server
responses.
retry
Retry sets the number of retries that can be made before marking a server
down.
numretries
An integer greater than or equal to zero. This value should be no larger than 3.
If retries keyword is not configured, the number of retries defaults to zero.
Figure 38. The graphical user interface (GUI) displaying the GUI tree structure expansion of the Dispatcher component
All of the components can be configured from the GUI. You can select elements in
the tree structure by clicking mouse button one (normally the left button) and then
display pop-up menus by clicking mouse button two (normally the right button).
The pop-up menus for the tree elements are also accessible from the menu bar
located at the top of the panel.
Click the plus or minus signs to expand or compact the items in the tree structure.
To run a command from the GUI: highlight the Host node from the GUI tree and
select Send command.... from the Host pop-up menu. In the command entry field,
type the command that you want to run, for example: executor report. The results
and history of the commands run in the current session appear in the window
provided.
The right side of the panel displays status indicator tabs for the element currently
selected.
v The Current Statistics tab presents statistical information about the element.
This tab does not appear for all elements in the tree structure.
v The Refresh Statistics button displays the latest statistical data. If a Refresh
Statistics button does not appear, the statistics are dynamically refreshed and are
always current.
To access Help, click the question mark (?) in the upper right corner of the Load
Balancer window.
v Help: Field level — describes each field, default values
v Help: How do I — lists tasks that can be done from the current screen
v InfoCenter — provides access to product information including: overview and
highlight of new feature information, link to product Web site, index of online
Help files, glossary of terms
Enter the pattern syntax you want to use, with the following restrictions
v no spaces can be used within the pattern
v special characters, unless you precede the character with a backward slash (\):
* wildcard (matches 0 to x of any character)
( left parenthesis used for logic grouping
) right parenthesis used for logic grouping
& logical AND
| logical OR
! logical NOT
Reserved keywords
Reserved keywords are always followed by an equal sign “=”.
Method
HTTP method in the request, for example GET, POST, and so forth
URI path of the URL request (case sensitive)
Version
specific version of request, either HTTP/1.0 or HTTP/1.1
Host value from the host: header (not case sensitive)
Note: The operating system's shell may interpret special characters, such as "&",
and convert them to alternate text before cbrcontrol evaluates them. If you
are entering the command from the dscontrol, cbrcontrol, or a configuration
file, use double quotation marks (" ") around the special characters.
When using special characters, for this same command to work at the
operating system's prompt you must place double quotation marks around
the entire command:
cbrcontrol "rule add 10.1.203.4:80:cbr_prod_rule_ek type content
pattern uri=/nipoek/*"
If the quotation marks are not used, some of the pattern might be truncated
when the rule is saved in CBR.
The following is a collection of possible scenarios and examples for using pattern
syntaxes
Scenario 1:
The setup for one cluster name involves one set of Web servers for standard
HTML content, another set of Web servers with WebSphere Application Server for
servlet requests, another set of Lotus® Notes® servers for NSF files, and so forth.
Access to the client data is required to distinguish between those requested pages.
It is also required to send them to the appropriate servers. The content pattern
matching rules provide the separation needed to accomplish these tasks. A series of
rules are configured so that the necessary separation of requests occurs
automatically. For example, the following commands accomplish the three splits
mentioned:
>>rule add cluster1:80:servlets type content pattern "uri=*/servlet/*" priority 1
>>rule uses cluster1:80:servlets server1+server2
>>rule add cluster1:80:notes type content pattern "uri=*.nsf*" priority 2
>>rule uses cluster1:80:notes server3+server4
>>rule add cluster1:80:regular type true priority 3
>>rule uses cluster1:80:regular server5+server6
If a request for an NSF file arrives at Load Balancer, the servlets rule is checked
first, but does not match. The request is then checked by the notes rule and returns
a match. The client is load-balanced between server3 and server4.
Scenario 2
Another common scenario is when the main Web site controls several distinct
internal groups. For example, www.company.com/software involves a different set
of servers and content from www.company.com/hardware division. Because the
requests are all based off the root www.company.com cluster, content rules are
required to find the URI differences and complete load balancing. The scenario's
rule looks similar to the following:
>>rule add cluster1:80:div1 type content pattern "uri=/software/*" priority 1
>>rule uses cluster1:80:div1 server1+server2
>>rule add cluster1:80:div2 type content pattern "uri=/hardware/*" priority 2
>>rule uses cluster1:80:div2 server3+server4
Scenario 3
Certain combinations are sensitive to the order in which rules are searched. For
example, in Scenario 2, clients were split based on a directory in their request path;
In cases where there are no combinations to use, the order becomes important:
>>rule add cluster1:80:pc1 type content pattern "uri=/pcs/*"
>>rule uses cluster1:80:pc1 server2
The second rule catches when “pcs” appears in later directory spots instead of the
first.
>>rule add cluster1:80:pc2 type content pattern "uri=/*/pcs/*"
>>rule uses cluster1:80:pc2 server3
In almost every case, you want to complete the rules with a default always true
rule to catch anything that falls through the other rules. This can also be a “Sorry,
the site is currently down, please try again later” server for scenarios where all
other servers fail for this client.
>>rule add cluster1:80:sorry type true priority 100
>>rule uses cluster1:80:sorry server5
#
# First start the server
#
# dsserver start
# sleep 5
#
# Then start the executor
#
# dscontrol executor start
#
# The Dispatcher can be removed at any time using the
# "dscontrol executor stop" and "dsserver stop" commands to
# stop the executor and server respectively prior to removing
# the Dispatcher software.
#
# The next step in configuring the Dispatcher is to set the
# NFA (non-forwarding address) and the cluster address(es).
#
# The NFA is used to remotely access the Dispatcher machine
# for administration or configuration purposes. This
# address is required since the Dispatcher will forward packets
# to the cluster address(es).
#
# The CLUSTER address is the hostname (or IP address) to
# which remote clients will connect.
#
# Anywhere in this file, you may use hostnames and IP
# NFA=hostname.domain.name
# CLUSTER=www.yourcompany.com
#
# The next step in configuring the Dispatcher is to create
# a cluster. The Dispatcher will route requests sent to
# the cluster address to the corresponding server machines
# defined to that cluster. You may configure and server
# multiple cluster address using Dispatcher.
#
# Now we must define the ports this cluster will use. Any
# requests received by the Dispatcher on a defined port will
# be forwared to the corresponding port of one of the server
# machines.
#
#
# The last step is to add each of the server machines to the
# ports in this cluster.
# Again, you can use either the hostname or the IP address
# of the server machines.
#
# SERVER1=server1name.domain.name
# SERVER2=server2name.domain.name
# SERVER3=server3name.domain.name
#
# We will now start the load balancing components of the
# Dispatcher. The main load balancing component is called
# the manager and the second load balancing components are the
# advisors. If the manager and advisors are not running the
# Dispatcher sends requests in a round-robin format. Once the
# manager is started, weighting decisions based on the number
# of new and active connections is employed and incoming
# requests are sent to the best server. The advisors give the
# manager further insight into a servers ability to service
# requests as well as detecting whether a server is up. If
# an advisor detects that a server is down it will be
# marked down (providing the manager proportions have been
# set to include advisor input) and no further requests will be
# routed to the server.
#
# The final step in setting up the Dispatcher machine is to
# alias the Network Interface Card (NIC).
#
# NOTE: Do NOT use this command in a high availability
# environment. The go* scripts will configure the NIC and
# loopback as necessary.
# dscontrol executor configure $CLUSTER
#
# The following commands are set to the default values.
# Use these commands as a guide to change from the defaults.
# dscontrol manager loglevel 1
# dscontrol manager logsize 1048576
# dscontrol manager sensitivity 5
# dscontrol manager interval 2
# dscontrol manager refresh 2
#
# dscontrol advisor interval ftp 21 5
# dscontrol advisor loglevel ftp 21 1
# dscontrol advisor logsize ftp 21 1048576
# dscontrol advisor timeout ftp 21 unlimited
# dscontrol advisor interval telnet 23 5
rem
rem
rem Then start the executor
rem
rem call dscontrol executor start
rem
rem
rem The CLUSTER address is the hostname (or IP address) to which
rem remote clients will connect.
rem
rem
rem The following commands are set to the default values.
rem Use these commands to change the defaults
rem
rem Now we must define the ports this cluster will use. Any
rem requests received by the Dispatcher on a defined port
rem will be forwarded to the corresponding
rem port of one of the server machines.
rem
rem
rem The last step is to add each of the server machines to
rem the ports in this cluster. Again, you can use either the
rem hostname or the IP address of the server machines.
rem
rem
rem We will now start the load balancing components of the
rem Dispatcher. The main load balancing component is called
rem the manager and the second load balancing components are the
rem advisors. If the manager and advisors are not
rem running the Dispatcher sends requests in a round-robin
rem format. Once the manager is started, weighting decisions
rem based on the number of new and active connections is
rem employed and incoming requests are sent to the best
rem server. The advisors give the manager further insight
rem into a servers ability to service requests as well as
rem detecting whether a server is up. If an advisor detects
rem that a server is down it will be marked down (providing the
rem manager proportions have been set to include advisor
rem input) and no further requests will be routed to the server.
rem The last step in setting up the load balancing
rem components is to set the manager proportions. The
rem manager updates the weight of each of the servers based
rem on four policies:
rem
rem The final step in setting up the Dispatcher machine is
rem to alias the Network Interface Card (NIC).
rem
rem NOTE: Do NOT use this command in a high availability
rem environment. The go* scripts will configure the NIC and
rem loopback as necessary.
rem
rem dscontrol executor configure %CLUSTER%
rem
rem The following commands are set to the default values.
rem Use these commands to guide to change from the defaults.
rem call dscontrol manager loglevel 1
rem call dscontrol manager logsize 1048576
rem call dscontrol manager sensitivity 5
rem call dscontrol manager interval 2
rem call dscontrol manager refresh 2
rem
rem call dscontrol advisor interval ftp 21 5
rem call dscontrol advisor loglevel ftp 21 1
rem call dscontrol advisor logsize ftp 21 1048576
Sample advisor
The following is a sample advisor file called ADV_sample.
/**
* ADV_sample: The Load Balancer HTTP advisor
*
*
* This class defines a sample custom advisor for Load Balancer. Like all
* advisors, this custom advisor extends the function of the advisor base,
* called ADV_Base. It is the advisor base that actually performs most of
* the advisor’s functions, such as reporting loads back to the Load Balancer
* for use in the Load Balancer’s weight algorithm. The advisor base also
* performs socket connect and close operations and provides send and receive
* methods for use by the advisor. The advisor itself is used only for
* sending and receiving data to and from the port on the server being
* advised. The TCP methods within the advisor base are timed to calculate
* the load. A flag within the constructor in the ADV_base overwrites the
* existing load with the new load returned from the advisor if desired.
*
* Note: Based on a value set in the constructor, the advisor base supplies
* the load to the weight algorithm at specified intervals. If the actual
* advisor has not completed so that it can return a valid load, the advisor
* base uses the previous load.
*
* NAMING
*
* The naming convention is as follows:
*
* - The file must be located in the following Load Balancer directory:
*
* lb/servers/lib/CustomAdvisors/ (lb\servers\lib\CustomAdvisors on Windows)
*
* - The Advisor name must be preceded with "ADV_". The advisor can be
* started with only the name, however; for instance, the "ADV_sample"
* advisor can be started with "sample".
*
* - The advisor name must be in lowercase.
*
* With these rules in mind, therefore, this sample is referred to as:
package CustomAdvisors;
import com.ibm.internet.nd.advisors.*;
// Note: Most server protocols require a carriage return ("\r") and line
// feed ("\n") at the end of messages. If so, include them in
// your string here.
static final String ADV_SEND_REQUEST =
"HEAD / HTTP/1.0\r\nAccept: */*\r\nUser-Agent: " +
"IBM_Load_Balancer_HTTP_Advisor\r\n\r\n";
/**
* Constructor.
*
* Parms: None; but the constructor for ADV_Base has several parameters
* that must be passed to it.
*
*/
public ADV_sample()
{
super( ADV_NAME,
"2.0.0.0-03.27.98",
ADV_DEF_ADV_ON_PORT,
ADV_DEF_INTERVAL,
"", // not used
false);
super.setAdvisor( this );
}
/**
* ADV_AdvisorInitialize
*
* Any Advisor-specific initialization that must take place after the
* advisor base is started. This method is called only once and is
* typically not used.
*/
public void ADV_AdvisorInitialize()
{
return;
}
/**
* getLoad()
*
* This method is called by the advisor base to complete the advisor’s
* operation, based on details specific to the protocol. In this sample
* advisor, only a single send and receive are necessary; if more complex
* logic is necessary, multiple sends and receives can be issued. For
* example, a response might be received and parsed. Based on the
* information learned thereby, another send and receive could be issued.
*
* Parameters:
*
* - iConnectTime - The current load as it refers to the length of time it
* took to complete the connection to the server through
* the specified port.
*
* - caller - A reference to the advisor base class where the Load
* Balancer-supplied methods are to perform simple TCP requests,
* mainly send and receive.
/**
* In the normal advisor mode ("replace" flag is false), the load
* returned is either 0 or 1 indicating the server is up or down.
* If the receive is successful, a load of zero is returned
* indicating that the load built within the base advisor is to be used.
*
* Otherwise ("replace" flag is true), return the desired load value.
*/
if (iRc >= 0)
{
iLoad = 0;
}
}
return iLoad;
}
} // End - ADV_sample
cluster
address CBR
Internet Dispatcher w/Caching
Client (primary)
WebServerA
Proxy
EdgeServer1
CBR
Dispatcher w/Caching
(standby) Proxy
WebServerB
EdgeServer2
CBR
w/Caching WebServerC
Proxy
EdgeServer3
Figure 43. Example of a 2-tier, high availability configuration using Dispatcher, CBR, and Caching Proxy
Note:
1. To avoid backend server addresses displayed in the URL on a client, you
will need to set the ReversePass directive for each backend server
address in the Caching Proxy configuration file.
2. To ensure that Web memory caching is being used effectively, set the
"Caching" directive to "ON"' and increase the "CacheMemory" directive
to the size required in the Caching Proxy configuration file.
3. Sample lines referred to in notes 1-2 (above):
Caching ON
CacheMemory 128000 K
ReversePass /* http://websrvA.company.com/* http://www.company.com/*
4. Remember to alias the cluster address on the network interface card for
EdgeServer1 and to alias the cluster address on the loopback device on
the remaining EdgeServers.
5. If using the Linux platform for the EdgeServers, you may need to install
a patch to the Linux kernel or use an alternative to aliasing the loopback
device. For more information, see “Linux loopback aliasing alternatives
when using Load Balancer's mac forwarding” on page 60.
6. For CBR, port affinity (stickytime) must not be used when using content
rules, otherwise the content rules will not fire while processing requests
to the backend Web servers.
The following sample configuration files are similar to files that are created when
setting up an Edge Components configuration as shown in Figure 43 on page 423.
The sample configuration files represent the files for the Dispatcher and CBR
components of Load Balancer. In the sample configuration, a single Ethernet
adapter is used for each of the EdgeServer machines and all addresses are
represented within a private subnet. The sample configuration files use the
following IP addresses for the specified machines:
v EdgeServer1 (Primary high availability EdgeServer): 192.168.1.10
v EdgeServer2 (Backup high availability EdgeServer): 192.168.1.20
v EdgeServer3 (Web caching EdgeServer): 192.168.1.30
v Web site cluster address: 192.168.1.11
v WebServersA-C (Backend Web Servers): 192.168.1.71, 192.168.1.72, and
192.168.1.73
Appendix D. Sample of a 2-tier high availability configuration using Dispatcher, CBR, and Caching Proxy 425
426 Load Balancer for IPv4 Administration Guide
Appendix E. Notices
This information was developed for products and services offered in the U.S.A.
IBM may not offer the products, services, or features discussed in this document in
other countries. Consult your local IBM representative for information on the
products and services currently available in your area. Any reference to an IBM
product, program, or service is not intended to state or imply that only that IBM
product, program, or service may be used. Any functionally equivalent product,
program or service that does not infringe any IBM intellectual property right may
be used instead. However, it is the user's responsibility to evaluate and verify the
operation of any no-IBM product, program or service.
IBM may have patents or pending patent applications covering subject matter
described in this document. The furnishing of this document does not give you
any license to these patents. You can send license inquiries, in writing, to:
For license inquiries regarding double-byte (DBCS) information, contact the IBM
Intellectual Property Department in your country or send inquiries, in writing, to:
The following paragraph does not apply to the United Kingdom or any country
where such provisions are inconsistent with local law:
Any references in this information to non-IBM Web sites are provided for
convenience only and do not in any manner serve as an endorsement of those Web
sites. The materials at those Web sites are not part of the materials for this IBM
product and use of those Web sites is at your own risk.
Licensees of this program who wish to have information about it for the purpose
of enabling: (i) the exchange of information between independently created
programs and other programs (including this one) and (ii) the mutual use of the
information which has been exchanged, should contact:
IBM Corporation
Attn.: G7IA./503.
P.O. Box 12195
3039 Cornwallis Rd.
Research Triangle Park, N.C. 27709-2195
U.S.A.
The licensed program described in this document and all licensed material
available for it are provided by IBM under terms of the IBM International Program
License Agreement or any equivalent agreement between us.
All statements regarding IBM's future direction or intent are subject to change or
withdrawal without notice, and represent goals and objectives only.
This information contains examples of data and reports used in daily business
operations. To illustrate them as completely as possible, the examples may include
the names of individuals, companies, brands, and products. All of these names are
fictitious and any similarity to the names and addresses used by an actual business
enterprise is entirely coincidental.
If you are viewing this information softcopy, the photographs and color
illustrations many not appear.
Trademarks
The following terms are registered trademarks or trademarks of IBM Corporation
in the United States, other countries, or both.
AFS
AIX
Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the
United States, other countries, or both.
Microsoft, Windows, Windows NT, and the Windows logo are trademarks of
Microsoft Corporation in the United States, other countries, or both.
Intel, Intel Inside (logos), MMX and Pentium are trademarks of Intel Corporation
in the United States, other countries, or both.
UNIX is a registered trademark of The Open Group in the United States and other
countries.
address. The unique code assigned to each device or workstation connected to a network. A standard IPv4 address
is a 32-bit address field containing two parts. The first part is the network address, and the second part is the host
number.
advisor. The advisors are a function of the Load Balancer. Advisors collect and analyze feedback from individual
servers and inform the manager function.
agent. (1) In systems management, a user that, for a particular interaction, has assumed an agent role. (2) An entity
that represents one or more managed objects by (a) emitting notifications regarding the objects and (b) handling
requests from managers for management operations to modify or query the objects.
alias. An additional name assigned to a server. The alias makes the server independent of the name of its host
machine. The alias must be defined in the domain name server.
API. Application programming interface. The interface (calling conventions) by which an application program
accesses operating system and other services. An API is defined at source code level and provides a level of
abstraction between the application and the kernel (or other privileged utilities) to ensure the portability of the code.
B
backup. In high availability for the Dispatcher, the partner of the primary machine. It monitors the status of the
primary machine and takes over if necessary. See also high availability, primary.
bandwidth. The difference between the highest and lowest frequencies of a transmission channel; the amount of
data that can be sent through a given communication circuit per second.
begin range. In rules-based load balancing, a lower value specified on a rule. The default for this value depends on
the type of rule.
binary logging. Allows server information to be stored in binary files, and then be processed to analyze the server
information that is gathered over time.
C
Caching Proxy. A caching proxy server that can help speed up end-user response time through highly-efficient
caching schemes. Flexible PICS filtering helps network administrators control access to Web-based information at one
central location.
CBR. Content Based Routing. A component of Load Balancer. CBR works with Caching Proxy to load balance
incoming requests, based on Web page content using specified rule types, to HTTP or HTTPS servers.
cbrcontrol. Provides the interface to the Content Based Router component of Load Balancer.
cbrserver. In Content Based Router, handles the requests from the command line to the executor, manager and
advisors.
ccocontrol. In Cisco CSS Controller, provides the interface to the Cisco CSS Switch.
ccoserver. In Cisco CSS Controller, handles the requests from the command line to the Consultants.
CGI script. A CGI program written in a scripting language such as Perl or REXX that uses the Common Gateway
Interface to perform tasks not usually done by the server, such as forms processing.
Cisco CSS Controller. A component of IBM Load Balancer. Cisco CSS Controller uses Load Balancer technology to
provide real-time load balancing information to the Cisco Content Services Switch.
Cisco CSS Switch. Any of Cisco's CSS 11000 series switches, used for packet forwarding and content routing.
client. A computer system or process that requests a service of another computer system or process. For example, a
workstation or personal computer requesting HTML documents from a Lotus Domino® Go Webserver is a client of
that server.
cluster. In the Dispatcher, a group of TCP or UDP servers that are used for the same purpose and are identified by a
single hostname. See also cell.
clustered server. A server that the Dispatcher groups with other servers into a single, virtual server. Load Balancer
balances TCP or UDP traffic among these clustered servers.
collocate. When Load Balancer is installed on the same machine it is load balancing.
consultant. Collects server metrics from the servers that are being load balanced, and sends server weight
information to the switch that performs the load balancing.
cross port affinity. Cross port affinity is the affinity (sticky) feature expanded to cover across multiple ports. See
also sticky time.
D
daemon. Disk And Execution Monitor. A program that is not involved explicitly, but lies dormant waiting for some
condition(s) to occur. The idea is that the perpetrator of the condition need not be aware that a daemon is lurking
(though often a program will commit an action only because it knows that it will implicitly invoke a daemon).
default. A value, attribute, or option that is assumed when none is explicitly specified.
destination address. The address of the high availability partner machine to which heartbeats and responses are
sent.
Dispatcher. A component of Load Balancer that efficiently balances TCP or UDP traffic among groups of individual
linked servers. The Dispatcher machine is the server running the Dispatcher code.
domain name server. DNS. A general-purpose distributed, replicated, data query service chiefly used on Internet for
translating hostnames into Internet addresses. Also, the style of hostname used on the Internet, though such a name
is properly called a fully qualified domain name. DNS can be configured to use a sequence of name servers, based on
the domains in the name being looked for, until a match is found.
dotted-decimal notation. The syntactical representation for a 32–bit integer that consists of four 8–bit numbers,
written in base 10 and separated by periods (dots). It is used to represent IPv4 addresses.
dsserver. In Dispatcher, handles the requests from the command line to the executor, manager, and advisors.
Ethernet. A standard type of local area network (lan). It allows multiple stations to access the transmission medium
at will without prior coordination, avoids contention by using carrier sense and deference, and resolves contention by
using collision detection and transmission. Software protocols used by Ethernet systems vary, but include TCP/IP.
executor. One of several Load Balancer functions. The executor routes requests to the TCP or UDP servers, and also
monitors the number of new, active, and finished connections and does garbage collection of completed or reset
connections. The executor supplies the new and active connections to the manager function.
F
FIN. A control bit (finis) occupying one sequence number, which indicates that the sender will send no more data or
control occupying sequence space.
FIN state. The status of a transaction that has finished. When a transaction is in FIN state, the Load Balancer
garbage collector can clear the memory reserved for the connection.
Firewall. A computer that connects a private network, such as a business, to a public network, such as the Internet.
It contains programs that limit the access between two networks. See also proxy gateway.
FQDN. Fully Qualified Domain Name. The full name of a system, consisting of its local hostname and its domain
name, including a top-level domain (tld). For example, "venera" is a hostname and "venera.isi.edu" is an FQDN. An
FQDN should be sufficient to determine a unique Internet address for any host on the Internet. This process, called
"name resolution", uses the Domain Name System (DNS).
FTP (File Transfer Protocol). An application protocol used for transferring files to and from network computers.
FTP requires a user ID and sometimes a password to allow access to files on a remote host system.
G
gateway. A functional unit that interconnects two computer networks with different architectures.
GRE. Generic Routing Encapsulation. A protocol which allows an arbitrary network protocol A to be transmitted
over any other arbitrary protocol B, by encapsulating the packets of A within GRE packets, which in turn are
contained within packets of B.
H
heartbeat. A simple packet sent between two Load Balancer machines in high availability mode used by the standby
Load Balancer to monitor the health of the active Load Balancer.
high availability. A Load Balancer feature in which one Load Balancer can take over the function of another, should
that part fail.
host. A computer, connected to a network, that provides an access point to that network. A host can be a client, a
server, or both simultaneously.
host name. The symbolic name assigned to a host. Host names are resolved to IP addresses through a domain name
server.
HTML (Hypertext Markup Language). The language used to create hypertext documents. Hypertext documents
include links to other documents that contain additional information about the highlighted term or subject. HTML
controls the format of text and position of form input areas, for example, as well as the navigable links.
HTTP (Hypertext Transfer Protocol). The protocol used to transfer and display hypertext documents.
Glossary 433
HTTPS (Hypertext Transfer Protocol, Secure). The protocol used to transfer and display hypertext documents using
SSL.
I
ICMP. Internet Control Message Protocol. A message control and error-reporting protocol between a host server and
a gateway to the Internet.
IMAP. Internet Message Access Protocol. A protocol allowing a client to access and manipulate electronic mail
messages on a server. It permits manipulation of remote message folders (mailboxes), in a way that is functionally
equivalent to local mailboxes.
Internet. The worldwide collection of interconnected networks that use the Internet suite of protocols and permit
public access.
intranet. A secure, private network that integrates Internet standards and applications (such as Web browsers) with
an organization's existing computer networking infrastructure.
IP. Internet Protocol. A connectionless protocol that routes data through a network or interconnected networks. IP
acts as an intermediary between the higher protocol layers and the physical layer.
IP address. Internet Protocol address. The unique address that specifies the actual location of each device or
workstation in a network. It is also known as an Internet address.
IPSEC. Internet Protocol Security. A developing standard for security at the network or packet processing layer of
network communication.
L
LAN. Local Area Network. A computer network of devices connected within a limited geographical area for
communication and which can be connected to a larger network.
loopback alias. An alternative IP address associated with the loopback interface. The alternative address has the
useful side affect of not advertising on a real interface.
loopback interface. An interface that bypasses unnecessary communications functions when the information is
addressed to an entity within the same system.
M
MAC address. Media Access Control address. The hardware address of a device connected to a shared network
medium.
managed node. In Internet communications, a workstation, server, or router that contains a network management
agent. In the Internet Protocol (IP), the managed node usually contains a Simple Network Management Protocol
(SNMP) agent.
manager. One of several Load Balancer functions. The manager sets weights based on internal counters in the
executor and feedback provided by the advisors. The executor then uses the weights to perform load balancing.
mark down. To break all active connections to a server and stop any new connections or packets from being sent to
that server.
metric. A process or command that returns a numeric value that can be used in load balancing on the network, for
example, the number of users currently logged on.
metric collector. Resides in the consultant and is responsible for collecting a metric or metrics.
MIB. (1) Management Information Base. A collection of objects that can be accessed by means of a network
management protocol. (2) A definition for management information that specifies the information available from a
host or gateway and the operations allowed.
multiple address collocation. Multiple address collocation allows the customer to specify the address of the
collocated server to be different than the nonforwarding address (NFA) in the configuration. See also collocate.
mutual high availability. Mutual high availability allows two Dispatcher machines to be both primary and backup
for each other. See also backup, high availability, primary.
N
nalcontrol. Provides the interface to the Nortel Alteon Controller component of Load Balancer.
nalserver. In Nortel Alteon Controller, handles the requests from the command line to the Consultants.
netmask. For IPv4, a 32–bit mask used to identify the subnetwork address bits in the host portion of an IP address.
network. Hardware and software data communication system. Networks are often classified according to their
geographical extent, local area network (LAN), metropolitan area network (MAN), wide area network (WAN) and
also according to the protocols used.
Network Address Translation. NAT, or Network Address Translator, Virtual LAN. A hardware device currently
being developed and used to extend the Internet addresses already in use. It allows duplicate IP addresses to be used
within a corporation and unique addresses outside.
Network Address Port Translation. NAPT, also known as port mapping. This allows you to configure multiple
server daemons within one physical server to listen on different port numbers.
network management station. In the Simple Network Management Protocol (SNMP), a station that runs
management application programs that monitor and control network elements.
network proximity. The proximity of two networked entities, such as a client and server, which Site Selector
determines by measuring round-trip time.
nfa (nonforwarding address). The primary IP address of the Load Balancer machine, used for administration and
configuration.
NIC. Network Interface Card. An adapter circuit board installed in a computer to provide a physical connection to a
network.
NNTP. Network News Transfer Protocol. A TCP/IP protocol for transferring news items.
Nortel Alteon Controller. A component of IBM Load Balancer. Nortel Alteon Controller uses Load Balancer
technology to provide real-time load balancing information to the Nortel Alteon Web Switch.
Nortel Alteon Web Switch. The Nortel Alteon ACE Director Series Switch and the Nortel Alteon 180 Series Switch
from the Alteon Web Switching portfolio, used for packet forwarding and content routing.
O
owner content. Represents the owner name and the content rule for an owner, which are both defined on the Cisco
CSS Switch.
P
packet. The unit of data that is routed between an origin and a destination on the Internet or any other
packet-switched network.
Glossary 435
PICS. Platform for Internet Content Selection. PICS-enabled clients allow the users to determine which rating
services they want to use and, for each rating service, which ratings are acceptable and which are unacceptable.
ping. A command that sends Internet Control Message Protocol (ICMP) echo-request packets to a host, gateway, or
router with the expectation of receiving a reply.
POP3. Post Office Protocol 3. A protocol used for exchanging network mail and accessing mailboxes.
port. A number that identifies an abstracted communication device. Web servers use port 80 by default.
primary. In high availability for the Dispatcher, the machine that starts out as the machine actively routing packets.
Its partner, the backup machine, monitors the status of the primary machine and takes over if necessary. See also
backup, high availability.
priority. In rules-based load balancing, the level of importance placed upon any given rule. The Dispatcher
evaluates rules from the first priority level to the last priority level.
private network. A separate network on which Dispatcher communicates with clustered servers for performance
reasons.
protocol. The set of rules governing the operation of functional units of a communication system if communication
is to take place. Protocols can determine low-level details of machine-to-machine interfaces, such as the order in
which bits from a byte are sent; they can also determine high-level exchanges between application programs, such as
file transfer.
Q
Quality of Service (QoS). The performance properties of a network service, including throughput, transit delay and
priority. Some protocols allow packets or streams to include QoS requirements.
R
reach. In Dispatcher, an advisor that issues pings to a given target and reports whether that target is responding.
reach address. In high availability for the Dispatcher, the address of the target to which the advisor should issue
pings to see if the target is responding.
return address. A unique IP address or hostname. It is configured on the Dispatcher machine and used by
Dispatcher as its source address when load balancing the client's request to the server.
RMI. Remote Method Invocation. Part of the Java programming language library which enables a Java program
running on one computer to access the objects and methods of another Java program running on a different
computer.
root user. The unrestricted authority to access and modify any part of the AIX, Red Hat Linux, or Solaris operating
system, usually associated with the user who manages the system.
router. A device which forwards packets between networks. The forwarding decision is based on network layer
information and routing tables, often constructed by routing products.
rule. In rules-based load balancing, a mechanism for grouping servers such that a server can be chosen based on
information other than the destination address and port.
rule type. In rules-based load balancing, an indicator of the information that should be evaluated to determine
whether a rule is true.
server. A computer that provides shared services to other computers over a network; for example, a file server, a
print server, or a mail server.
server address. The unique code assigned to each computer that provides shared services to other computers over a
network; for example, a file server, a print server, or a mail server. The server address can be either the IP address or
the host name.
server machine. A server that the Dispatcher groups with other servers into a single, virtual server. The Dispatcher
balances traffic among the server machines. Synonymous with clustered server.
service. (1) A function provided by one or more nodes; for example, HTTP, FTP, Telnet. (2) For Nortel Alteon
Controller, a service is the function or information requested by an end user from a site. It is identified by a virtual IP
address and a virtual port number on an end user request. On the switch it is identified by a virtual server identifier
which is an integer and a virtual port number or service name. (3) For Cisco CSS Consultant, a service is a
destination location where a piece of content physically resides. For example, a local or remote server and port.
shell. The software that accepts and processes command lines from a user's workstation. The bash shell is one of
several UNIX shells available.
site name. A site name is an unresolvable host name that the client will request. For example, a web site has 3
servers (1.2.3.4, 1.2.3.5, and 1.2.3.6) configured for site name www.dnsload.com. When a client requests this site name,
one of the three server IP addresses will be returned as the resolution. The site name must be a fully qualified
domain name, for example: dnsload.com. An unqualified name, for example, dnsload is invalid for a site name.
Site Selector. A DNS-based load balancing component of Load Balancer. Site Selector balances the load on servers
within a wide area network (WAN) using measurements and weights that are gathered from the Metric Server
component running on those servers.
SMTP. Simple Mail Transfer Protocol. In the Internet suite of protocols, an application protocol for transferring mail
among users in the Internet environment. SMTP specifies the mail exchange sequences and message format. It
assumes that the Transmission Control Protocol (TCP) is the underlying protocol.
SNMP. Simple Network Management Protocol. The Internet standard protocol, defined in STD 15, RFC 1157,
developed to manage nodes on an IP network. SNMP is not limited to TCP/IP. It can be used to manage and
monitor all sorts of equipment including computers, routers, wiring hubs, toasters and jukeboxes.
source address. In high availability for the Dispatcher, the address of the high availability partner machine that
sends heartbeats.
sscontrol. Provides the interface to the Site Selector component of Load Balancer.
SSL. Secure Sockets Layer. A popular security scheme developed by Netscape Communications Corp. along with
RSA Data Security Inc. SSL allows the client to authenticate the server and all data and requests to be encrypted. The
URL of a secure server protected by SSL begins with https (rather than HTTP).
ssserver. In Site Selector, handles the requests from the command line to the site name, manager and advisors.
sticky time. The interval between the closing of one connection and the opening of a new connection during which
a client will be sent back to the same server used during the first connection. After the sticky time, the client may be
sent to a server different from the first.
strategy. In high availability for the Dispatcher, a keyword for specifying how recovery takes place following the
failure of the active machine.
subnet mask. For IPv4, a 32–bit mask used to identify the subnetwork address bits in the host portion of an IP
address.
Glossary 437
SYN. A control bit in the incoming segment, occupying one sequence number, used at the initiation of a connection,
to indicate where the sequence numbering will start.
T
TCP. Transmission Control Protocol. A communications protocol used on the Internet. TCP provides reliable
host-to-host exchange of information. It uses IP as the underlying protocol.
TCP/IP . Transmission Control Protocol/Internet Protocol. A suite of protocols designed to allow communication
between networks regardless of the communication technologies used in each network.
TCP server machine. A server that Load Balancer links with other servers into a single, virtual server. Load
Balancer balances TCP traffic among the TCP server machines. Synonymous with clustered server.
Telnet. Terminal emulation protocol, a TCP/IP application protocol for remote connection service. Telnet allows a
user at one site to gain access to a remote host as if the user’s workstation were connected directly to that remote
host.
TOS. Type of service. A one byte field in the IP header of the SYN packet.
TTL. A DNS TTL (time to live) is the number of seconds a client can cache the name resolution response.
U
UDP. User Datagram Protocol. In the Internet suite of protocols, a protocol that provides unreliable, connectionless
datagram service. It enables an application program on one machine or process to send a datagram to an application
program on another machine or process. UDP uses the Internet Protocol (IP) to deliver datagrams.
URI. Universal Resource Identifier. The encoded address for any resource on the Web, such as HTML document,
image, video clip, program, and so forth.
URL. Uniform Resource Locator. A standard way of specifying the location of an object, typically a web page, on the
Internet. URLs are the form of address used on the World-Wide Web. They are used in HTML documents to specify
the target of a hyperlink which is often another HTML document (possibly stored on another computer).
V
VPN. Virtual Private Network (VPN). A network comprised of one or more secure IP tunnels connecting two or
more networks.
W
WAN. Wide Area Network. A network that provides communication services to a geographic area larger than that
served by a local area network or a metropolitan area network, and that may use or provide public communication
facilities.
WAP. Wireless Application Protocol. An open international standard for applications that use wireless
communication, e.g. Internet access from a mobile phone.
Web. The network of HTTP servers that contain programs and files, many of them hypertext documents that
contain links to other documents on HTTP servers. Also World Wide Web.
wizard. A dialog within an application that uses step-by-step instructions to guide a user through a specific task.
WLM. Workload Manager. An advisor provided with Dispatcher. It is designed to work only in conjunction with
servers on OS/390 mainframes running the MVS Workload Manager (WLM) component.
Index 441
diagnosing problems (continued) Dispatcher component (continued) Dispatcher component (continued)
port numbers used by Site disconnect from host, using Web reset a down server 144
Selector 247 administration 257 reset down servers 322
port numbers used by the do not use IP address add command router address not specified or not
Dispatcher 246 for aliasing loopback (Linux) 260 valid for port method 260
primary and backup machines active dscontrol fails 251 server will not respond 249
in high availability error when caching proxy is slow response time 256
configuration 261 installed 252 starting 220
problem resolving IP address to host GUI does not display correctly 252 troubleshooting table 235
name (Windows) 258, 271 GUI not starting correctly 252 unable to add heartbeat 250
refresh command not updating help windows disappear 252 unexpected behavior loading large
configuration 275, 278 high availability in the wide area configuration file 254
requests not being load balanced 269 mode of Load Balancer does not unexpected behavior with "rmmod
router address not specified or not work 254 ibmlb" 256
valid for port method 260 high availability is not working 250 unexpected GUI behavior with Matrox
Site Selector does not load-balance High availability, configuration AGP cards 256
correctly 272 tips 263 Upgrading Java provided with the
Site Selector does not round-robin IP address conflict when using high installation 268
(Solaris) 271 availability 261 using 219
Site Selector will not run 271 IP address not resolving over remote will not run 249
slow response time 256 connection 255 displaying
sscontrol or lbadmin command Java memory/ thread error global values and their default
fails 272 (HP-UX) 257 settings
ssserver failing to start on Korean fonts undesirable on AIX and for an advisor 292, 344, 345
Windows 272 Linux 255 for the manager 317, 352, 353
Syntactical or configuration error 270 lbadmin disconnects from server after internal counters 302
Unable to add heartbeat 250 updating configuration 255 list of
unexpected behavior loading large lbadmin fails 251 advisors currently providing
configuration file 254 Load Balancer processes end metrics 292, 345
unexpected behavior with "rmmod (Solaris) 261 report on the state of an advisor 292,
ibmlb" 256 load-balancing settings 142 343, 345
unexpected GUI behavior with Matrox advisor intervals 148 statistics report 316, 351, 352
AGP cards 256, 270, 273, 275, 277 advisor report timeout 148 status of
Upgrading Java provided with the advisor server retry 144, 149 a cluster or all clusters 298
installation 268 advisor server timeout 149 servers on a port 323
weights not updated by switch 275, manager intervals 144 version number
277 proportion of importance given to of advisor 293, 344, 345
Dispatcher status information 142 of manager 317, 352, 353
configuration sensitivity threshold 145 down, marking a server as 334, 359
setting up the backend servers 55 smoothing index 145 DPID2 222
determining which features to use 17 weights 143 dscontrol command
Dispatcher component MAC forwarding 38 advisor 55, 289
advisors and reach targets mark all MS IIS and SSL do not work 251 binlog 294
servers down (Windows) 258 NAT/ NAPT 39 cluster 295
advisors not working 250 not registering server loads 257 command prompt 287
advisors not working in high On Linux, Dispatcher forwards executor 52, 299
availability setup after network packets, but not received by backend file 304
outage (Windows) 259 server 266 help 306
alias returned instead of local On Linux, HA Dispatcher may fail to highavailability 307, 393
address 256 synchronize 262 host 311
blue screen displays when starting On Linux, limitations when using logstatus 312
executor 253 zSeries or S/390 servers 264 manager 55, 313
cannot forward a frame 252 On Linux, memory leak occurs when metric 318
cannot open help window 252 using manager and advisors 266 minimize command parameters 287
Client requests fail when attempting On Windows system, problem with port 54, 319
return of large page responses 262 high availability takeover 267 rule 324
configuration On Windows, "server not responding" server 54, 330
overview of tasks 47 error occurs 262 set 336
setting up a private network 190 Path to Discovery prevents return status 337
setting up the Load Balancer traffic with Load Balancer 253 subagent 338
machine 50 planning 37 dsserver
connection to a remote machine 251 primary and backup machines active starting 33
content-based routing 41 in high availability
Corrupted Latin-1 national characters configuration 261
appear (Windows) 257 problem resolving IP address to host
delay when loading Load Balancer name (Windows) 258
configuration 261 requests not being balanced 249
Index 443
manager (continued) network address translation (NAT) 38, overview (continued)
version of 317, 352, 353 39 configuration of Dispatcher
managing Load Balancer 213 network proximity 93 component 47
marking a server as being new connections, setting proportion of configuration of Nortel Alteon
down 334, 359 importance 142, 296 Controller 133
up 334, 359, 360 NIC configuration of Site Selector 95
maximum weight, setting alias 53
for servers on a specific port 143, 322 ethernet (for Solaris) 50
metric
cbrcontrol 318
mapping (for Windows) 53
nonforwarding address
P
passive cookie affinity 181, 183, 327
ccocontrol 378 defining 52
planning
dscontrol 318 setting 302
CBR 71
sscontrol 354 Nortel Alteon Consultant
Cisco CSS Controller 107
Metric Server determining which features to use 24
Dispatcher component 37
configuring metric server in a two-tier Nortel Alteon Controller
Nortel Alteon Controller 125
configuration 279 advisors 201
Site Selector 91
Metric Server IOException on alerts 210
planning for installation 3, 7, 37, 91
Windows 278 binary logging for server
port
Metric Server log reports "Signature is statistics 209
cbrcontrol 319
necessary for access to agent" 279 cannot create registry on port
dscontrol 319
Metric Server not reporting 14099 277
port affinity override
loads 278 collocate 197
server 176, 331, 334
Metric values returns -1 after start commands 385
ports
Metric Server 281 configuration
adding 322
on AIX, ps -vg command output overview of tasks 133
defining to a cluster 54, 322
becomes corrupted 279 setting up the Nortel Alteon
displaying
on Solaris, scripts produce unwanted Controller machine 135
status of servers on this port 323
console messages 280 consultant connection error 277
for advisors 289, 342
overview 157, 206 corrupted Latin-1 national characters
removing 323
starting and stopping 230 appear (Windows) 278
setting the maximum weight 143,
troubleshooting table 245 disconnect from host, using Web
322
using 230 administration 277
wildcard 54
metriccollector hardware and software
primaryhost 165, 298
nalcontrol 396 requirements 125
private key
metrics high availability 197
for remote authentication 214
configuration 117, 136 Java memory/ thread error
private network, using with
Monitor menu option 221 (HP-UX) 278
Dispatcher 190
multiple address collocation 54 lbadmin fails 276
product components 37
mutual high availability 46, 164, 165 load-balancing settings 200
proportion of importance for load
primaryhost 297, 298 Metric Server 206
balancing, setting 142, 297
scripts 168 nalcontrol fails 276
proximity options 93
takeover 167 planning 125
public key
quick start example 121
for remote authentication 214
refresh command not updating
N configuration 278
report
nalcontrol command
command prompt 385
controller 389 Q
starting and stopping 229 quick start example 31
consultant 386, 389
troubleshooting table 244 CBR 65
file 391
unexpected GUI behavior with Matrox Cisco CSS Controller 103
help 392
AGP cards 277 Nortel Alteon Controller 121
host 400
using 229 Site Selector 87
metric 396
weights not updated by switch 277 quiescing a server 180, 314, 315, 317
server 398
will not start 276
nalserver
Workload manager advisor 208
starting 122
will not start 276
notices 427 R
nameserver refresh configuration remotely 217
sscontrol 355 remote administration
nat forwarding method 42 O RMI 213
NAT forwarding method 39 operating Load Balancer 213 Web-based administration 213, 215
high availability scripts 168 OS/390 remote administration (Web-based)
nat, server collocation with 163 GRE support 189 refresh 217
ndcontrol command overview remove
highavailability 375 configuration of CBR 75 cluster 297, 363
netstat command 59 configuration of Cisco CSS extra route 59
network address port translation Controller 113 port from a cluster 323
(NAPT) 39 server from a port 334, 359, 360
Index 445
sscontrol command (continued) syntax diagrams (continued) troubleshooting (continued)
rule 356 symbols 285 error message when trying to view
server 359 system metrics online Help 252
set 361 configure 318, 354, 378, 396 error running Dispatcher with
sitename 362 setting proportion of importance 142, Caching Proxy installed 252
status 365 200, 295, 296 GUI does not display correctly 252
SSL 54 GUI does not start correctly 252
SSL connections help panels disappear 252
configuring ibmproxy 73
for CBR 73
T high availability in the wide area
mode of Load Balancer does not
testing
HTTPS advisor 149 work 254
configuration 117, 137
LDAPS advisor 150 High availability, configuration
tls advisor 151
problem with enabling 251 tips 263
trademarks 428
SSL advisor 150 IP address conflict when using high
troubleshooting 231
ssl2http advisor 74, 150 availability 261
advisors and reach targets mark all
ssserver IP address not resolving over remote
servers down (Windows) 258, 271,
starting 88 connection 255
273
stale timeout 220, 297, 300, 321 Java memory/ thread error
advisors not working 250
starting (HP-UX) 257, 278
advisors not working in high
advisor 55, 292, 343, 345 Java memory/thread error
availability setup after network
CBR 66 (HP-UX) 270, 273, 276
outage (Windows) 259
Cisco CSS Controller 104, 229 Korean fonts undesirable on AIX and
alias returned instead of local
Dispatcher 33 Linux 255
address 256
executor 52, 302 lbadmin disconnects from server after
blue screen displays when starting
manager 55, 316, 351, 353 updating configuration 255
Load Balancer executor 253
Metric Server 230 Load Balancer cannot process and
cannot create registry on port
Nortel Alteon Controller 122, 229 forward a frame 252
13099 274
server 52 Load Balancer processes end
cannot create registry on port
Site Selector 88, 228 (Solaris) 261
14099 277
starting and stopping Metric Server IOException on
CBR will not run 269
CBR 228 Windows 278
cbrcontrol fails on Solaris 269
Dispatcher 220 Metric Server log reports "Signature is
cbrcontrol or lbadmin command
statistics snapshot report, necessary for access to agent" 279
fails 269
displaying 316, 351, 352 Metric Server not reporting
ccocontrol or lbadmin command
status loads 278
fails 274
cbrcontrol 337 Metric value returns -1 after start
ccoserver will not start 274
dscontrol 337 Metric Server 281
Client requests fail when attempting
status, displaying nalcontrol or lbadmin command
return of large page responses 262
servers on a specific port 323 fails 276
common problems and
sticky (affinity) nalserver will not start 276
solutions 249, 251, 269, 271, 274,
active cookie 181, 327 not registering server loads 257
276, 278
affinity address mask 179 on AIX, ps -vg command output
configuring metric server in a two-tier
cross port affinity 179, 180, 319 becomes corrupted 279
configuration 279
how it works 178 On Linux, Dispatcher forwards
consultant connection error 275, 277
passive cookie 181, 183, 327 packets, but not received by backend
corrupted Latin-1 national characters
port affinity override 176 server 266
appear (Windows) 278
quiesce now 180, 314, 317 On Linux, HA Dispatcher may fail to
Corrupted Latin-1 national characters
sticky (port affinity override) 176, synchronize 262
appear (Windows) 257, 270, 273,
177, 331 On Linux, limitations when using
275
stickymask 179, 320 zSeries or S/390 servers 264
delay when loading Load Balancer
stickytime 41, 178, 179, 320, 327 On Linux, memory leak occurs when
configuration 261
URI 181, 327 using manager and advisors 266
disconnect from host, using Web
stopping on Solaris, scripts produce unwanted
administration 257, 270, 273, 275,
advisor 292, 344, 345 console messages 280
277
Cisco CSS Controller 229 On Windows system, problem with
Dispatcher and server will not
executor 302 high availability takeover 267
respond 249
manager 317, 352, 353 On Windows, "server not responding"
Dispatcher high availability not
Nortel Alteon Controller 229 error occurs 262
working 250
subagents 217, 221 Path to Discovery prevents return
Dispatcher requests not routed 249
dscontrol 338 traffic with Load Balancer 253
Dispatcher will not run 249
switch consultant port numbers used by CBR 246
Dispatcher, Microsoft IIS, and SSL do
define 136 port numbers used by Cisco CSS
not work 251
syntax diagrams Controller 248
do not use IP address add command
examples 285 port numbers used by Nortel Alteon
for aliasing loopback (Linux) 260
parameters 285 Controller 248
dscontrol or lbadmin command
punctuation 285 port numbers used by Site
fails 251
reading 285 Selector 247
U
up, marking a server as 334, 359, 360
URI affinity 181, 184, 327
user exit scripts 145, 210
ccoallserversdown 210
ccoserverdown 210
ccoserverup 210
denial of service detection 193
managerAlert 146
managerClear 146
nalallserversdown 210
naloserverup 210
nalserverdown 210
serverDown 146
serverUp 146
V
version, displaying
advisor 293, 344, 345
manager 317, 352, 353
Index 447
448 Load Balancer for IPv4 Administration Guide
Printed in USA
Spine information:
WebSphere Edge Components Load Balancer for IPv4 Administration Guide Version 8.5