Managing HP Serviceguard for Linux, Sixth Edition, August 2006

Designing Highly Available Cluster Applications
Designing Applications to Run on Multiple Systems
Appendix B306
Each application or package should be given a unique name as well as a
relocatable IP address. Following this rule separates the application
from the system on which it runs, thus removing the need for user
knowledge of which system the application runs on. It also makes it
easier to move the application among different systems in a cluster for
for load balancing or other reasons. If two applications share a single IP
address, they must move together. Instead, using independent names
and addresses allows them to move separately.
For external access to the cluster, clients must know how to refer to the
application. One option is to tell the client which relocatable IP address
is associated with the application. Another option is to think of the
application name as a host, and configure a name-to-address mapping in
the Domain Name System (DNS). In either case, the client will
ultimately be communicating via the application’s relocatable IP
address. If the application moves to another node, the IP address will
move with it, allowing the client to use the application without knowing
its current location. Remember that each network interface must have a
stationary IP address associated with it. This IP address does not move
to a remote system in the event of a network failure.
Obtain Enough IP Addresses
Each application receives a
relocatable
IP address that is separate
from the stationary IP address assigned to the system itself. Therefore, a
single system might have many IP addresses, one for itself and one for
each of the applications that it normally runs. Therefore, IP addresses in
a given subnet range will be consumed faster than without high
availability. It might be necessary to acquire additional IP addresses.
Multiple IP addresses on the same network interface are supported only
if they are on the same subnetwork.
Allow Multiple Instances on Same System
Applications should be written so that multiple instances, each with its
own application name and IP address, can run on a single system. It
might be necessary to invoke the application with a parameter showing
which instance is running. This allows distributing the users among
several systems under normal circumstances, but it also allows all of the
users to be serviced in the case of a failure on a single system.