Pacemaker クラスター内のデッド ノード:「CIB 登録を完了できませんでした」

Pacemaker クラスター内のデッド ノード:「CIB 登録を完了できませんでした」

アップグレード後、2 ノードの Pacemaker クラスターが動作しなくなる状況があります。パッケージ バージョンはpacemaker 1.1.16-1~bpo8+corosync 2.4.2-3~bpo8+1Debian Jessie では です。

Pacemaker は 1 つのノードでまだ起動できます。crm_node -lその後、そのノードはオンラインとしてリストされ、2 番目のノードは失われたものとしてリストされます。

Pacemaker は 2 番目のノードで起動できなくなりました。次のログ メッセージは/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

したがって、2 番目のノードが CIB 登録を試行し、16 回の失敗後に Pacemaker の起動をキャンセルし、おそらく登録できないために最初のノードが 2 番目のノードをデッドと見なすように見えます。

このような状況から誰が抜け出せるでしょうか?

答え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状況は解決しました。

関連情報