:compat-mode: legacy
= The Cluster Layer =

== Pacemaker and the Cluster Layer ==

Pacemaker utilizes an underlying cluster layer for two purposes:

* obtaining quorum
* messaging between nodes

Currently, only Corosync 2 and later is supported for this layer.

== Managing Nodes in a Corosync-Based Cluster ==

=== Adding a New Corosync Node ===

indexterm:[Corosync,Add Cluster Node]
indexterm:[Add Cluster Node,Corosync]

To add a new node:

. Install Corosync and Pacemaker on the new host.
. Copy +/etc/corosync/corosync.conf+ and +/etc/corosync/authkey+ (if it exists)
  from an existing node. You may need to modify the *mcastaddr* option to match
  the new node's IP address.
. Start the cluster software on the new host. If a log message containing
  "Invalid digest" appears from Corosync, the keys are not consistent between
  the machines.

=== Removing a Corosync Node ===

indexterm:[Corosync,Remove Cluster Node]
indexterm:[Remove Cluster Node,Corosync]

Because the messaging and membership layers are the authoritative
source for cluster nodes, deleting them from the CIB is not a complete
solution.  First, one must arrange for corosync to forget about the
node (*pcmk-1* in the example below).

. Stop the cluster on the host to be removed. How to do this will vary with
  your operating system and installed versions of cluster software, for example,
  `pcs cluster stop` if you are using pcs for cluster management.
. From one of the remaining active cluster nodes, tell Pacemaker to forget
  about the removed host, which will also delete the node from the CIB:
+
----
# crm_node -R pcmk-1
----

=== Replacing a Corosync Node ===

indexterm:[Corosync,Replace Cluster Node]
indexterm:[Replace Cluster Node,Corosync]

To replace an existing cluster node:

. Make sure the old node is completely stopped.
. Give the new machine the same hostname and IP address as the old one.
. Follow the procedure above for adding a node.
