Date: 6월 23, 2022
스플릿 브레인(Split Brain)이란 무엇이며 이를 피하는 방법
우리가 논의한 바와 같이, 고가용성 클러스터 환경에는 하나의 활성 노드와 활성 노드가 실패하거나 응답을 중지할 때 서비스를 인계할 하나 이상의 대기 노드가 있습니다.
이것은 노드 간의 네트워크 계층을 고려할 때까지 합리적인 가정처럼 들립니다. 노드 간의 네트워크 경로가 다운되면 어떻게 됩니까?
이제 어느 노드도 다른 노드와 통신할 수 없으며 이 상황에서 대기 서버는 활성 노드가 실패했다고 생각하는 것을 기반으로 스스로를 활성 서버로 승격할 수 있습니다. 이로 인해 두 노드가 모두 '활성' 상태가 되어 서로가 다른 노드를 죽은 것으로 간주하게 됩니다. 결과적으로 두 노드의 데이터가 변경됨에 따라 데이터 무결성과 일관성이 손상됩니다. 이것은 "스플릿 브레인" .
스플릿 브레인 시나리오를 피하려면 클러스터 내에 쿼럼 노드('증인'이라고도 함)를 설치해야 합니다. 쿼럼 노드를 추가하면(짝수 수의 노드로 구성된 클러스터에) 홀수 수의 노드(3, 5, 7 등)가 생성되며 노드는 클러스터 내에서 활성 노드로 작동해야 하는 노드를 결정하기 위해 투표합니다.
아래 예에서는 노드 B가 포함된 서버 랙이 손실되었습니다. 랜 연결성. 이 시나리오에서 클러스터 환경에 세 번째 노드를 추가하면 시스템은 여전히 활성 노드가 되어야 하는 노드를 결정할 수 있습니다.
쿼럼/감시 기능은 시오스 보호 스위트. 설치 시 Quorum/Witness는 모든 노드(쿼럼 노드 뿐만 아니라)에서 선택되고 모든 노드(쿼럼 노드 포함) 간에 통신 경로가 정의됩니다.
쿼럼 노드는 활성 서비스를 호스팅하지 않습니다. 유일한 역할은 노드 통신에 참여하여 활성 상태를 결정하고 통신 중단 시 '동률 투표'를 제공하는 것입니다.
시오스 또한 지원 IO 펜싱 및 스토리지 쿼럼 장치로 사용되며 이러한 구성에서는 추가 쿼럼 노드가 필요하지 않습니다.