1 Introduction
Pacemaker est la suite logique de Heartbeat qui a fusionné avec d'autres logiciels libre afin d'arriver à une perfection. Pacemaker est donc un logiciel de gestion de ressources. Il doit être couplé à Corosync qui lui va gérer les échanges d'informations entre noeuds.
L'installation et la configuration est faites ici sur une Debian 6.
2 Installation
Pour l'installation, rien de plus simple sur une Debian :
aptitude
|
aptitude install pacemaker corosync
|
3 Configuration
3.1 Corosync
Pour la configuration de Corosync, nous allons avoir besoin de générer des clefs de cryptage pour l'échange d'informations intra clusters (entre les noeuds) :
corosync-keygen
|
> corosync-keygen
Corosync Cluster Engine Authentication key generator.
Gathering 1024 bits for key from /dev/random.
Press keys on your keyboard to generate entropy.
Press keys on your keyboard to generate entropy (bits = 136).
Press keys on your keyboard to generate entropy (bits = 200).
Press keys on your keyboard to generate entropy (bits = 264).
Press keys on your keyboard to generate entropy (bits = 328).
Press keys on your keyboard to generate entropy (bits = 392).
Press keys on your keyboard to generate entropy (bits = 456).
Press keys on your keyboard to generate entropy (bits = 520).
Press keys on your keyboard to generate entropy (bits = 584).
Press keys on your keyboard to generate entropy (bits = 648).
Press keys on your keyboard to generate entropy (bits = 712).
Press keys on your keyboard to generate entropy (bits = 776).
Press keys on your keyboard to generate entropy (bits = 840).
Press keys on your keyboard to generate entropy (bits = 904).
Press keys on your keyboard to generate entropy (bits = 968).
Writing corosync key to /etc/corosync/authkey.
|
Envoyez ensuite avec un scp par exemple cette configuration vers les autres nodes :
scp
|
scp -r /etc/corosync root@nodex:/etc/
|
Ensuite éditez sur chacun des noeuds, le fichier de configuration de Corosync et adaptez la partie réseaux à chacun d'eux :
/etc/corosync/corosync.conf
|
# Please read the openais.conf.5 manual page
totem {
version: 2
# How long before declaring a token lost (ms)
token: 3000
# How many token retransmits before forming a new configuration
token_retransmits_before_loss_const: 10
# How long to wait for join messages in the membership protocol (ms)
join: 60
# How long to wait for consensus to be achieved before starting a new round of membership configuration (ms)
consensus: 3600
# 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
# Limit generated nodeids to 31-bits (positive signed integers)
clear_node_high_bit: yes
# Disable encryption
secauth: off
# How many threads to use for encryption/decryption
threads: 0
# Optionally assign a fixed node id (integer)
# nodeid: 1234
# This specifies the mode of redundant ring, which may be none, active, or passive.
rrp_mode: none
interface {
# The following values need to be set based on your environment
ringnumber: 0
bindnetaddr: 192.168.20.4
mcastaddr: 226.94.1.1
mcastport: 5405
}
}
amf {
mode: disabled
}
service {
# Load the Pacemaker Cluster Resource Manager
ver: 0
name: pacemaker
}
aisexec {
user: root
group: root
}
logging {
fileline: off
to_stderr: yes
to_logfile: no
to_syslog: yes
syslog_facility: daemon
debug: off
timestamp: on
logger_subsys {
subsys: AMF
debug: off
tags: enter
|
Pour finir, éditez le fichier /etc/default/corosync afin de lui dire qu'il faut qu'il démarre au boot de la machine :
/etc/default/corosync
|
# start corosync at boot [yes|no]
START=yes
|
Maintenant activons notre nouvelle configuration sur tous les noeuds :
|
/etc/init.d/corosync restart
|
Maintenant on peut vérifier l'état du cluster :
crm_mon
|
> crm_mon --one-shot -V
crm_mon[427]: 2010/12/20_21:51:54 ERROR: unpack_resources: Resource start-up disabled since no STONITH resources have been defined
crm_mon[427]: 2010/12/20_21:51:54 ERROR: unpack_resources: Either configure some or disable STONITH with the stonith-enabled option
crm_mon[427]: 2010/12/20_21:51:54 ERROR: unpack_resources: NOTE: Clusters with shared data need STONITH to ensure data integrity
============
Last updated: Mon Dec 20 21:51:54 2010
Stack: openais
Current DC: zazu - partition WITHOUT quorum
Version: 1.0.9-74392a28b7f31d7ddc86689598bd23114f58978b
2 Nodes configured, 2 expected votes
0 Resources configured.
============
Online: [ zazu shenzi ]
|
Maintenant nous allons configurer quelques choses :
- Pas de quorum (car cluster à 2 noeuds)
- Pas de Stonith (Fencing)
- Pour le stickness, c'est pour ne pas avoir de ressource en auto-failback
crm
|
> crm
crm(live)# configure
crm(live)configure# property no-quorum-policy=ignore
crm(live)configure# property stonith-enabled=false
crm(live)configure# property default-resource-stickiness=1000
crm(live)configure# commit
crm(live)configure# bye
|