elasticsearch shard rebalancing

뜨개발자·2024년 2월 26일
0

TIL

목록 보기
75/75

Header

해당 문서는 아래 공식 문서를 정리한 내용임

https://www.elastic.co/guide/en/elasticsearch/reference/7.16/modules-cluster.html


샤드 리밸런싱

클러스터의 어느 노드에도 샤드가 몰려있지 않고 같은 수준의 샤드 개수를 유지하고 있을 때 '균형이 맞는다'고 표현함.
엘라스틱 서치는 균형을 맞추기 위해서 노드 간에 샤드를 이동시키는 '리밸런싱'이라는 작업을 자동으로 실행함.
리밸런싱은 클러스터의 샤드 할당 규칙에 따르기 때문에 완벽할 수 없음.
이런 경우, 가장 완벽한 상태를 만드려고 시도함.
데이터 티어를 사용하는 경우에는 할당 규칙을 필터링하여 각 샤드를 적절한 티어에 배치함.


샤드 휴리스틱 리밸런싱

리밸런싱은 각 노드의 무게를 계산한 후, 무거운 노드에서 가벼운 노드로 샤드를 이동시키며 발생함.
설정한 값 이하로 두 노드 간 차이를 좁힐 수 있는 이동이 더 이상 없을 때 균형을 잡았다고 함.


디스크 기반 샤드 할당

디스크 기반 샤드 할당은 필요 이상의 샤드 이동을 막고, 모든 노드가 충분한 디스크 공간을 갖도록 함.
목표는 어떤 노드도 높은 워터마크를 갖지 않게 하는 것임.
리밸런싱 중 일시적으로 임계치를 넘어갈 수는 있으나 다른 노드로 다시 샤드를 리밸런싱하면서 해당 문제를 해결함.
일시적으로 높은 워터마크 이상의 디스크를 사용하는 것은 정상이라고 볼 수 있음.

낮은 워터마크

  • 샤드의 할당 작업 중단
  • 기본 샤드는 새로 생성 가능

높은 워터마크

  • 모든 샤드의 할당 작업 중단

allocator는 낮은 워터마크를 초과한 노드에 더이상 샤드가 할당될 수 없도록 하여 높은 워터마크 초과를 방지함.
모든 노드가 높은 워터마크를 초과하면 샤드 할당이 불가능해지므로 일부 노드가 항상 낮은 워터마크보다 디스크를 적게 쓰는지 확인 작업이 필요함.

profile
뜨개질하는 개발자

0개의 댓글