High Availability Clusters
Clustering is a load balancing technique where a group of servers are configured as a unit and work together to provide network services.
- allows multiple redundant processing nodes that share data with on another to accept connections.
- whereas load balancing distributes traffic between independent processing nodes
- if one node in the cluster stops working, connections can failover to a working node
- to clients, the cluster appears to be a single server
Virtual IP
Example
May want to provision two load balancer appliances so that if one fails, the other can still handle client connections.
- Unlike load balancing with a single appliance,
- the public IP used to access the service is shared between the two instances in the cluster
- referred to as virtual IP or shared or floating address
- instances are configured with a private connection, on which each is identified by its “real” IP address
- connection runs some type of redundancy protocol that enables the active node to “own” the virtual IP and respond to connections
- e.g., Common Address Redundancy Protocol (CARP)
- implements a heartbeat mechanism to allow failover to the passive node
- same topology can be used to deploy routers and firewalls for high availability and load sharing
Active-Passive and Active-Active Clustering
- In the previous example, if one node is active, the other is passive
- referred to as active-passive clustering
- Advantage:
- performance is not adversely affected during failover
- Disadvantage:
- hardware and operating system costs might be higher because of the unused capacity
- An active-active cluster means that both nodes are processing connections concurrently
- allows the administrator to use the maximum capacity from the available hardware while all nodes are functional
- in event of failover, workload of the failed node is immediately and transparently shifted onto the remaining node
- the workload on the remaining nodes is higher, and performance is degraded
Info
- In a standard active-passive configuration,
- each active node must be matched by a passive node
- To reduce costs with passive nodes,
and configurations are used:
: a single passive node is shared among multiple active nodes
- e.g., with five active nodes, instead of having five passive nodes, only one passive node is provisioned to take over for any of the active nodes that might fail
- reduces the number of passive nodes needed
: multiple passive nodes are shared among multiple active nodes
- e.g., with ten active nodes, there might be two or three passive nodes available
- balance between redundancy and cost-efficiency
Application Clustering
- clustering is very commonly used to provision fault-tolerant application services
- If an application server suffers a fault in the middle of a session
- the session state data will be lost
- Application clustering allows servers in the cluster to communicate session information to one another
