카테고리 없음
Split Brain이란? — 클러스터 시스템에서 반드시 알아야 할 개념
idea9329
2025. 6. 2. 22:02
반응형
**Split Brain(스플릿 브레인)**은 클러스터 환경에서 자주 등장하는 심각한 장애 상황입니다. 이 개념을 이해하는 것은 고가용성 시스템을 설계하거나 운영할 때 매우 중요합니다.
Split Brain의 정의
Split Brain은 클러스터 시스템에서 네트워크 장애로 인해 노드 간 연결이 끊어졌을 때 발생합니다. 이때 클러스터의 일부 노드가 서로를 인식하지 못하고 각자 독립적으로 운영을 지속하면서 중복된 리더 노드가 생성되고, 서로 다른 데이터 변경이 동시에 발생하는 상황을 말합니다. 결과적으로 데이터 불일치, 충돌, 심각한 장애로 이어질 수 있습니다.
Split Brain 발생 원인
- 네트워크 분리(Network Partition)
- 라우팅 오류
- 스위치 장애
- 방화벽 설정 오류
- 클러스터 소프트웨어 버그
Split Brain이 위험한 이유
- 데이터 충돌: 각 노드가 다른 데이터를 쓰게 됨
- 서비스 장애: 동일 서비스가 두 곳에서 동시 실행될 수 있음
- 데이터 손실: 장애 복구 시 어느 데이터를 선택해야 할지 불명확
- 운영 복잡성 증가: 수동 개입이 필요
Split Brain 예방 방법
예방 방법설명
Quorum(정족수) | 클러스터가 정상 운영될 최소 노드 수를 확보해야 함 |
STONITH | 장애 노드를 강제로 종료하여 중복 방지 |
Fencing | 문제 발생시 자원을 강제로 회수 |
Heartbeat | 지속적인 노드 상태 감시 |
Witness Node | Tie-breaker 역할 수행 |
Split Brain이 잘 발생하는 시스템 예시
- Redis Sentinel 클러스터
- MongoDB Replica Set
- MySQL Galera Cluster
- GlusterFS
- Ceph Storage
- Pacemaker + Corosync 클러스터
실제 Split Brain 사례
예를 들어 Redis Sentinel에서 Split Brain이 발생하면 두 개의 마스터가 동시에 존재하게 되어 클라이언트가 서로 다른 마스터에 데이터를 쓰고, 데이터가 뒤섞이는 상황이 발생할 수 있습니다. 이로 인해 복구가 복잡해지고 데이터 무결성이 손상될 수 있습니다.
결론
Split Brain은 클러스터 시스템을 운영할 때 반드시 예방해야 하는 핵심 장애 중 하나입니다. 네트워크 설계, 클러스터 아키텍처, 장애 대응 전략을 미리 구축하는 것이 매우 중요합니다.
반응형