반응형

1. 스플릿 브레인 ( Splite-Brain )

- 일반 클러스터 환경에서 애플리케이션은 클러스터의 기본 노드에서 실행되고, 기본 노드에 오류가 발생한 경우 기본 노드의 역할을 보조 노드로 이동한다.
- 스플릿 브레인은 클러스터의 구성원이 서로 통신할 수 없지만, 실행 및 작동 가능한 상태에 있으며 이후에 공통 리소스의 소유권을 동시에 가져갈 때 발생한다.
- 클러스터 내의 모든 노드들이 자신이 Primary Node ( master ) 라고 인식해 이중 가동 현상이 발생하고, 각 노드들이 동시에 스토리지에 접근하기 때문에
데이터 동기화 및 복제에 비정상적인 트랜잭션을 발생시킨다.

2. 해결 방안

- 스플릿 브레인을 해결하기 위해 각종 분산 시스템에 적용되어 있는 쿼럼 ( Quorum = 정족수 ) 을 홀수로 구성해 정족수 투표를 진행해 주면 된다.
Quorum ? 합의체가 의사를 진행시키거나 의결을 하는 데 필요한 최소한의 인원수를 의미
다수의 노드로 구성된 클러스터 환경에서 스플릿 브레인이 발생하는 것을 방지하기 위해 사용된다.
- 분산 환경을 구성한 각 노드들을 투표권 1개, 쿼럼 장치는 모든 Node 의 투표권 - 1 을 행사한다.
- 스플릿 브레인 상황에서 정상적인 노드는 쿼럼 장치의 투표권을 가져와 정족수를 채우게 되고,
비정상 노드는 투표권을 가지오지 못해 정족수 미달로 동작을 멈추게 된다.

3. 예제

- 노드가 2개로 Cluster 구성되고, Quorum이 존재.
- 노드 A의 네트워크 단절이 발생할 경우 어떤 Node가 Primary가 될 지 투표 진행
- A, B 노드의 투표권 1개씩, 쿼럼 장치의 투표권 1개 ( 2 - 1) 이고 정족수는 3/2 = 1.5 => 2 가 된다.
- 이에 따라, 쿼럼 장치의 투표권을 가져온 노드가 Cluster 제어권을 갖고, 그렇지 못한 노드는 정족수 미달로 Cluster 동작이 중지 된다.

반응형

'Infra > Network' 카테고리의 다른 글

# [Network] 허브 ( Hub )  (0) 2023.06.27
# [Network] 스위치 ( Switch )  (0) 2023.05.22
# [Network] 게이트웨이 (Gateway)  (0) 2023.03.28
# [Network] Quorum  (0) 2022.12.09
# [Network] ICMP  (0) 2022.12.02

+ Recent posts