ServerIron ADX Server Load Balancing Guide
Release 12.0.00
June 15, 2009

Table of Contents Previous Next Print


High Availability > Hot Standby SLB

Hot Standby SLB
Since Hot Standby SLB is an HA feature, there must be two ServerIrons in the network. If only one device is present and the Hot Standby feature is enabled, the ServerIron will function in "single-box" mode until the second ServerIron becomes available.
There are two versions of Hot Standby SLB:
Source-IP/src-standby-ip Hot Standby - The ServerIron’s management IP and VIPs are in one subnet. Real servers are in a different subnet. Additional commands are required for this version.
For Hot Standby SLB, one ServerIron is always active while the other ServerIron is always standby (idle).
Hot Standby allows you to configure two ServerIrons to serve as a redundant pair (primary and secondary). If the active ServerIron fails, the idle standby ServerIron assumes the active duties and becomes the new active device.
Hot Standby is the only HA service counting the number of available router-ports and server ports for failover behavior. The ServerIron with the highest number of active ports is declared the active device. In addition to port-count loss, a system reload or crash triggers a failover.
Hot Standby Protocol Operations
Figure 6.1illustrates a typical Hot Standby configuration.
Figure 6.1
When ServerIron A comes up in a Hot Standby configuration, it comes up in Standby state. When it sends Hello messages and sees that no other ServerIron is responding to those Hello messages, ServerIron A assumes the active state. When ServerIron-B comes up, it also goes through Hello-message processing. When ServerIron B sends Hello messages, ServerIron A responds to ServerIron B with ServerIron A's Active Status. ServerIron B assumes Standby status. ServerIron A in Active State performs the following 4 stages of synchronization:
Once the entire synchronization process is complete, ServerIron B calculates to see if ServerIron A has a higher router-port + server-port count or if ServerIron B itself has the highest count. If ServerIron A and ServerIron B tie, then ServerIron B continues in Standby state. If ServerIron A has a lesser count of router-port + server-port, ServerIron B forces ServerIron A to go to Standby State, and ServerIron B assumes Active state. From now on, ServerIron A will be in Active State and ServerIron B will be Standby State until some event forces a change in their status. Events leading to change can include:
While standby ServerIron B is idle, it continuously listens to Active ServerIron A for fail-over preparation. ServerIron A synchronizes its session table on all 3 BPs to match the same 3 BPs on Standby ServerIron B. This action occurs the moment a session is created on Active ServerIron A. Synchronization of a session involves sesssion creation, session deletion, and age updates. No CLI commands are required to invoke session synchronization from Active ServerIron A to Standby ServerIron B. ServerIron A and ServerIron B perform L2/L3/L4/L7 healthchecks independently. To avoid a loop, ServerIron B becomes a dumb device in Standby. All it does is receive session-sync messages from Active, perform health checks, and process Hello messages. ServerIron B is completely isolated and does not process any SLB traffic. If ServerIron A fails, ServerIron B becomes Active and immediately takes over the processing of SLB traffic. Since the sessions were already synchronized from ServerIron A when it was Active, failover is transparent to users.
Despite the stability of this solution, having an inactive device (ServerIron B) with all its VIPs in standby state may be viewed as a limitation. For this reason, Brocade created a new HA feature called Symmetric SLB (see page Details).
Standard Hot Standby
Figure 6.2 shows the minimum required configuration for Standard Hot Standby.
Figure 6.2
Follow these steps to enable the minimum required configuration shown in Figure 6.2. Client connections and server connections must be on the same interfaces on both ServerIrons.
1.
On ServerIron A, place the untagged hot standby port (sync-link) in its own port-specific VLAN and disable STP:
ServerIron-A(config)# vlan 2 by port
ServerIron-A(config-vlan-2)# untagged ethe 2/1
ServerIron-A(config-vlan-2)# no spanning-tree
Placing the hot standby port in its own VLAN prevents unneccessary traffic from going over the directly connected backup link. With Hot Standby, you cannot have spanning-tree configured anywhere on any link connected between the two ServerIrons. By default, spanning tree is usually enabled on switches but disabled on routers.
2.
ServerIron-A(config)# vlan 1 name DEFAULT-VLAN by port
ServerIron-A(config-vlan-1)# no spanning-tree
3.
Configure the server backup port, shared chassis-MAC address between the ServerIrons, and any connected router-ports:
The server backup ethernet command must be configured exactly the same on both ServerIrons. It has three parameters:
Syntax: server backup ethernet <portnum> <mac-addr> <vlan-id>
The <portnum> variable specifies the port where the syn-link is connected. This is the port that connects this ServerIron switch to the other one. In the example, 2/1 is the port number.
The <mac-addr> variable specifies the chassis-MAC address of one of the ServerIrons. Be sure to use a chassis MAC from one of the two devices, not the MAC of one of the backup ports. Use show chassis to locate the chassis MAC. If both devices already have the same chassis MAC (a manufacturing blooper), then one of them must change.
The <vlan-id> variable specifies a VLAN that you want to use for active-standby synchronization traffic. In this example, the sync-link Hot Standby port is in VLAN 2.
The server router-ports command enables the ServerIron to count the number of upstream (or downstream) router ports connected to the switch. Both ServerIrons must use the same router-ports numbers, such as 2/3 in this example. The reason is the standby ServerIron is a dummy device that learns nothing, such as MACs, on its own.
4.
ServerIron-SLB-A #wr mem
.Write startup-config in progress.
.Write startup-config done.
ServerIron-SLB-A# reload
NOTE: Be sure to reload the software after configuring or changing the server backup port number. If you change the port number of the backup while the ServerIron is load balancing, clients will not be able to ping the VIP.
5.
Configure the second ServerIron (ServerIron-B). On this system, port 2/1 is the hot standby port. Using the same port numbers and MAC address is a requirement. Notice the chassis-MAC address on each ServerIron matches:

