Toter Knoten im Pacemaker-Cluster: „CIB-Registrierung konnte nicht abgeschlossen werden“

Toter Knoten im Pacemaker-Cluster: „CIB-Registrierung konnte nicht abgeschlossen werden“

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+1unter Debian Jessie.

Pacemaker kann auf einem Knoten noch gestartet werden. crm_node -lAnschließ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/logfilescheinen 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 pacemakervon jessie-backportserfordert 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 cibaufgrund 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-rules2löste das Problem.

verwandte Informationen