Initial Configuration

From ClusterLabs

Current Versions

For information on configuring current versions of Pacemaker, see Clusters From Scratch and Pacemaker Explained in the Pacemaker documentation set, or the quickstart guides for specific Linux distributions.

This page contains only configuration information for obsolete versions of cluster software. It describes how to use heartbeat, or corosync 1 plus CMAN, as the cluster messaging layer with pre-2.0.0 versions of Pacemaker. It does not apply to corosync version 2 and greater, which is used with current versions of Pacemaker.

Heartbeat

Sample /etc/ha.d/ha.cf configuration file

 # Logging
 debug				1
 use_logd			false
 logfacility			daemon
 
 # Misc Options
 traditional_compression 	off
 compression			bz2
 coredumps			true
 
 # Communications
 udpport			691
 bcast				eth0
 autojoin			any
   
 # Thresholds (in seconds)
 keepalive			1
 warntime			6
 deadtime			10
 initdead			15

For more details on these and other available options, please refer to http://www.linux-ha.org/ha.cf

Corosync 1

Before starting Corosync for the first time, you need to create the authkey-file for authentication within cluster communication.

Create /etc/corosync/authkey
corosync-keygen #no arguments required

Then you need to copy that file to all of your nodes and put it in /etc/corosync/ with user=root, group=root and mode 0400.

Example /etc/corosync/corosync.conf configuration file
  totem {
 
 	version: 2
 
 	# How long before declaring a token lost (ms)
 	token:          5000
 
 	# How many token retransmits before forming a new configuration
 	token_retransmits_before_loss_const: 20
 
 	# How long to wait for join messages in the membership protocol (ms)
 	join:           1000
 
 	# How long to wait for consensus to be achieved before starting a new round of membership configuration (ms)
 	consensus:      7500
 
 	# Turn off the virtual synchrony filter
 	vsftype:        none
 
 	# Number of messages that may be sent by one processor on receipt of the token
 	max_messages:   20
 
 	# Disable encryption
 	secauth:	off
 
 	# How many threads to use for encryption/decryption
 	threads:   	0
 	
 	# Limit generated nodeids to 31-bits (positive signed integers)
 	clear_node_high_bit: yes
 	
 	# Optionally assign a fixed node id (integer)
 	# nodeid:         1234
 
 	interface {
 		ringnumber: 0
 
 		# The following three values need to be set based on your environment
 		bindnetaddr: 10.0.0.0
 		mcastaddr: 226.94.1.1
 		mcastport: 5405
 	}
 }
 
 logging {
 	fileline: off
 	to_syslog: yes
 	to_stderr: no
 	syslog_facility: daemon
 	debug: on
 	timestamp: on
 }
 
 amf {
 	mode: disabled
 }


CMAN

The CMAN configuration lives in /etc/cluster/cluster.conf.

As can be seen in the example below, the contents are quite simple to understand. You can read more about configuring CMAN for Pacemaker in Clusters from Scratch.

 <?xml version="1.0"?>
 <cluster config_version="1" name="mycluster">
   <logging debug="off"/>
   <clusternodes>
     <clusternode name="pcmk-1" nodeid="1">
       <fence>
         <method name="pcmk-redirect">
           <device name="pcmk" port="pcmk-1"/>
         </method>
       </fence>
     </clusternode>
     <clusternode name="pcmk-2" nodeid="2">
       <fence>
         <method name="pcmk-redirect">
           <device name="pcmk" port="pcmk-2"/>
         </method>
       </fence>
     </clusternode>
   </clusternodes>
   <fencedevices>
     <fencedevice name="pcmk" agent="fence_pcmk"/>
   </fencedevices>
 </cluster>

Enabling Pacemaker

Heartbeat

To instruct Heartbeat to start Pacemaker, add the following to /etc/ha.d/ha.cf

 crm yes

or, if you plan to enable STONITH

 crm respawn

Corosync

To instruct Corosync to load the quorum and messaging interfaces needed by pacemaker, create /etc/corosync/service.d/pcmk with the following fragment.

service {
	# Load the Pacemaker Cluster Resource Manager
	name: pacemaker
	ver:  1
}

CMAN

CMAN was originally written for rgmanager and assumes the cluster should not start until the node has quorum, so before we try to start the cluster, we need to disable this behavior:

 echo "CMAN_QUORUM_TIMEOUT=0" >> /etc/sysconfig/cman

A Special Note for People Switching Cluster Stacks

Corosync and Heartbeat identify nodes differently. This is reflected in the value of 'id' for 'node' objects in the CIB.

Since 'id' is the attribute by which a node is identified, this can lead to each node having duplicate entries in the CIB's 'nodes' section and cause unexpected cluster behavior.

To prevent this, delete the contents of 'nodes' before starting up the alternative cluster stack (and remember to zap the .sig files in the same directory after you do so).

Starting the Cluster

Heartbeat

 /etc/init.d/heartbeat start

Corosync

In the past the Corosync process would launch pacemaker, this is no longer the case. Pacemaker must be launched after Corosync has successfully started.

 /etc/init.d/corosync start
 /etc/init.d/pacemaker start

CMAN

Pacemaker must be launched after CMAN has successfully started.

 /etc/init.d/cman start
 /etc/init.d/pacemaker start

Next Steps

Try checking out some of our documentation