Pacemaker è un tool in grado di aiutarci nella configurazione e nella gestione di un cluster formato da due o più server. Difatti Pacemaker è un pacchetto in grado di comunicare con i due sistemi di alta affidabilità più diffusi in Linux: Heartbeat e Pacemaker.
In questo articolo abbiamo già analizzato come configurare un cluster utilizzando pacemaker in collaborazione con heartbeat; in quest’articolo, invece, useremo corosync al posto di heartbeat.
Innanzi tutto installiamo pacemaker e corosync sui due server che comporranno il cluster. In questo esempio utilizzerò come distribuzione Gentoo, ma qualsiasi altra va bene.
emerge pacemaker
In Gentoo corosync è una dipendenza di pacemaker, pertanto verrò installato automaticamente.
La configurazione di corosync è all’interno del file /etc/corosync/corosync.conf
/etc/corosync/corosync.conf
compatibility: whitetank
totem {
version: 2
secauth: off
threads: 0
interface {
ringnumber: 0
bindnetaddr: 192.168.0.100 # <------Sostituire l'ip del server
mcastaddr: 226.94.1.1
mcastport: 5405
}
}
logging {
fileline: off
to_stderr: no
to_logfile: yes
to_syslog: yes
logfile: /var/log/cluster/corosync.log
debug: off
timestamp: on
logger_subsys {
subsys: AMF
debug: off
}
}
amf {
mode: disabled
}
aisexec {
user: root
group: root
}
service {
name: pacemaker
ver: 0
}
Riportiamo questa configurazione sul secondo server, ovviamente modificando l’indirizzo IP e avviamo il demone su entrambi i server:
/etc/init.d/corosync start
Dopo qualche minuto il cluster dovrebbe essere attivo:
crm_mon -1 | grep Online Online: [ server01 server02 ]
Ora possiamo utilizzare l’interfaccia crm di Pacemaker per creare le risorse condivise.
Innanzi tutto configuriamo i parametri di default:
crm configure property no-quorum-policy=ignore property stonith-enabled=false property default-resource-stickiness=1000 commit bye
Ora, ad esempio, configuriamo un ip condiviso:
crm configure primitive lan_ip IPaddr params ip=192.168.0.250 cidr_netmask="255.255.255.0" nic="eth0" op monitor interval="40s" timeout="20s" commit bye
Infine settiamo il nodo “master” come preferito:
crm configure location master_pref lan_ip 100: master commit bye