전체 그래프
Elasticsearch

Cluster Management

data-engineeringelasticsearchoperationcluster

상위: Elasticsearch

요약

클러스터 운영을 위한 설정, 마스터 노드 선출, 장애 대응(Split Brain 방지), 샤드 리밸런싱 등에 대해 설명합니다.

마스터 노드 선출과 Quorum

  • Quorum: 의사결정을 위해 필요한 최소 노드 수. (마스터 후보 노드 / 2) + 1.
  • Split Brain: 네트워크 단절로 인해 클러스터가 두 개로 쪼개져 각각 마스터를 선출하는 현상. 데이터 불일치 발생 위험.
  • 방지법: discovery.seed_hosts 설정과 홀수 개의 마스터 후보 노드 유지.

설정 관리

정적 설정 (Static)

  • elasticsearch.yml 파일 수정.
  • 적용을 위해 노드 재시작 필요.
  • 예: node.name, cluster.name, path.data.

동적 설정 (Dynamic)

  • REST API(_cluster/settings)를 통해 실시간 변경.
  • 재시작 없이 적용 가능.
  • 예: 샤드 할당 필터링, 리밸런싱 속도 제한.

샤드 리밸런싱 (Rebalancing)

  • 클러스터 내 노드 간 데이터 불균형을 해소하기 위해 샤드를 이동시키는 작업.

설정 옵션

  • cluster.routing.allocation.enable: 리밸런싱 활성화

    • all: 모든 샤드 (기본값)
    • primaries: Primary 샤드만
    • new_primaries: 새 Primary만
    • none: 비활성화
  • cluster.routing.rebalance.enable: 리밸런싱 대상

    • all: 모든 샤드
    • primaries: Primary만
    • replicas: Replica만
    • none: 금지
  • cluster.routing.allocation.allow_rebalance: 허용 조건

    • always: 항상
    • indices_primaries_active: Primary 활성화 시
    • indices_all_active: 모든 샤드 활성화 시 (기본값)

마스터 후보 노드

마스터 후보 노드는 마스터 노드 선출에 참여하며, 자신이 마스터로 선출될 수도 있습니다.

마스터 노드 선출

  • 최소 3개 이상 홀수 개로 유지 권장
  • Voting-only 노드: 선출 참여만, 마스터 역할 수행 안 함
  • 장애 발생 시 자동으로 새 마스터 선출

Quorum

분산 시스템에서 중요한 의사결정 시 필요한 최소 노드 수입니다.

  • 공식: (마스터 후보 노드 / 2) + 1
  • 3개 중 2개 online: 클러스터 운영됨
  • 1개만 online: 클러스터 중단됨

Split Brain 방지

  • 네트워크 단절로 클러스터가 분리되어 각각 마스터를 선출하는 현상
  • discovery.seed_hosts 설정과 홀수 개 마스터 후보 노드로 방지

Heap Size 설정

  • Xms, Xmx 동일하게 설정
  • 최대 32GB 이하
  • 시스템 메모리의 50% 이하 권장