및 스크립트를 사용하여 두 노드에 crm-fence-peer.9.sh
DRBD 리소스 수준 보호를 구현했습니다 .crm-unfence-peer.9.sh
이제 랩 노드에서 다음과 같은 동작이 발생합니다.
두 노드 모두 온라인 상태
otrs1
입니다 .otrs2
리소스가 실행 중입니다.
otrs1
drbdadm status
otrs1
주요 역할을 하는 것과otrs2
작은 역할을 하는 것에 따라
이제 재부팅하면 다음 메시지가 나타납니다 otrs1
.otrs2
리소스가 다음으로 이동된 것을 확인할 수 있습니다 otrs2
.
복제 링크가 다시 작동하고 DRBD가 동기화 프로세스를 완료하면 제약 조건이 제거됩니다. 이제 클러스터 관리자가 리소스를 자유롭게 승격할 수 있습니다. 실제로 이제 제약 조건이 제거되었습니다.
otrs2
그러나 (현재 활성 노드)에서 NIC를 비활성화하면 분할 두뇌가 발생하는 것을 볼 수 있습니다.
분명히 이것은 분할 두뇌 시나리오입니다. 왜 그럴까요? 때문에
crm-fence-peer 스크립트의 경우 DRBD에 대한 네트워크 링크가 중단될 때 Pacemakers 통신을 계속 사용할 수 있어야 합니다.
원천https://docs.linbit.com/docs/users-guide-9.0/#s-automatic-split-brain-recovery-configuration
답변1
옳은. 이는 다음과 같은 이유 때문일 가능성이 높습니다.
crm-fence-peer 스크립트의 경우 DRBD에 대한 네트워크 링크가 중단될 때 Pacemakers 통신을 계속 사용할 수 있어야 합니다.
NIC/네트워크 링크가 하나만 있다고 가정합니다. 따라서 NIC를 제거하면 Pacemaker 클러스터가 분할됩니다. 클러스터 노드는 더 이상 전혀 통신할 수 없으므로 현재 마스터는 피어와 통신할 수 없기 때문에 피어의 CIB에 제약 조건을 적용할 수 없습니다.
이 시나리오에서 분할 브레인을 방지하려면 진정한 노드 수준 보호(STONITH) 또는 Corosync에 대한 최소한 여러 통신 경로가 필요합니다.