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