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+1
Debian Jessie.
O Pacemaker ainda é capaz de iniciar em um nó. crm_node -l
em 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/logfile
parecem 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 pacemaker
from jessie-backports
requer 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 cib
falhar 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-rules2
resolveu a situação.