Learn about advanced features for configuring the Dispatcher
component using collocated servers.
About this task
Load Balancer can reside on the same machine as a server
for which it is load balancing requests. This is commonly referred
to as collocating a server. It is supported on Linux and AIX only.
It is supported for MAC forwarding only. Collocated server and High
Availability record replication should not be used together because
after takeover, the newly collocated application server will not have
the connection state.
Important: 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. On Linux Collocation feature depends on TUN module.
Hence before using collocation, you must ensure if the TUN module
is supported on the Linux version you are using. Also, performance
and functionality are dependent on the TUN module. To configure a
server to be collocated, the dscontrol server command provides an
option called collocated which can be set to yes or no.
The default value is no. Alternatively, you
can use the GUI to set collocated parameter under the configuration
settings tab of the server object. The address of the server must
be a valid IP address of a network interface card on the machine.
Tip: - When high availability is configured, you must place the appropriate
commands in goScripts.
- The neighbor state of a collocated server will always be available.
- Manager and advisor will work as usual with collocated server.
- Multiple clusters can have collocated server.
- Metric server should not be used with collocated server.
- In case you are using IPv4 or IPv6 clusters, the Load Balancer
machine should be in both networks before configuring it.
Configure a collocated server on Linux modprobe tun
modprobe ip_tables
Add/set the server with the desired IP
address and the collocated parameter set to yes,
as follows: dscontrol server add cluster@port@server collocated yes
dscontrol server set cluster@port@server collocated yes
Attention: Adding/setting the collocation parameter creates
an extra virtual network interface named ibmulb,
which is used by Load Balancer to forward the packets on same machine.
This interface has data rate of 10 mb/s.
Add iptable rule to drop IP packets destined
to cluster IP. This step should be done so that the operating
system does not respond to these packets and bypass the Load Balancer.
You might need to add rules for each cluster IP. Choose the correct
interface while adding the rules or collocation will not work.iptables -A INPUT -i<interface> -d <cluster_ip>/32 -j DROP
ip6tables -A INPUT -i<interface> -d <cluster_ip>/128 -j DROP
Remove
the iptable rules using the following commands:iptables -D INPUT -i<interface> -d <cluster_ip>/32 -j DROP(IPv4)
ip6tables -D INPUT -i<interface> -d <cluster_ip>/128 -j DROP(IPv6)
ARP suppression (IPv4 only) sysctl -w net.ipv4.conf.all.arp_ignore=3 net.ipv4.conf.all.arp_announce=2
Alias cluster IP on loop back adapter. Attention: This step is not required for Linux on
Z when interface is in layer3. In this case, cluster IP should be
aliased on the layer3 interface with a prefix used for the primary
IP.
ip addr add <cluster_ip>/32 dev lo scope host
ip -6 addr add <cluster_ipv6>/128 dev lo
Un-alias the
cluster IP from the loop adapter using following commands:ip addr add <cluster_ip>/32 dev lo scope host(IPv4)
ip -6 addr add <cluster_ipv6>/128 dev lo(IPv6)
Disable Reverse Path Filtering on all
interfaces (IPv4 only), as follows: "sysctl -w net.ipv4.conf.<inteface_name>.rp_filter=0 "
Configure a collocated server on AIX. Add/set the server with your chosen IP address and the collocated
parameter set to yes as follows:dscontrol server add cluster@port@server collocated yes
dscontrol server set cluster@port@server collocated yes
Configure/alias cluster IP on the loop-back adpater
ifconfig lo0 inet <cluster_ip> netmask 255.255.255.255 alias
ifconfig lo0 inet6 <cluster_ipv6>/128 alias
To remove alias from loopback use following commands
ifconfig lo0 inet <cluster_ip> netmask 255.255.255.255 -alias
ifconfig lo0 inet6 <cluster_ipv6>/128 -alias