Ich habe eine Situation, in der ein Pacemaker-Cluster mit zwei Knoten nach einem Upgrade nicht mehr funktioniert. Paketversionen sind pacemaker 1.1.16-1~bpo8+
und corosync 2.4.2-3~bpo8+1
unter Debian Jessie.
Pacemaker kann auf einem Knoten noch gestartet werden. crm_node -l
Anschließend wird dieser Knoten als online und der zweite als verloren aufgelistet.
Pacemaker kann auf dem zweiten Knoten nicht mehr gestartet werden. Die folgenden Protokollmeldungen /var/log/corosync/logfile
scheinen relevant zu sein:
cib: info: validate_with_relaxng: Creating RNG parser context
pacemakerd: error: pcmk_child_exit: The cib process (1234) exited: Key has expired (127)
pacemakerd: notice: pcmk_process_exit: Respawning failed child process: cib
...
cib: info: validate_with_relaxng: Creating RNG parser context
pacemakerd: error: pcmk_child_exit: The cib process (1235) exited: Key has expired (127)
pacemakerd: notice: pcmk_process_exit: Respawning failed child process: cib
...
crmd: warning: do_cib_control: Couldn't complete CIB registration 1 times... pause and retry
...
crmd: warning: do_cib_control: Couldn't complete CIB registration 16 times... pause and retry
crmd: notice: crm_shutdown: Shutting down cluster resource manager | limit=1200000ms
pacemakerd: notice: pcmk_shutdown_worker: Shutdown complete
Es scheint also, als ob der zweite Knoten eine CIB-Registrierung versucht und den Pacemaker-Start nach 16 fehlgeschlagenen Versuchen abbricht und dass der erste Knoten den zweiten als tot betrachtet, vielleicht weil er sich nicht registrieren kann.
Wen kann man aus einer solchen Situation herausholen?
Antwort1
Die Grundursache stellte sich als eine zu alte Version des Pakets heraus libpe-rules2
, das bereitstellt libpe-rules2.so
. Das Paket pacemaker
von jessie-backports
erfordert nur >= 1.0.10
(möglicherweise ein Fehler in der aktuellen Paketbeschreibung), aber die aktuelle Version von libpe-rules2
(ebenfalls von jessie-backports
) ist 1.1.16.
Bei der älteren Version der Bibliothek schlug der Prozess cib
aufgrund nicht definierter Symbole in der dynamischen Bibliothek fehl. Dies wurde beim Starten pacemakerd
(und tatsächlich cib
) mit festgestellt strace -f
. Ein Upgrade mit apt-get install libpe-rules2
löste das Problem.