SIOS recommends the use of bonded interfaces via the standard Linux NIC bonding mechanism in any LifeKeeper release where a backup interface is required. Beginning with LifeKeeper Release 7.4.0, bonded interfacing is the only supported method. For releases prior to 7.4.0, the backup interface feature in the IP kit, described below, can be used.
The IP local recovery feature allows LifeKeeper to move a protected IP address from the interface on which it is currently configured to another interface in the same server when a failure has been detected by the IP Recovery Kit. Local recovery provides you an optional backup mechanism so that when a particular interface fails on a server, the protected IP address can be made to function on the backup interface, therefore avoiding an entire application/resource hierarchy failing over to a backup server.
Local Recovery Scenario
IP local recovery allows you to specify a single backup network interface for each LifeKeeper-protected IP address on a server. In order for the backup interface to work properly, it must be attached to the same physical network as the primary interface. The system administrator is expected to insure that a valid interface is being chosen. Note that it is completely reasonable and valid to specify a backup interface on one server but not on another within the cluster (i.e. the chosen backup interface on one server has no impact on the choice of a backup on any other server).
When a failure of an IP address is detected by the IP Recovery Kit, the resulting failure triggers the execution of the IP local recovery script. LifeKeeper first attempts to bring the IP address back in service on the current network interface. If that fails, LifeKeeper checks the resource instance to determine if there is a backup interface available. If so, it will then attempt to move the IP address to the backup interface. If all local recovery attempts fail, LifeKeeper will perform a failover of the IP address and all dependent resources to a backup server.
The backup interface name can be identified in the Information field of the IP resource instance. The Information field values are space-separated and are, in order, the primary server name, the network interface name, the IP address, the netmask and the backup interface name. Here is an example:
ServerA eth0 172.17.106.10 fffffc00 eth1
If no backup interface is configured, the 5th field value will be set to none.
When the protected IP address is moved to the backup interface, the 2nd and 5th field values are swapped so that the original backup interface becomes the primary and vice versa. The result is that during LifeKeeper startups, switchovers and failovers, LifeKeeper always attempts to bring the IP address in service on the interface on which it was last configured.
Command Line Operations
In LifeKeeper for Linux v3.01 or later, the mechanism for adding or removing a backup interface from an existing IP resource instance is provided as a command line utility. This capability is provided by the lkipbu utility. The command and syntax are:
lkipbu [-d machine] -{a|r} -t tag -f interface
The add operation (specified via the -a option) will fail if a backup interface has already been defined for this instance or if an invalid interface name is provided. The remove operation (specified via the -r option) will fail if the specified interface is not the current backup interface for this instance.
A command line mechanism is also provided for manually moving an IP address to its backup interface. This capability is specified via the -m option using the following syntax:
lkipbu [-d machine] -m -t tag
This operation will fail if there is no backup interface configured for this instance. If the specified resource instance is currently in service, the move will be implemented by using the ipaction remove operation to un-configure the IP address on the current interface, and ipaction restore to configure it on the backup interface. Following the move, the execute_broadcast_ping function will be used to verify the operation of the address on the new interface, and if successful, the interface values will be swapped in the IP resource instance INFO field. If the specified IP resource instance is out-of-service when this command is executed, the primary and backup interface values will simply be swapped in the INFO field.
The lkipbu utility also provides an option for retrieving the currently defined primary and backup interfaces for a specified IP resource instance along with the state of the resource on the primary interface (up or down). This capability is specified via the -s option using the following syntax:
lkipbu [-d machine] -s -t tag
The output will be similar to the following:
IP address: 172.17.106.10
Netmask: 255.255.252.0
Primary interface: eth0 (up)
Backup interface: eth1
Refer to the lkipbu(8) man page for further detail.
Post your comment on this topic.