У меня ситуация, когда двухузловой кластер Pacemaker больше не работает после обновления. Версии пакета pacemaker 1.1.16-1~bpo8+
и corosync 2.4.2-3~bpo8+1
под Debian Jessie.
Pacemaker все еще может запускаться на одном узле. crm_node -l
затем перечисляет этот узел как подключенный, а второй как потерянный.
Кардиостимулятор больше не может запускаться на втором узле. Следующие сообщения журнала в /var/log/corosync/logfile
кажутся уместными:
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
Таким образом, похоже, что второй узел пытается зарегистрировать CIB и отменяет запуск Pacemaker после 16 неудачных попыток, и что первый узел считает второй мертвым, возможно, потому, что он не может зарегистрироваться.
Кто может выйти из такой ситуации?
Основная причина оказалась в слишком старой версии пакета. libpe-rules2
, который обеспечивает libpe-rules2.so
. Пакет pacemaker
из jessie-backports
требуется только >= 1.0.10
(возможно, ошибка в текущем описании пакета), но текущая версия libpe-rules2
(также из jessie-backports
) равно 1.1.16.
Более старая версия библиотеки сделала процесс cib
сбой из-за неопределенных символов в динамической библиотеке. Это было обнаружено при запуске pacemakerd
(и в действительности cib
) с участием strace -f
. Обновление с apt-get install libpe-rules2
разрешил ситуацию.