ServerIron-B# server backup ethe 2/1 00e0.5201.0c72 vlan-id 2
ServerIron-B# server router-ports ethernet 2/3
ServerIron-B# server router-ports ethernet 2/4

ServerIron-B(config)# vlan 1 name DEFAULT-VLAN by port
ServerIron-B(config-vlan-1)# no spanning-tree

ServerIron-B(config-vlan-1)# vlan 2 by port
ServerIron-B(config-vlan-2)# untagged ethe 2/1
ServerIron-B(config-vlan-2)# no spanning-tree

ServerIron-B# write memory
.Write startup-config in progress.
.Write startup-config done.
ServerIron-B# reload
NOTE: If you plan to configure real servers to use a source IP address configured on the ServerIron as a default gateway, use the source-standby-address or source-nat-address command rather than the source-ip or source-nat command.
6.
Use show server backup and show log to obtain a clear picture of the ServerIron’s status in the Hot Standby configuration:
The following screen shots display the different stages of reload and show how a ServerIron comes up in a Hot Standby configuration.
ServerIron A is running in single-box mode, since ServerIron B is not yet discovered.
Now ServerIron B comes up. ServerIron A is already up and running.
.
When a ServerIron comes up in the hot standby configuration (supported using switch images only), it requests information from the peer ServerIron. In particular it requests the following:
The "SLB State" field in the show server backup command denotes which of the above states the ServerIron is in:
SLB_SYNC_COMPLETE state (Value = 0). All synchronization requests from the local ServerIron have been sent to the peer ServerIron. This process is now complete (value = 0).
SLB_SYNC_REQ_MAP state (Value = 1). Denotes the local ServerIron is requesting the peer ServerIron for port map information.
SLB_SYNC_REQ_MAC state (Value = 2). Denotes the local ServerIron is requesting the peer ServerIron for MAC information.
SLB_SYNC_REQ_SERVERS state (Value = 3). Denotes the local ServerIron is requesting the peer ServerIron for Server mapping.
SLB_SYNC_REQ_L4 state (Value = 4). Denotes the local ServerIron is requesting the peer ServerIron for session synchronization (fail-over session sync).
0 – invalid
1 – valid
The chassis MAC address on the other ServerIron, thus indicating Layer 2 connectivity between the ServerIrons. If this field contains all zeros, double-check the connection between the ServerIrons and verify that both ServerIrons are powered on. Also verify that Spanning Tree is disabled on both ServerIrons. Spanning Tree interferes with Hot Standby.
The number of missed port map PDUs. Port map PDUs are used by the ServerIron to discover information about the maps on the other ServerIron.
VIP and Servers in Different Subnets
Figure 6.3 shows a configuration with the VIP and Servers in different subnets.
Figure 6.3
Source-NAT in Hot Standby
The server source-nat command is added to the following configuration on both ServerIrons. However, seamless failover cannot be achieved here. See “Seamless Failover in Hot Standby When Source-NAT Enabled”.
Seamless Failover in Hot Standby When Source-NAT Enabled
Configuring a Backup Group ID
You can configure up to 127 hot-standby pairs within a single L2 broadcast domain. To enable this support, use server backup-group to configure a backup group ID on each of the ServerIrons, so that both ServerIrons in a given pair have the same ID. The backup group ID uniquely identifies the pair.
When you configure a backup group ID, both ServerIrons in a hot-standby pair use the ID when exchanging backup information. If a ServerIron receives a backup information packet but the packet’s backup group ID does not match the ServerIron’s backup group ID, the ServerIron discards the packet.
If the broadcast domain contains multiple hot-standby pairs, you must configure backup group IDs on all pairs. If the broadcast domain contains only one hot-standby pair, you do not need to configure a backup group ID.
To configure a backup group ID, enter the following command:
ServerIron(config)#server backup-group 1
Syntax: [no] server backup-group <id>
The <id> variable specifies the backup group ID. It can be a number from 1 – 7. The default value is 0. Enter the same ID on both ServerIrons in a hot-standby pair. Do not enter the same ID on a ServerIron that is not one of the ServerIrons in the hot-standby pair.
Setting the Backup Timer
The standby ServerIron assumes the active role if the it does not receive a Hello message or Layer 4 session synchronization data from the active ServerIron within a certain number of seconds since receiving the last Hello message or synchronization data.
By default, the standby ServerIron waits one second since receiving the last Hello message or data to receive a new message or data. If the standby ServerIron does not receive a new Hello message or data within one second, the standby ServerIron assumes that the active ServerIron is no longer available and takes over the active role.
In some configurations, particularly configurations in which the active ServerIron is performing a lot of processing, it is possible for frequent failovers to occur. In this situation, although the active ServerIron is still available and actively serving load balancing or other requests, the active ServerIron does not always send the Hello message or synchronization data in time for the standby ServerIron. As as result, the standby ServerIron takes over the active role. If similar conditions cause the newly active ServerIron to sometimes miss sending the Hello messages or synchronization data in time, failover occurs again.
You can prevent unnecessary state flapping between the two ServerIrons by increasing the backup timer. When you increase the backup timer, the standby ServerIron waits longer to receive new Hello messages or synchronization data from the active ServerIron. As a result, flapping is reduced or eliminated.
NOTE: The backup timer must have the same value on both ServerIrons in the active-standby pair.
To set the backup timer on a ServerIron in an active-standby pair, enter the following command:
ServerIron(config)# server backup-timer 50
This command sets the backup timer to 5 seconds (50 * 100 milliseconds).
Syntax: [no] server backup-timer <time>
The <time> variable specifies how long the ServerIron, when it is the backup ServerIron, will wait for a Hello message or synchronization data from the active ServerIron before assuming the active ServerIron is no longer available. You can specify a value from 5 (one half second) – 100 (10 seconds), in units of 100 milliseconds each. The default is 10 (one second).
Enabling Backup Preference
You can configure one of the ServerIrons in the active-standby pair to always be the active ServerIron. When you enable server backup-preference on one of the ServerIrons, that ServerIron is always the active one by default. The only event that can cause the other ServerIron to be the active one is unavailability of the default active ServerIron or its link to the backup ServerIron. To allow graceful insertion, the ServerIron does not immediately assume the active role, but instead waits for a configurable number of minutes before taking the active role.
To enable server backup preference, enter the following command:
ServerIron(config)#server backup-preference 5
Syntax: [no] server backup-preference <wait-time>
The <wait-time> variable specifies how long the ServerIron waits before assuming the active role. The ServerIron does not immediately become the active ServerIron but instead waits the number of minutes you specify. You can specify from 5 – 30 minutes. This variable does not have a default.
Configuring Failover Based on Active VIP Count
By default, the active-standby peer failover is based on router ports and server ports. You can configure the active-standby peer to fail over based on router ports and active VIP counts, instead of just the router ports. When this type of failover is configured, the following occurs:
If both nodes have at least one router port, the one having more active-VIPs shall be the active node. if active-VIPs tie, the one with more router ports shall be the active node. There is no status change if both active-VIPS and router ports tie.
To enable this feature, enter the following command:
ServerIron(config)#server backup-vip-cnt
Syntax: [no] server backup-vip-count
Configuring a ServerIron to Remain in Standby State
This feature is specific to hot-standby configurations. The feature allows you ensures that a ServerIron always remains in standby state, regardless of any changes in the system parameters (like no heart beat, less router ports, and other). Use this feature when there is undesirable flapping between active and standby states, which may occur when the CPU utilization on the standby’s management processor is very high and causes the standby to drop the heart beat messages sent by the active ServerIron.
NOTE: Use this command with caution because both ServerIrons may become standbys; thereby creating traffic loss.
If the ServerIron is active when this command is configured, the ServerIron transitions to a backup state and remains as backup until the command is removed. The transition is logged as "Forced to turn standby" (remain-standby command.).
Once the remain-standby command is entered, every attempt the ServerIron makes to go into active state is recorded and suppressed. This information is available under the "Active attempts" field in the show server debug command.
To force a ServerIron to remain in standby state, enter the following command:
ServerIron(config)# server backup-remain-standby
Syntax: server backup-remain-standby
Configuring the Forwarding of Synching Messages
In a hot-standby configuration, the active ServerIron and the backup ServerIron continuously communicate synching messages. These synching messages contain Layer 4 – 7 session status information and are only used by the ServerIrons.
Some of the messages may travel over a non-dedicated private link between the two ServerIrons. Another ServerIron may be in the middle of this link, acting as a Layer 2 or Layer 3 Switch passing traffic between the active and backup ServerIrons.
In this situation, messages sent between the active and backup ServerIrons may be intercepted and dropped by the ServerIron in the middle, and not forwarded to the active or backup ServerIrons. This could cause loss of synch between the active and backup ServerIrons. To prevent this from happening, use the server fwd-l4-sync command to configure the ServerIron in the middle to simply forward the synching messages and not intercept them.
To configure the ServerIron in the middle to forward the synching messages, enter the following command on the ServerIron connecting the active and the backup ServerIrons:
ServerIron(config)# server fwd-l4-sync
Syntax: server fwd-l4-sync
Real/Virtual Server Configuration Example
Suppose you want to configure a second switch, ServerIron2, to serve as the backup or standby switch for ServerIron1. Each switch will be configured with the same SLB configuration, supporting the following TCP/UDP ports: HTTP, SSL, FTP, and Telnet.
The private link, which provides the connection between the active and standby switches, will be configured as a trunk group with ports 13 and 14 as members.
ServerIron# config term
ServerIron(config)# trunk server ethernet 13 to 14
On Chassis devices, you must use the default trunk type, switch (example, trunk switch ethernet 1/1 to 1/2). On ServerIron 450 and ServerIron 850 devices, the trunk server command is not supported for Layer 4–7 traffic. On ServerIron Chassis devices, if you configure a trunk group, use the switch parameter if the traffic flowing through the trunk requires Layer 4-7 processing. Only use the server parameter if the traffic flowing through the trunk does not require Layer 4-7 processing. For traffic that does not require Layer 4-7 processing on ServerIron Chassis devices, the trunk type can be switch or server.
ServerIron(config)# vlan 2
ServerIron(config-vlan-2)# untag ethernet 13 to 14
ServerIron(config-vlan-2)# no spanning-tree
ServerIron(config-vlan-2)# exit
ServerIron(config)# server real web1 208.96.22.100
ServerIron(config-rs-web1)# port http
ServerIron(config-rs-web1)# port ssl
ServerIron(config-rs-web1)# port ftp
ServerIron(config-rs-web1)# port telnet
ServerIron(config-rs-web1)# server real web2 208.96.22.101
ServerIron(config-rs-web2)# port http
ServerIron(config-rs-web2)# port ssl
ServerIron(config-rs-web2)# port ftp
ServerIron(config-rs-web2)# port telnet
ServerIron(config-rs-web2)# server virtual-name-or-ip www.alterego.com 208.96.6.254
ServerIron(config-vs-www.alterego.com)# port http
ServerIron(config-vs-www.alterego.com)# port ssl sticky
ServerIron(config-vs-www.alterego.com)# port ftp
ServerIron(config-vs-www.alterego.com)# port telnet
ServerIron(config-vs-www.alterego.com)# bind http web1 http web2 http
ServerIron(config-vs-www.alterego.com)# bind ssl web1 ssl web2 ssl
ServerIron(config-vs-www.alterego.com)# bind ftp web1 ftp web2 ftp
ServerIron(config-vs-www.alterego.com)# bind telnet web1 telnet web2 telnet
ServerIron(config-vs-www.alterego.com)# exit
To identify the router port, configure the trunk group, assign ports 13 and 14 as the backup ports, assign round robin as the predictor (load balancing metric), and disable Spanning Tree, enter the following commands:
ServerIron(config)# server router-ports 11
ServerIron(config)# server backup ethernet 13 00e0.5201.0c72
ServerIron(config)# server predictor round-robin
ServerIron(config)# no span
ServerIron(config)# exit
ServerIron# write memory
ServerIron# reload
The MAC address assigned is a MAC address that is resident on either ServerIron1 or ServerIron2. Notice that because port 13 is the lead port for the trunk group, you do not need to configure any other ports within that group.

High Availability > Hot Standby SLB

Table of Contents Previous Next Print
Copyright © 2009 Brocade Communications Systems, Inc.