Pacemaker 叢集中的死節點:“無法完成 CIB 註冊”

Pacemaker 叢集中的死節點:“無法完成 CIB 註冊”

我遇到過這樣的情況:升級後,兩節點 Pacemaker 叢集不再運作。軟體包版本pacemaker 1.1.16-1~bpo8+corosync 2.4.2-3~bpo8+1Debian Jessie 下。

Pacemaker 仍然能夠在一個節點上啟動。crm_node -l然後將該節點列為在線,第二個節點列為遺失。

Pacemaker 無法再在第二個節點上啟動。以下日誌訊息/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 註冊並在 16 次失敗嘗試後取消 Pacemaker 啟動,而第一個節點可能因為無法註冊而認為第二個節點已死亡。

誰能擺脫這樣的困境呢?

答案1

根本原因是libpe-rules2提供的軟體包版本太舊libpe-rules2.sopacemaker來自 的軟體包jessie-backports僅需要>= 1.0.10(可能是當前軟體包描述中的錯誤),但libpe-rules2(也來自jessie-backports)的當前版本是 1.1.16。

cib由於動態庫中未定義的符號,舊版本的庫導致進程失敗。這是透過以 開始pacemakerd(並且實際上cib)揭示的strace -f。升級apt-get install libpe-rules2解決了這個問題。

相關內容