Nó morto no cluster Pacemaker: “Não foi possível concluir o registro CIB”

Nó morto no cluster Pacemaker: “Não foi possível concluir o registro CIB”

Tenho uma situação em que um cluster Pacemaker de dois nós não funciona mais após uma atualização. As versões do pacote estão pacemaker 1.1.16-1~bpo8+sob corosync 2.4.2-3~bpo8+1Debian Jessie.

O Pacemaker ainda é capaz de iniciar em um nó. crm_node -lem seguida, lista esse nó como online e o segundo como perdido.

O marcapasso não pode mais ser iniciado no segundo nó. As seguintes mensagens de log /var/log/corosync/logfileparecem pertinentes:

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

Portanto, parece que o segundo nó tenta o registro do CIB e cancela a inicialização do Pacemaker após 16 tentativas fracassadas, e que o primeiro nó considera o segundo como morto, talvez porque não consegue registrar.

Quem pode sair de uma situação como esta?

Responder1

A causa raiz acabou sendo uma versão muito antiga do package libpe-rules2, que fornece o libpe-rules2.so. O pacote pacemakerfrom jessie-backportsrequer apenas >= 1.0.10(talvez um bug na descrição do pacote atual), mas a versão atual de libpe-rules2(também de jessie-backports) é 1.1.16.

A versão mais antiga da biblioteca fazia o processo cibfalhar devido a símbolos indefinidos na biblioteca dinâmica. Isto foi revelado começando pacemakerd(e na verdade cib) com strace -f. Atualizar com apt-get install libpe-rules2resolveu a situação.

informação relacionada