• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    해결됨

전체 노드가 아닌 하나의 노드를 내릴때 샤드 할당 제한

23.06.14 10:15 작성 23.06.14 10:16 수정 조회수 274

0

안녕하세요, 수강생인데 궁금한점이 있어서 문의드립니다.

제가 마스터 노드 3, 데이터 노드 5대를 구성하고 운영하고있는데,

전체 노드를 내리고 올릴때마다 샤드 할당을 persistent: cluster.routing.allocation.enable: "primaries",로 제한하고 인덱싱 서비스 중지하고 POST /_flush 다시 올리고 난 뒤 none으로 풀었습니다.

궁금한점은 전체 노드가 아니고 일부노드(ex 데이터 노드 3번등)를 내리고 올릴때도 샤드 할당 제한이 필요한가요? 전체 노드 내리고 올릴떄는 샤드 리밸런싱 방지를 위해서 샤드 할당을 제한한건데 일부 노드만 내리고 올리면 샤드 리밸런싱이 발생하지 않아 샤드 제한이 필요할 것같진 않아서요. 공식문서에서도 "full"-cluster라고 되어있어요.. 확실하게 알고싶어서 질문드립니다!

감사합니다.

답변 1

답변을 작성해보세요.

1

전체 노드 내리고 올릴떄는 샤드 리밸런싱 방지를 위해서 샤드 할당을 제한한건데 일부 노드만 내리고 올리면 샤드 리밸런싱이 발생하지 않아 샤드 제한이 필요할 것같진 않아서요.

이 경우는 index.unassigned.node_left.delayed_timeout 이 값과 관련이 있을텐데요, 이 값의 기본값은 1분 입니다. 즉 1분 안에 노드가 내려갔다 올라오면 샤드 재배치가 일어나지 않습니다. 하지만 작업의 경우라도 노드가 내려갔다 올라오는 데 소요되는 시간이 1분을 넘어간다면 샤드 재배치가 일어나기 때문에 샤드 할당 제한을 설정하는 게 가장 좋긴 합니다.

일부 노드를 내렸다가 올리는 작업을 하는 경우 샤드 할당 제한을 하지 않는다면 index.unassigned.node_left.delayed_timeout 이 값을 작업에 소요되는 시간으로 충분히 늘려 주는 게 좋습니다.

김수민님의 프로필

김수민

질문자

2023.06.14

답변 감사드립니다^^!!