카테고리 없음

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은 클러스터 시스템을 운영할 때 반드시 예방해야 하는 핵심 장애 중 하나입니다. 네트워크 설계, 클러스터 아키텍처, 장애 대응 전략을 미리 구축하는 것이 매우 중요합니다.



반응형