업그레이드 후 2노드 Pacemaker 클러스터가 더 이상 작동하지 않는 상황이 발생했습니다. 패키지 버전은 Debian Jessie 아래에 pacemaker 1.1.16-1~bpo8+
있습니다 .corosync 2.4.2-3~bpo8+1
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.so
. pacemaker
from 패키지 는 필수 (현재 패키지 설명의 버그일 수 있음) jessie-backports
만 필요 하지만 (또한 from )의 현재 버전은 1.1.16입니다.>= 1.0.10
libpe-rules2
jessie-backports
이전 버전의 라이브러리 cib
에서는 동적 라이브러리의 정의되지 않은 기호로 인해 프로세스가 실패했습니다. 이는 로 시작하여 pacemakerd
(실제로는 cib
) 드러났습니다 strace -f
. 업그레이드하여 apt-get install libpe-rules2
상황을 해결했습니다.