RHEL 7 – Redhat Cluster with Pacemaker – Overview – Part 2

Pacemaker is robust and powerful opensource resource manager  which is shipping with  Redhat Enterprise Linux 7 as High Availability Add-on . Pacemaker simplified the cluster configuration and cluster management on RHEL 7 which is really good for system administrators. Compare to the prior redhat cluster release, Redhat cluster 7 looks completely different with corosync cluster engine and pacemaker resource manager. In this article , we will see the Redhat cluster core components and it’s responsibility.


Redhat Cluster Core Components:


1.Resource Agents

Resource agents are nothing but a scripts that start, stop and monitor them.


2.Resource Manager 

Pacemaker provides the brain that processes and reacts to events regarding the cluster. These events include nodes joining or leaving the cluster.  Resource events caused by failures, maintenance and scheduled activities and other administrative actions. Pacemaker will compute the ideal state of the cluster and plot a path to achieve it after any of these events. This may include moving resources, stopping nodes and even forcing them offline with remote power switches.


3. Low-level infrastructure:

Corosync provide reliable messaging, membership and quorum information about the cluster.

Redhat Cluster with Pacemaker
Redhat Cluster with Pacemaker





Pacemaker is responsible to provide maximum availability for your cluster services/resources by detecting and recovering from node and resource-level failures. It uses messaging and membership capabilities provided by  Corosync to keep the resource available on any of the cluster nodes.

  • Detection and recovery of node and service-level failures
  • Storage agnostic, no requirement for shared storage
  • Resource agnostic, anything that can be scripted can be clustered
  • Supports fencing (STONITH ) for ensuring data integrity
  • Supports large (32 node) and small clusters  (2  node)
  • Supports both quorate and resource-driven clusters
  • Supports practically any redundancy configuration
  • Automatically replicated configuration that can be updated from any node
  • Ability to specify cluster-wide service ordering, colocation and anti-colocation
  • Support for advanced service types
    • Clones: for services which need to be active on multiple nodes
    • Multi-state: for services with multiple modes (e.g. master/slave, primary/secondary)
  • Unified, scriptable cluster management tools

Notes from http://clusterlabs.org/.


Pacemaker’s key components:


  • Cluster Information Base (CIB)

It uses XML format file (cib.xml) to represent the cluster configuration and current state of cluster to all the                  nodes. This file be kept in sync across all the nodes and used by PEngine to compute ideal state of the cluster                 and how it should be achieved.


  • Cluster Resource Management daemon (CRMd)

List of instruction will feed to the designated controller (DC).Pacemaker centralizes all cluster  decision                          making by electing one of the CRMd instances to act as a master. If one CRMd instance fails, automatically                     new one will establish.


  • Local Resource Management daemon (LRMd)

LRMd is responsible to hear the instruction from PEngine.


  • Policy Engine (PEngine or PE)

PEngine uses the CIB XML file to determine the cluster state and recalculate the ideal cluster state based on                  the unexpected results.


  • Fencing daemon (STONITHd)

If any node misbehaves , it better to turned off instead of corrupting the data on shared storage. Shoot-The-                 Other-Node-In-The-Head (STONITHd) offers fencing mechanism in RHEL 7.


Pacemaker Internals



Corosync is an opensource  cluster engine which communicates with multiple cluster nodes and updates the cluster information database (cib.xml) frequently . In previous redhat cluster release, “cman” was responsible for cluster interconnect, messaging and membership capabilities. Pacemaker also supports “heartbeat” which is another opensource cluster engine (Not available in RHEL 7).


Types of Redhat Cluster supported with Pacemaker:


  1. Active/Passive cluster for DR setup:

In the following cluster model, we are using pacemaker and DRBD (Remote Replication) for DR solutions. If production site goes down, Redhat cluster will automatically activates the DR site.

Active/Passive  Cluster
Active/Passive Cluster


2. Active/Passive  cluster for Backup solution:

The following digram shows the Active/Passive shared cluster with common Backup node.

Active Passive shared cluster with common Backup node
Active/Passive shared cluster with common Backup node


3. Active/Active Cluster:

If we have a shared storage, every node can potentially be used for failover. Pacemaker can even run multiple copies of services to spread out the workload across multiple nodes.

Active/Active cluster
Active/Active cluster


Hope this article is informative to you. Share it ! Comment it !! Be Sociable !!!


One comment

  1. Please tell me how can i configure the active active cluster in rhel7 , to use with pacemaker and corosync , i want to highly avalaible rabbitmq application , in all three node cluster