Pacemaker

Begriffe

  • pcs: steht für „Pacemaker/Corosync Configuration System. pcs ist ein (Remote-)Konfigurationstool für Corosync und Pacemaker und kommt mit einem Daemon daher.

  • Ressource: ein Dienst, der von Pacemaker verwaltet wird

  • crmd: der Name des Pacemaker-Dienstes/Prozesses

  • lrmd: Local Resource Management Daemon, führt lokal Resource Agents aus

  • Resource Agents: nichts anderes als Shell-Skripte, die mind. die Parameter start, stop und monitor kennen

  • crm „Cluster Resource Manager“ - Vorgänger von pcs

Verwendung

Beschrieben für RHEL 7. Hier werden zwei Nodes namens paceA und paceB verwendet.

# auf allen
yum -y install pacemaker corosync pcs
systemctl enable --now corosync
systemctl enable --now pacemaker
systemctl enable --now pcsd

Firewalling nicht vergessen:

  • 2224/tcp: https-Webinterface

Authentication einrichten:

# auf allen
echo CHANGEME | passwd --stdin hacluster
# nur auf dem ersten, -u == username, -p == password
pcs cluster auth paceA paceB -u hacluster -p CHANGEME --force

Das Webinterface ist dann mit obigen Credentials auf https://node:2224 erreichbar.

Cluster erzeugen:

# auf dem ersten
pcs cluster setup --force --name pacemaker1 paceA paceB
pcs cluster start

Konfiguration - beispielsweise global STONITH abschalten:

pcs property set stonith-enabled=false

Ressource erzeugen, z.B. eine SAP HANA-Ressource:

# auf dem ersten (im echten Leben statt "Dummy" einen Agent wie "SAPHana" verwenden)
pcs resource create my_first_svc ocf:pacemaker:Dummy op monitor interval=120s
# und Ressource aktivieren
pcs resource enable my_first_svc

# Etwas komplexeres Beispiel für ein Master/Slave-Setup. Die Ressource heisst nachher
# "SAPHana_AP0_00-master" mit zwei Instanzen "SAPHana_AP0_00"
pcs resource create SAPHana_AP0_00 ocf:pacemaker:Dummy master meta notify=true clone-max=2 clone-node-max=1 interleave=true
# ... und STONITH für diese Ressource disablen
pcs stonith disable SAPHana_AP0_00-master
# und Ressource aktivieren
pcs resource enable SAPHana_AP0_00-master

# das gleiche für einen echten SAP HANA Agent (der andere Properties unterstützt)
pcs resource create SAPHana_AP0_00 SAPHana SID=AP0 InstanceNumber=00 PREFER_SITE_TAKEOVER=true DUPLICATE_PRIMARY_TIMEOUT=7200 AUTOMATED_REGISTER=false master meta notify=true clone-max=2 clone-node-max=1 interleave=true

Status abfragen:

pcs status --full
pcs cluster status
pcs resource show --full

Dieses Setup überlebt auch einen Neustart beider Maschinen per reboot ohne weitere Massnahmen.

Testing - Service-Failure simulieren

crm_resource --resource my_first_svc --force-stop

Troubleshooting

Für den Start hilft ein Blick ins Web-GUI. Dann:

systemctl status corosync
systemctl status pacemaker
systemctl status pcsd

# gesetzte Config-Optionen erhalten
pcs property list

# alle Config-Optionen
pcs property list --all

# Config prüfen
crm_verify --live-check --verbose

# Status interaktiv anzeigen
crm_mon --show-node-attributes

# Resource untersuchen
pcs resource debug-...
    debug-demote   debug-monitor  debug-promote  debug-start    debug-stop

# Ressource aufräumen
pcs resource cleanup <resource-name>

# anderen Node abschiessen
pcs stonith fence paceB

tail -f /var/log/pacemaker.log /var/log/cluster/corosync.log

crm-Kommandos

  • crm_attribute

  • crm_diff

  • crm_error

  • crm_failcount

  • crm_master

  • crm_mon

  • crm_node

  • crm_report

  • crm_resource

  • crm_shadow

  • crm_simulate

  • crm_standby

  • crm_ticket

  • crm_verify