상위: 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% 이하 권장