기술_Elasticsearch

클러스터 수준 샤드 할당 및 라우팅 설정

구일칠구 2022. 6. 22. 15:08

클러스터 수준 샤드 할당 및 라우팅 설정

샤드 할당 은 노드에 샤드를 할당하는 프로세스입니다. 이는 초기 복구, 복제본 할당, 재조정 중에 또는 노드가 추가 또는 제거 될 때 발생할 수 있습니다.

마스터의 주요 역할 중 하나는 클러스터를 재조정하기 위해 어떤 샤드를 어떤 노드에 할당할지와 노드간에 샤드를 이동할시기를 결정하는 것입니다.

샤드 할당 프로세스를 제어하는 ​​데 사용할 수있는 여러 설정이 있습니다.

  • 클러스터 수준 샤드 할당 설정은 할당 및 재조정 작업을 제어합니다.
  • 디스크 기반 샤드 할당 설정 은 Elasticsearch가 사용 가능한 디스크 공간을 고려하는 방법과 관련 설정을 설명합니다.
  • 샤드 할당 인식 강제 인식은 샤드가 여러 랙 또는 가용성 영역에 분산 될 수있는 방법을 제어합니다.
  • 클러스터 수준 샤드 할당 필터링을 사용하면 할당에서 제외 된 특정 노드 또는 노드 그룹을 해제 할 수 있습니다.

이 외에도 몇 가지 기타 클러스터 수준 설정이 있습니다.

클러스터 수준 샤드 할당 설정

다음 설정을 사용하여 샤드 할당 및 복구를 제어 할 수 있습니다.

cluster.routing.allocation.enable

( 동적 ) 특정 종류의 샤드에 대한 할당 활성화 또는 비활성화 :

  • all -(기본값) 모든 종류의 샤드에 대한 샤드 할당을 허용합니다.
  • primaries -기본 샤드에 대해서만 샤드 할당을 허용합니다.
  • new_primaries -새 인덱스에 대한 기본 샤드에 대해서만 샤드 할당을 허용합니다.
  • none -모든 인덱스에 대해 어떤 종류의 샤드 할당도 허용되지 않습니다.

이 설정은 노드를 다시 시작할 때 로컬 기본 샤드의 복구에 영향을주지 않습니다. 할당되지 않은 기본 샤드의 복사본이있는 다시 시작된 노드는 할당 ID가 클러스터 상태의 활성 할당 ID 중 하나와 일치한다고 가정하여 해당 기본 샤드를 즉시 복구합니다.

cluster.routing.allocation.node_concurrent_incoming_recoveries( 동적 ) 노드에서 발생하도록 허용 된 동시 수신 샤드 복구 수입니다. 수신 복구는 대상 샤드 (샤드가 재배치되지 않는 한 복제본 일 가능성이 가장 높음)가 노드에 할당 된 복구입니다. 기본값은 2.cluster.routing.allocation.node_concurrent_outgoing_recoveries( 동적 ) 노드에서 발생하도록 허용되는 동시 발신 샤드 복구 수입니다. 나가는 복구는 소스 샤드 (샤드가 재배치되지 않는 한 기본 샤드 일 가능성이 높음)가 노드에 할당 된 복구입니다. 기본값은 2.cluster.routing.allocation.node_concurrent_recoveries( 동적 ) cluster.routing.allocation.node_concurrent_incoming_recoveries및 cluster.routing.allocation.node_concurrent_outgoing_recoveries.cluster.routing.allocation.node_initial_primaries_recoveries( 동적 ) 복제본 복구가 네트워크를 통해 발생하는 동안 노드 재시작 후 할당되지 않은 기본 복구는 로컬 디스크의 데이터를 사용합니다. 동일한 노드에서 더 많은 초기 기본 복구가 병렬로 발생할 수 있도록 속도가 빨라야합니다. 기본값은 4.cluster.routing.allocation.same_shard.host( 동적 ) 호스트 이름 및 호스트 주소를 기반으로 단일 호스트에 동일한 샤드의 여러 인스턴스가 할당되지 않도록 검사를 수행 할 수 있습니다. 기본값은 false이며, 기본적으로 검사가 수행되지 않음을 의미합니다. 이 설정은 동일한 시스템에서 여러 노드가 시작된 경우에만 적용됩니다.

샤드 재조정 설정

클러스터는 노드에있는 인덱스의 샤드가 집중되지 않고 각 노드에 동일한 수의 샤드가있을 때 균형을 이룹니다 . Elasticsearch는 균형을 개선하기 위해 클러스터의 노드간에 샤드를 이동하는 재조정 이라는 자동 프로세스를 실행합니다 . 재조정은 할당 필터링 강제 인식 같은 다른 모든 샤드 할당 규칙을 준수 하므로 클러스터의 균형을 완전히 맞추지 못할 수 있습니다. 이 경우 재조정은 구성한 규칙 내에서 가능한 가장 균형 잡힌 클러스터를 달성하기 위해 노력합니다. 데이터 계층을 사용 하는 경우그런 다음 Elasticsearch는 할당 필터링 규칙을 자동으로 적용하여 각 샤드를 적절한 계층에 배치합니다. 이러한 규칙은 밸런서가 각 계층 내에서 독립적으로 작동 함을 의미합니다.

다음 설정을 사용하여 클러스터 전체에서 샤드 재조정을 제어 할 수 있습니다.

cluster.routing.rebalance.enable

( 동적 ) 특정 종류의 샤드에 대한 재조정 활성화 또는 비활성화 :

  • all -(기본값) 모든 종류의 샤드에 대해 샤드 밸런싱을 허용합니다.
  • primaries -기본 샤드에 대해서만 샤드 밸런싱을 허용합니다.
  • replicas -복제본 샤드에 대해서만 샤드 밸런싱을 허용합니다.
  • none -모든 인덱스에 대해 어떤 종류의 샤드 밸런싱도 허용되지 않습니다.

cluster.routing.allocation.allow_rebalance

( 동적 ) 샤드 재조정이 허용되는시기를 지정합니다.

  • always -항상 재조정을 허용하십시오.
  • indices_primaries_active -클러스터의 모든 기본이 할당 된 경우에만.
  • indices_all_active -(기본값) 클러스터의 모든 샤드 (기본 및 복제본)가 할당 된 경우에만.

cluster.routing.allocation.cluster_concurrent_rebalance( 동적 ) 클러스터 전체에서 허용되는 동시 샤드 재조정 수를 제어 할 수 있습니다. 기본값은 2. 이 설정은 클러스터의 불균형으로 인한 동시 샤드 재배치 수만 제어합니다. 이 설정은 할당 필터링 또는 강제 인식 으로 인한 샤드 재배치를 제한하지 않습니다 .