Cluster management settings
출처: 문서
본문
클러스터 관리 설정
다음 설정은 샤드 할당, 조정, 장애 감지 및 기타 클러스터 전체 작업을 제어해요.
이 설정을 적용하는 방법을 알아보려면 OpenSearch 구성을 참조하세요.
클러스터 수준 라우팅 및 샤드 할당 설정
OpenSearch는 다음과 같은 클러스터 수준 라우팅 및 샤드 할당 설정을 지원해요.
-
cluster.routing.allocation.enable(Dynamic, string): 특정 종류의 샤드에 대한 할당을 활성화하거나 비활성화해요.유효한 값은 다음과 같아요:
all– 모든 유형의 샤드에 대해 샤드 할당을 허용해요.primaries– 기본 샤드에 대해서만 샤드 할당을 허용해요.new_primaries– 새 인덱스의 기본 샤드에 대해서만 샤드 할당을 허용해요.none– 어떤 인덱스에 대해서도 샤드 할당을 허용하지 않아요.
기본값은
all이에요. -
cluster.routing.allocation.node_concurrent_incoming_recoveries(Dynamic, integer): 노드에서 동시에 발생할 수 있는 들어오는 샤드 복구의 수를 설정해요. 기본값은2예요. -
cluster.routing.allocation.node_concurrent_outgoing_recoveries(Dynamic, integer): 노드에서 동시에 발생할 수 있는 나가는 샤드 복구의 수를 설정해요. 기본값은2예요. -
cluster.routing.allocation.node_concurrent_recoveries(Dynamic, string):cluster.routing.allocation.node_concurrent_incoming_recoveries와cluster.routing.allocation.node_concurrent_outgoing_recoveries를 동일한 값으로 설정하는 데 사용해요. -
cluster.routing.allocation.node_initial_primaries_recoveries(Dynamic, integer): 노드 재시작 후 할당되지 않은 기본 샤드의 복구 수를 설정해요. 기본값은4예요. -
cluster.routing.allocation.unassigned.node_left.delayed_timeout(Dynamic, time unit): 노드가 클러스터를 떠난 후 할당되지 않은 복제 샤드를 할당하기 전에 OpenSearch가 대기하는 기본 시간을 설정해요. 할당을 지연시키면 롤링 업그레이드, 노드 재시작, 일시적인 네트워크 장애 중 불필요한 샤드 복구를 방지하는 데 도움이 돼요. 이 설정은 인덱스 수준의index.unassigned.node_left.delayed_timeout설정이 구성되지 않은 인덱스에만 적용돼요. 클러스터 기본값을 사용하는 인덱스의 지연 할당을 비활성화하려면0으로 설정해요. 기본값은1m이에요. -
cluster.routing.allocation.same_shard.host(Dynamic, Boolean):true로 설정하면 동일한 호스트의 서로 다른 노드에 샤드의 여러 복사본이 할당되지 않도록 방지해요. 기본값은false예요. -
cluster.routing.rebalance.enable(Dynamic, string): 특정 종류의 샤드에 대한 리밸런싱을 활성화하거나 비활성화해요.유효한 값은 다음과 같아요:
all– 모든 유형의 샤드에 대해 샤드 밸런싱을 허용해요.primaries– 기본 샤드에 대해서만 샤드 밸런싱을 허용해요.replicas– 복제 샤드에 대해서만 샤드 밸런싱을 허용해요.none– 어떤 인덱스에 대해서도 샤드 밸런싱을 허용하지 않아요.
기본값은
all이에요. -
cluster.routing.allocation.allow_rebalance(Dynamic, string): 샤드 리밸런싱이 허용되는 시점을 지정해요.유효한 값은 다음과 같아요:
always– 항상 리밸런싱을 허용해요.indices_primaries_active– 클러스터의 모든 기본 샤드가 할당된 경우에만 리밸런싱을 허용해요.indices_all_active– 클러스터의 모든 샤드가 할당된 경우에만 리밸런싱을 허용해요.
기본값은
indices_all_active예요. -
cluster.routing.allocation.cluster_concurrent_rebalance(Dynamic, integer): 클러스터 전체에서 허용되는 동시 샤드 리밸런스 수를 제어할 수 있어요. 기본값은2예요. -
cluster.routing.allocation.balance.shard(Dynamic, floating point): 노드당 할당된 총 샤드 수에 대한 가중치 요소를 정의해요. 기본값은0.45예요. -
cluster.routing.allocation.balance.index(Dynamic, floating point): 노드에 할당된 인덱스당 샤드 수에 대한 가중치 요소를 정의해요. 기본값은0.55예요. -
cluster.routing.allocation.balance.threshold(Dynamic, floating point): 수행되어야 하는 작업의 최소 최적화 값이에요. 기본값은1.0이에요. -
cluster.routing.allocation.balance.prefer_primary(Dynamic, Boolean):true로 설정하면 OpenSearch가 클러스터 노드 간에 기본 샤드를 균등하게 분배하려고 시도해요. 이 설정을 활성화한다고 해서 항상 각 노드에 동일한 수의 기본 샤드가 보장되는 것은 아니며, 특히 장애 조치 시에는 그렇지 않아요. 이 설정을true로 설정한 후false로 변경해도 기본 샤드의 재분배가 수행되지 않아요. 기본값은false예요. -
cluster.routing.allocation.rebalance.primary.enable(Dynamic, Boolean):true로 설정하면 OpenSearch가 클러스터 노드 간에 기본 샤드를 리밸런싱하려고 시도해요. 활성화되면 클러스터는 각 노드의 기본 샤드 수를cluster.routing.allocation.rebalance.primary.buffer설정으로 정의된 최대 버퍼 내에서 유지하려고 해요. 이 설정을true로 설정한 후false로 변경해도 기본 샤드의 재분배가 수행되지 않아요. 기본값은false예요. -
cluster.routing.allocation.rebalance.primary.buffer(Dynamic, floating point):cluster.routing.allocation.rebalance.primary.enable이 활성화된 경우 노드 간 기본 샤드의 최대 허용 버퍼를 정의해요. 기본값은0.1이에요. -
cluster.routing.allocation.disk.threshold_enabled(Dynamic, Boolean):false로 설정하면 디스크 할당 결정자를 비활성화해요. 비활성화되면 기존의index.blocks.read_only_allow_delete인덱스 블록도 제거돼요. 기본값은true예요. -
cluster.routing.allocation.disk.watermark.low(Dynamic, string): 디스크 사용량의 낮은 워터마크를 제어해요. 백분율로 설정하면 OpenSearch는 해당 백분율의 디스크 사용량이 있는 노드에 샤드를 할당하지 않아요.0.85와 같은 비율 값으로 입력할 수도 있어요. 마지막으로400mb와 같은 바이트 값으로 설정할 수도 있어요. 이 설정은 새로 생성된 인덱스의 기본 샤드에는 영향을 미치지 않지만 해당 복제본이 할당되는 것은 방지해요. 기본값은85%예요. -
cluster.routing.allocation.disk.watermark.high(Dynamic, string): 높은 워터마크를 제어해요. OpenSearch는 디스크 사용량이 정의된 백분율을 초과하는 노드에서 샤드를 다른 곳으로 재배치하려고 시도해요.0.85와 같은 비율 값으로 입력할 수도 있어요. 마지막으로400mb와 같은 바이트 값으로 설정할 수도 있어요. 이 설정은 모든 샤드의 할당에 영향을 미쳐요. 기본값은90%예요. -
cluster.routing.allocation.disk.watermark.flood_stage(Dynamic, string): 플러드 스테이지 워터마크를 제어해요. 이는 노드의 디스크 공간 부족을 방지하기 위한 최후의 수단이에요. OpenSearch는 노드에 하나 이상의 샤드가 할당되고 하나 이상의 디스크가 플러드 스테이지를 초과하는 모든 인덱스에 읽기 전용 인덱스 블록(index.blocks.read_only_allow_delete)을 적용해요. 디스크 사용률이 높은 워터마크 아래로 떨어지면 인덱스 블록이 해제돼요.0.85와 같은 비율 값으로 입력할 수도 있어요. 마지막으로400mb와 같은 바이트 값으로 설정할 수도 있어요. 기본값은95%예요. -
cluster.info.update.interval(Dynamic, time unit): OpenSearch가 클러스터의 각 노드에 대한 디스크 사용량을 확인하는 빈도를 설정해요. 기본값은30s예요. -
cluster.blocks.create_index(Dynamic, Boolean): 클러스터 수준에서 인덱스 생성을 차단할지 여부를 제어해요.true로 설정하면 새 인덱스가 생성되지 않도록 방지해요. 기본값은false예요. -
cluster.blocks.create_index.auto_release(Dynamic, Boolean): 높은 디스크 사용량으로 인해 트리거된 자동 인덱스 생성 차단이 디스크 사용량이 임계값 수준 아래로 돌아올 때 자동으로 제거되는지 여부를 제어해요. 기본값은true예요. -
cluster.ignore_dot_indexes(Dynamic, Boolean):true로 설정하면 샤드 제한 유효성 검사에서 점 접두사가 있는 인덱스(예:.opensearch-*)를 무시해요. 기본값은false예요. -
cluster.routing.allocation.awareness.balance(Dynamic, Boolean): 인식 속성 간 인식 기반 복제본 밸런싱을 활성화해요.cluster.routing.allocation.awareness.attributes와cluster.routing.allocation.awareness.force.zone.values가 모두 지정된 경우에만 적용돼요. 기본값은false예요. -
cluster.routing.allocation.primary_constraint.threshold(Dynamic, long): 할당 결정에서 기본 샤드 제약 조건 검사의 임계값이에요. 기본값은10이에요. 최소 적용 값은0이에요. -
cluster.routing.allocation.remote_primary.ignore_throttle(Dynamic, Boolean): 원격 기본 샤드 복원 작업에 대한 스로틀링 제한을 무시할지 여부예요. 기본값은true예요. -
cluster.routing.ignore_weighted_routing(Dynamic, Boolean):true로 설정하면 가중치 라우팅 구성을 무시하고 기본 라우팅 동작을 사용해요. 기본값은false예요. -
cluster.routing.weighted.default_weight(Dynamic, double): 가중치 라우팅이 활성화되었지만 특정 가중치가 구성되지 않은 경우 노드에 할당되는 기본 가중치예요. 기본값은1.0이에요. 최소 적용 값은1.0이에요. -
cluster.routing.weighted.fail_open(Dynamic, Boolean): 가중치 라우팅이 활성화된 경우, 모든 가중치 노드를 사용할 수 없을 때 실패 시 열림(모든 노드에 요청 허용) 여부를 결정해요. 기본값은true예요. -
cluster.routing.weighted.strict(Dynamic, Boolean): 활성화되면 요청이 적절한 가중치가 있는 노드로만 라우팅되는 엄격한 가중치 라우팅을 적용해요. 기본값은true예요. -
cluster.routing.allocation.awareness.attributes(Dynamic, list): Shard allocation awareness를 참조하세요. -
cluster.routing.allocation.include.<attribute>(Dynamic, enum):attribute에 포함된 쉼표로 구분된 값 중 하나 이상을 포함하는 노드에 샤드를 할당해요. -
cluster.routing.allocation.require.<attribute>(Dynamic, enum):attribute에 포함된 쉼표로 구분된 값을 모두 포함하는 노드에만 샤드를 할당해요. -
cluster.routing.allocation.exclude.<attribute>(Dynamic, enum):attribute에 포함된 쉼표로 구분된 값 중 하나라도 포함하는 노드에 샤드를 할당하지 않아요. 클러스터 할당 설정은 다음과 같은 내장 속성을 지원해요.유효한 값은 다음과 같아요:
_name– 노드 이름으로 노드를 일치시켜요._host_ip– 호스트 IP 주소로 노드를 일치시켜요._publish_ip– 게시 IP 주소로 노드를 일치시켜요._ip–_host_ip또는_publish_ip중 하나와 일치시켜요._host– 호스트 이름으로 노드를 일치시켜요._id– 노드 ID로 노드를 일치시켜요._tier– 데이터 계층 역할로 노드를 일치시켜요.
-
cluster.routing.allocation.awareness.force.<attribute>.values(Dynamic, list): Forced awareness를 참조하세요. -
cluster.routing.allocation.shard_movement_strategy(Dynamic, enum): 샤드가 나가는 노드에서 들어오는 노드로 재배치되는 순서를 결정해요.이 설정은 다음 전략을 지원해요:
PRIMARY_FIRST– 기본 샤드가 복제 샤드보다 먼저 재배치돼요. 이 우선 순위는 재배치 중인 노드가 프로세스 중에 실패할 경우 클러스터의 상태가 빨간색이 되는 것을 방지하는 데 도움이 될 수 있어요.REPLICA_FIRST– 복제 샤드가 기본 샤드보다 먼저 재배치돼요. 이 우선 순위는 혼합 버전, 세그먼트 복제가 활성화된 OpenSearch 클러스터에서 샤드 재배치를 수행할 때 클러스터 상태가 빨간색이 되는 것을 방지하는 데 도움이 될 수 있어요. 이 상황에서 최신 버전의 OpenSearch 노드로 재배치된 기본 샤드는 이전 버전의 OpenSearch에 있는 복제 샤드로 세그먼트 파일을 복사하려고 시도할 수 있으며, 이로 인해 샤드 실패가 발생할 수 있어요. 복제 샤드를 먼저 재배치하면 다중 버전 클러스터에서 이러한 상황을 방지하는 데 도움이 될 수 있어요.NO_PREFERENCE– 샤드 재배치 순서가 중요하지 않은 기본 동작이에요.
-
cluster.routing.search_replica.strict(Dynamic, Boolean):index.number_of_search_replicas가0보다 큰 경우와 같이 인덱스에 검색 복제본 샤드가 있을 때 검색 요청이 라우팅되는 방식을 제어해요. 이 설정은 인덱스에 검색 복제본이 구성된 경우에만 적용돼요.true로 설정하면 해당 인덱스에 대한 모든 검색 요청이 검색 복제본 샤드로만 라우팅돼요. 검색 복제본이 할당되지 않은 경우 요청은 실패해요.false로 설정하면 검색 복제본이 할당되지 않은 경우 요청이 사용 가능한 모든 샤드로 대체돼요. 기본값은true예요. -
cluster.allocator.gateway.batch_size(Dynamic, integer): 할당되지 않은 샤드 메타데이터를 가져오기 위해 단일 배치로 데이터 노드에 전송되는 샤드 수를 제한해요. 기본값은2000이에요. -
cluster.allocator.existing_shards_allocator.batch_enabled(Static, Boolean): 한 번에 하나의 샤드를 할당하는 대신 디스크에 이미 존재하는 할당되지 않은 샤드의 배치 할당을 활성화해요. 이는 배치 호출로 할당되지 않은 샤드 메타데이터를 가져와 메모리 및 전송 오버헤드를 줄여요. 기본값은false예요. -
cluster.routing.allocation.shards_batch_gateway_allocator.primary_allocator_timeout(Dynamic, time value): 재라우팅 작업 중 기본 샤드 배치 할당자의 시간 제한을 설정해요. 시간 제한에 도달하면 재라우팅 반복이 중단되어 우선순위가 더 높은 작업을 실행할 수 있고, 대규모 샤드 할당 중에 클러스터가 관리 불가능해지는 것을 방지해요. 이는 API 시간 제한을 방지하고 클러스터 응답성을 보장하는 데 도움이 돼요. 유효한 값은20s이상의 시간 값이거나 시간 제한을 비활성화하려면-1ms예요. 기본값은20s예요. -
cluster.routing.allocation.shards_batch_gateway_allocator.replica_allocator_timeout(Dynamic, time value): 재라우팅 작업 중 복제본 샤드 배치 할당자의 시간 제한을 설정해요. 시간 제한에 도달하면 재라우팅 반복이 중단되어 우선순위가 더 높은 작업을 실행할 수 있고, 대규모 샤드 할당 중에 클러스터가 관리 불가능해지는 것을 방지해요. 이는 API 시간 제한을 방지하고 클러스터 응답성을 보장하는 데 도움이 돼요. 유효한 값은20s이상의 시간 값이거나 시간 제한을 비활성화하려면-1ms예요. 기본값은20s예요. -
cluster.routing.allocation.total_shards_per_node(Dynamic, integer): 단일 노드에 할당할 수 있는 기본 샤드와 복제본 샤드의 최대 총합이에요. 기본값은-1(무제한)이에요. 노드당 샤드 총 수를 제한하여 노드 간에 샤드를 고르게 분산하는 데 도움이 돼요. 노드가 설정된 한도에 도달하면 샤드가 할당되지 않은 상태로 남을 수 있으므로 주의해서 사용하세요. -
cluster.routing.allocation.total_primary_shards_per_node(Dynamic, integer): 단일 노드에 할당할 수 있는 기본 샤드의 최대 수예요. 이 설정은 원격 지원 클러스터에만 적용 가능해요. 기본값은-1(무제한)이에요. 노드당 기본 샤드 수를 제한하여 노드 간에 기본 샤드를 고르게 분산하는 데 도움이 돼요. 노드가 설정된 한도에 도달하면 기본 샤드가 할당되지 않은 상태로 남을 수 있으므로 주의해서 사용하세요. -
cluster.routing.allocation.disk.watermark.enable_for_single_data_node(Static, Boolean): 단일 데이터 노드만 있는 클러스터에 대해 디스크 워터마크 검사를 활성화해요. 활성화되면 단일 노드 클러스터에서도 디스크 기반 샤드 할당 결정이 적용돼요. 기본값은false예요.
고급 클러스터 라우팅 및 할당 설정
OpenSearch는 다음과 같은 고급 클러스터 라우팅 및 할당 설정을 지원해요:
-
cluster.routing.allocation.balanced_shards_allocator.allocator_timeout(Dynamic, time unit): 균형 샤드 할당자 작업의 시간 제한을 제어해요.-1로 설정하면 시간 제한이 비활성화돼요. 양수 값으로 설정하면 할당을 완료할 수 없는 경우 지정된 기간 후에 할당자가 시간 초과돼요. 기본값은-1(시간 제한 없음)이에요. 시간 제한이 활성화된 경우 최소값은20s예요. -
cluster.routing.allocation.cluster_concurrent_recoveries(Dynamic, integer): 클러스터 수준에서 허용되는 동시 복구 작업의 최대 수를 제어해요. 이 설정은 리소스 고갈을 방지하기 위해 전체 클러스터에서 동시에 발생하는 복구 작업(재배치 작업)의 총 수를 제한해요. 무제한 동시 복구를 위해-1로 설정하세요. 기본값은-1이에요.
부하 인식 할당 설정
OpenSearch는 노드 리소스 사용량을 기반으로 샤드를 분산하기 위한 다음과 같은 부하 인식 할당 설정을 지원해요:
-
cluster.routing.allocation.load_awareness.allow_unassigned_primaries(Dynamic, Boolean): 부하 인식 할당이 활성화되면 이 설정은 새로 생성된 기본 샤드가 왜곡 계수를 위반하더라도 할당될 수 있는지 제어해요.true로 설정하면 복제본 할당이 왜곡 계수를 위반하는 것을 방지하면서 새 기본 샤드를 할당할 수 있어요.false로 설정하면 기본 샤드가 할당되지 않은 상태로 남아 클러스터가 빨간색으로 변할 수 있어요. 기본값은true예요. -
cluster.routing.allocation.load_awareness.flat_skew(Dynamic, integer): 부하 인식 할당에서 노드 간 허용 가능한 불균형을 결정하는 데 사용되는 평면 왜곡 계수예요. 값이 높을수록 더 많은 불균형을 허용하지만 할당 유연성이 더 커져요. 기본값은2예요. 최소값은2예요. -
cluster.routing.allocation.load_awareness.provisioned_capacity(Dynamic, integer): 부하 인식 할당을 위한 프로비저닝된 용량 설정이에요. 이는 할당자가 더 나은 부하 분산을 위해 노드의 의도된 용량을 이해하는 데 도움이 돼요. 비활성화하려면-1로 설정하세요. 기본값은-1이에요. -
cluster.routing.allocation.load_awareness.skew_factor(Dynamic, double): 부하 인식 할당을 위한 왜곡 계수 임계값이에요. 이는 할당자가 시정 조치를 취하기 전에 노드 간에 허용되는 불균형 정도를 제어해요. 값이 높을수록 더 많은 왜곡을 허용해요. 기본값은50이에요. 왜곡 기반 할당을 비활성화하려면-1로 설정하세요. -
cluster.routing.allocation.move.primary_first(Dynamic, Boolean): 샤드 재조정 시 이 설정은 기본 샤드가 복제본 샤드보다 먼저 이동되는지 제어해요. 기본 샤드를 먼저 이동하면 부하를 더 효과적으로 균형 조정하는 데 도움이 될 수 있지만 재조정 중 검색 성능에 영향을 줄 수 있어요. 기본값은false예요. -
cluster.routing.allocation.node_initial_replicas_recoveries(Dynamic, integer): 클러스터 시작 또는 노드가 조인할 때 단일 노드에서 동시에 발생할 수 있는 초기 복제본 복구의 최대 수예요. 이는 동시 복구 제한과는 별개이며 시작 부하를 제어하는 데 도움이 돼요. 기본값은2예요.
Cluster-level snapshot settings
OpenSearch는 다음 클러스터 수준 스냅샷 설정을 지원해요.
cluster.snapshot.info.max_concurrent_fetches(Dynamic, integer): 허용되는 동시 스냅샷 정보 가져오기 작업의 최대 수예요. 이 설정은 리포지토리에서 스냅샷 메타데이터를 검색할 때 부하를 제어하는 데 도움을 줘요. 값이 높으면 많은 스냅샷을 관리할 때 성능이 향상될 수 있지만 리소스 사용량이 증가할 수 있어요. 기본값은5예요.
Cluster-level composite index settings
OpenSearch는 다음 복합 인덱스 설정을 지원해요.
indices.composite_index.translog.max_flush_threshold_size(Dynamic, byte size): 플러시가 트리거되기 전 복합 인덱스의 최대 트랜스로그 크기 임계값이에요. 이 설정은 메모리 사용량을 제어하고 복합 인덱스의 트랜스로그 데이터가 정기적으로 디스크에 유지되도록 보장해요. 기본값은512mb예요. 최소값은128mb예요.
Cluster-level shard, block, and task settings
OpenSearch는 다음 클러스터 수준 샤드, 블록 및 작업 설정을 지원해요.
-
action.search.shard_count.limit(Integer): 검색 중에 적중되는 최대 샤드 수를 제한해요. 이 제한을 초과하는 요청은 거부돼요. -
cluster.blocks.read_only(Boolean): 전체 클러스터를 읽기 전용으로 설정해요. 기본값은false예요. -
cluster.blocks.read_only_allow_delete(Boolean):cluster.blocks.read_only와 비슷하지만 인덱스를 삭제할 수 있어요. -
cluster.no_cluster_manager_block(String): 활성 클러스터 관리자가 없을 때 거부되는 작업을 구성해요. 다음 세 가지 옵션 중 하나를 허용해요:all: 클러스터에 대한 모든 읽기 및 쓰기 요청을 차단해요.write: 쓰기 요청만 차단해요. 읽기 요청은 여전히 처리될 수 있어요.metadata_write: 매핑이나 라우팅 테이블 업데이트와 같은 메타데이터 관련 쓰기는 차단되지만 일반 문서 인덱싱은 여전히 수행될 수 있어요. 읽기 및 쓰기 요청은 노드가 마지막으로 수신한 클러스터 상태를 사용하여 처리돼요. 노드가 클러스터의 나머지 부분과 단절될 수 있기 때문에 이로 인해 오래된 정보를 제공하거나 데이터의 일부만 반환될 수 있어요.
-
cluster.max_shards_per_node(Integer): 클러스터의 기본 및 복제본 샤드의 총 수를 제한해요. 제한은 다음과 같이 계산돼요:cluster.max_shards_per_node에 동결되지 않은 데이터 노드 수를 곱한 값이에요. 닫힌 인덱스의 샤드는 이 제한에 포함되지 않아요. 기본값은1000이에요. -
cluster.max_remote_capable_shards_per_node(Integer): 워밍 역할 노드에서 사용하는 클러스터의 기본 및 복제본 샤드의 총 수를 제한해요. 제한은cluster.max_remote_capable_shards_per_node에 워밍 데이터 노드 수를 곱한 값으로 계산돼요. 이 설정은 검색 가능한 스냅샷의 총 샤드 수를 제어하는 데 유용해요. 기본값은1000이에요. -
cluster.persistent_tasks.allocation.enable(String): 지속적인 작업에 대한 할당을 활성화하거나 비활성화해요.유효한 값은:
all– 지속적인 작업을 노드에 할당할 수 있어요.none– 지속적인 작업에 대한 할당이 허용되지 않아요. 이미 실행 중인 지속적인 작업에는 영향을 미치지 않아요.
기본값은
all이에요. -
cluster.persistent_tasks.allocation.recheck_interval(Time unit): 클러스터 관리자는 클러스터 상태가 중요한 방식으로 변경될 때 지속적인 작업을 할당해야 하는지 자동으로 확인해요. 메모리 사용량과 같은 다른 요소도 지속적인 작업이 노드에 할당되는지 여부에 영향을 미치지만 클러스터 상태를 변경하지는 않아요. 이 설정은 이러한 요소에 응답하여 할당 확인이 수행되는 빈도를 정의해요. 기본값은30초이며 최소10초가 필요해요. -
task_cancellation.duration_millis(Dynamic, long): 작업 취소 모니터링 시스템에서 취소된 작업을 추적하기 위한 기간 임계값(밀리초)이에요. 기본값은10000(10초)예요. -
task_cancellation.enabled(Dynamic, Boolean): 작업 취소 모니터링 서비스를 활성화하거나 비활성화해요. 기본값은true예요. -
task_resource_tracking.enabled(Dynamic, Boolean): 개별 작업의 CPU 및 메모리 사용량을 모니터링하기 위해 작업 리소스 추적을 활성화할지 여부를 제어해요. 기본값은true예요.
Cluster-level search settings
OpenSearch는 다음 클러스터 수준 검색 설정을 지원해요.
cluster.search.ignore_awareness_attributes(Boolean): 샤드 쿼리 라우팅 중 인식 속성을 고려할지 여부를 제어해요.true이면 클러스터가 인식 속성을 무시하고 적응형 복제본 선택(ARS)을 사용하여 최적의 샤드 복사본을 선택하여 쿼리 응답 지연 시간을 줄여요. 라우팅 결정이 성능 기반 선택 대신 인식 속성을 우선시하도록 하려면false로 설정하세요. 기본값은true예요(Amazon OpenSearch Service의 경우false).
Cluster-level slow log settings
자세한 내용은 검색 요청 슬로 로그를 참조하세요.
-
cluster.search.request.slowlog.threshold.warn(Time unit): 요청 수준 슬로 로그WARN임계값을 설정해요. 기본값은-1이에요. -
cluster.search.request.slowlog.threshold.info(Time unit): 요청 수준 슬로 로그INFO임계값을 설정해요. 기본값은-1이에요. -
cluster.search.request.slowlog.threshold.debug(Time unit): 요청 수준 슬로 로그DEBUG임계값을 설정해요. 기본값은-1이에요. -
cluster.search.request.slowlog.threshold.trace(Time unit): 요청 수준 슬로 로그TRACE임계값을 설정해요. 기본값은-1이에요. -
cluster.search.request.slowlog.level(String): 기록할 최소 슬로 로그 수준을 설정해요:WARN,INFO,DEBUG,TRACE. 기본값은TRACE예요.
Cluster settings for indexes
모든 인덱스에 적용되는 클러스터 설정에 대한 자세한 내용은 인덱스용 클러스터 설정을 참조하세요.
Cluster-level coordination settings
OpenSearch는 다음 클러스터 수준 조정 설정을 지원해요. 이 목록의 모든 설정은 동적이에요:
-
cluster.fault_detection.leader_check.timeout(Time unit): 리더 확인 중에 노드가 선출된 클러스터 관리자의 응답을 기다리는 시간으로, 이 시간이 지나면 확인이 실패한 것으로 간주해요. 유효한 값은1ms에서60s까지 포함이에요. 기본값은10s예요. 이 설정을 기본값이 아닌 다른 값으로 변경하면 클러스터가 불안정해질 수 있어요. -
cluster.fault_detection.follower_check.timeout(Time unit): 팔로워 확인 중에 선출된 클러스터 관리자가 응답을 기다리는 시간으로, 이 시간이 지나면 확인이 실패한 것으로 간주해요. 유효한 값은1ms에서60s까지 포함이에요. 기본값은10s예요. 이 설정을 기본값이 아닌 다른 값으로 변경하면 클러스터가 불안정해질 수 있어요. -
cluster.fault_detection.follower_check.interval(Time unit): 선출된 클러스터 관리자가 클러스터의 다른 노드에 팔로워 확인을 보내는 사이에 대기하는 시간이에요. 유효한 값은100ms이상이에요. 기본값은1000ms예요. 이 설정을 기본값이 아닌 다른 값으로 변경하면 클러스터가 불안정해질 수 있어요. -
cluster.follower_lag.timeout(Time unit): 선출된 클러스터 관리자가 지연되는 노드로부터 클러스터 상태 업데이트에 대한 승인을 받기 위해 기다리는 시간이에요. 기본값은90s예요. 노드가 이 시간 내에 클러스터 상태 업데이트를 성공적으로 적용하지 못하면 실패한 것으로 간주되어 클러스터에서 제거돼요. -
cluster.publish.timeout(Time unit): 클러스터 관리자가 각 클러스터 상태 업데이트가 모든 노드에 완전히 게시될 때까지 기다리는 시간이에요. 단,discovery.type이single-node로 설정된 경우는 제외해요. 기본값은30s예요.
Cluster-level fault detection settings
OpenSearch는 노드가 장애를 감지하고 대응하는 방법을 제어하는 다음 클러스터 수준 장애 감지 설정을 지원해요:
-
cluster.fault_detection.follower_check.retry_count(Static, integer): 선출된 클러스터 관리자가 노드를 장애로 간주하고 클러스터에서 제거하기 전에 연속적인 팔로워 확인 실패가 몇 번 발생해야 하는지 설정해요. 이 설정은 팔로워 노드에 대한 장애 감지 민감도를 제어해요. 기본값은3이에요. 경고: 이 설정을 기본값에서 변경하면 클러스터가 불안정해질 수 있어요. -
cluster.fault_detection.leader_check.interval(Static, time unit): 각 노드가 선출된 클러스터 관리자 확인 사이에 대기하는 시간을 설정해요. 이는 팔로워 노드가 수행하는 리더 상태 확인 빈도를 제어해요. 기본값은1s예요. 경고: 이 설정을 기본값에서 변경하면 클러스터가 불안정해질 수 있어요. -
cluster.fault_detection.leader_check.retry_count(Static, integer): 노드가 선출된 클러스터 관리자를 장애로 간주하고 새 클러스터 관리자를 찾거나 선출하려고 시도하기 전에 연속적인 리더 확인 실패가 몇 번 발생해야 하는지 설정해요. 이 설정은 클러스터 관리자 노드에 대한 장애 감지 민감도를 제어해요. 기본값은3이에요. 경고: 이 설정을 기본값에서 변경하면 클러스터가 불안정해질 수 있어요. -
cluster.indices.tombstones.size(Static, integer): 클러스터 상태에 유지할 인덱스 삭제 툼스톤의 최대 수를 설정해요. 인덱스 툼스톤은 삭제가 발생했을 때 클러스터의 일부가 아닌 노드가 클러스터에 합류하여 삭제가 실행되지 않은 것처럼 인덱스를 다시 가져오는 것을 방지해요. 클러스터 상태가 너무 커지는 것을 방지하기 위해 가장 최근 삭제만 유지돼요. 기본값은500이에요. 노드가 클러스터에 없어서 500개 이상의 인덱스 삭제를 놓칠 것으로 예상되는 경우 이 값을 늘릴 수 있지만, 이는 드문 경우예요. 툼스톤은 최소한의 공간을 사용하지만 매우 큰 값(예: 50,000)은 권장되지 않아요.
Cluster-level CAT response limit settings
OpenSearch는 다음 클러스터 수준 CAT API 응답 제한 설정을 지원하며, 모두 동적이에요:
-
cat.indices.response.limit.number_of_indices(Integer): CAT Indices API가 반환하는 인덱스 수에 제한을 설정해요. 기본값은-1(제한 없음)이에요. 응답의 인덱스 수가 이 제한을 초과하면 API가429오류를 반환해요. 이를 방지하려면 쿼리에 인덱스 패턴 필터를 지정할 수 있어요(예:_cat/indices/<index-pattern>). -
cat.shards.response.limit.number_of_shards(Integer): CAT Shards API가 반환하는 샤드 수에 제한을 설정해요. 기본값은-1(제한 없음)이에요. 응답의 샤드 수가 이 제한을 초과하면 API가429오류를 반환해요. 이를 방지하려면 쿼리에 인덱스 패턴 필터를 지정할 수 있어요(예:_cat/shards/<index-pattern>). -
cat.segments.response.limit.number_of_indices(Integer): CAT Segments API가 반환하는 인덱스 수에 제한을 설정해요. 기본값은-1(제한 없음)이에요. 응답의 인덱스 수가 이 제한을 초과하면 API가429오류를 반환해요. 이를 방지하려면 쿼리에 인덱스 패턴 필터를 지정할 수 있어요(예:_cat/segments/<index-pattern>).
Cluster-level gateway and indexes settings
OpenSearch는 다음 게이트웨이 및 인덱스 설정을 지원해요:
-
gateway.slow_write_logging_threshold(Dynamic, time unit): 게이트웨이 클러스터 상태 지속성에서 느린 쓰기 작업을 기록하기 위한 임계값이에요. 기본값은10s예요. 최소 적용값은0이에요. -
indices.id_field_data.enabled(Dynamic, Boolean): 인덱스에 대해 ID 필드 데이터를 활성화할지 여부를 제어하여_id필드에 대한 정렬 및 집계를 허용해요. 기본값은true예요. -
indices.mapping.max_in_flight_updates(Dynamic, integer): 허용되는 동시 매핑 업데이트 요청의 최대 수예요. 기본값은10이에요. 최소 적용값은1이에요. 최대 허용값은1000이에요. -
indices.recovery.internal_action_long_timeout(Dynamic, time unit): 장기 실행 내부 복구 작업에 대한 시간 제한이에요. 기본값은indices.recovery.internal_action_timeout값의 두 배예요. 최소 적용값은0이에요. -
indices.recovery.internal_remote_upload_timeout(Dynamic, time unit): 샤드 복구 중 내부 원격 업로드 작업에 대한 시간 제한이에요. 기본값은1h예요. -
indices.replication.initial_retry_backoff_bound(Dynamic, time unit): 복제 작업이 실패할 때 첫 번째 재시도 백오프의 최대 범위예요. 기본값은50ms예요. 최소 적용값은10ms예요. -
indices.replication.retry_timeout(Dynamic, time unit): 실패한 복제 요청을 재시도하기 위한 총 시간 제한이에요. 기본값은60s예요.
클러스터 수준 메타데이터 설정
OpenSearch는 다음과 같은 클러스터 수준 메타데이터 설정을 지원해요.
cluster.metadata.<key>(Dynamic, varies):"cluster.metadata.key": "value"형식으로 클러스터 메타데이터를 추가해요. 이 설정은 전용 인덱스를 만들지 않고 클러스터에 대한 연락처 정보나 주석과 같이 자주 변경되지 않는 임의의 정보를 유지하는 데 유용해요. 중요: 사용자 정의 클러스터 메타데이터는 민감하거나 기밀 정보를 저장하기 위한 것이 아니에요. 이 값은 Get Cluster Settings API에 접근할 수 있는 모든 사람이 볼 수 있으며 로그에 기록돼요.
클러스터 수준 원격 클러스터 설정
OpenSearch는 다음과 같은 원격 클러스터 설정을 지원해요.
-
cluster.remote.initial_connect_timeout(Dynamic, time unit): 노드가 시작될 때 원격 클러스터에 대한 초기 연결을 설정하는 시간 제한 기간을 설정해요. 이 설정은 원격 클러스터를 사용할 수 없는 경우 노드가 시작 중에 무기한 대기하는 것을 방지해요. 기본값은30s예요. -
cluster.remote.connections_per_cluster(Static, integer): 원격 클러스터에 설정될 최대 연결 수예요. 시드 노드가 하나만 있는 경우 이 숫자까지 다른 노드가 발견돼요. 기본값은3이고 최소값은1이에요. -
cluster.remote.<cluster_alias>.mode(Dynamic, string): 특정 원격 클러스터의 연결 모드를 지정해요. 유효한 값은sniff(원격 클러스터의 여러 노드를 발견하고 연결)와proxy(단일 프록시 주소를 통해 연결)예요. 기본값은sniff예요. -
node.remote_cluster_client(Static, Boolean): 노드가 교차 클러스터 클라이언트로 작동하여 원격 클러스터에 연결할 수 있는지 제어해요. 기본값은true예요.false로 설정하면 노드가 원격 클러스터에 연결하지 못하게 해요. 원격 클러스터 요청은 이 설정이 활성화된 노드로 전송되어야 해요. -
cluster.remote.<cluster_alias>.skip_unavailable(Dynamic, Boolean): 특정 원격 클러스터를 사용할 수 없을 때 교차 클러스터 작업을 계속해야 하는지 제어해요.true로 설정하면 해당 클러스터는 선택 사항이 되고 연결할 수 없으면 작업이 건너뛰어져요.false로 설정하면 이 클러스터를 사용할 수 없을 때 작업이 실패해요. 기본값은false예요. -
cluster.remote.<cluster_alias>.transport.compress(Dynamic, Boolean): 특정 원격 클러스터와의 전송 통신에 압축을 활성화해요. 활성화하면 네트워크 대역폭 사용량이 줄어들지만 압축 작업으로 인한 CPU 오버헤드가 증가해요. 설정하지 않으면 전역transport.compress설정을 대체로 사용해요. 기본값은false예요. -
cluster.remote.<cluster_alias>.transport.ping_schedule(Dynamic, time unit): 특정 원격 클러스터와의 연결을 유지하기 위해 애플리케이션 수준 핑 메시지를 보내는 간격을 설정해요.-1로 설정하면 이 클러스터에 대한 핑이 비활성화돼요. 설정하지 않으면 전역transport.ping_schedule설정을 사용해요. 기본값은-1(비활성화)이에요. -
cluster.remote.<cluster_alias>.seeds(Dynamic, list):sniff모드에만 적용 가능해요. 원격 클러스터 토폴로지를 발견하는 데 사용되는 시드 노드 목록을 지정해요. 이 노드들은 초기에 연락하여 클러스터 상태를 검색하고 지속적인 연결을 위한 게이트웨이 노드를 식별해요. -
cluster.remote.<cluster_alias>.node_connections(Dynamic, integer):sniff모드에만 적용 가능해요. 원격 클러스터에서 활성 연결을 유지할 게이트웨이 노드 수를 설정해요. 더 많은 연결은 더 나은 가용성을 제공하지만 더 많은 리소스를 소비해요. 기본값은3이에요. -
cluster.remote.<cluster_alias>.cluster_name(Dynamic, string):sniff모드에만 적용 가능해요. 원격 클러스터의 예상 이름을 지정해요. 설정하면 연결 설정 시 원격 클러스터 이름이 검증돼요. 이는 시드 노드가 잘못 구성되었거나 오래된 경우 의도하지 않은 클러스터에 우발적으로 연결되는 것을 방지하는 데 도움을 줘요. -
cluster.remote.node.attr(Static, string):sniff모드에만 적용 가능해요. 원격 클러스터에서 게이트웨이 노드로 적합한 노드를 필터링하는 노드 속성을 지정해요. 설정하면 지정된 속성이 있는 원격 클러스터 노드만 연결에 사용돼요. 예를 들어, 원격 클러스터 노드에node.attr.gateway: true가 있고 이 설정이gateway로 설정된 경우 해당 노드만 교차 클러스터 작업에 연결돼요. -
cluster.remote.<cluster_alias>.proxy_address(Dynamic, string):proxy모드에만 적용 가능해요. 원격 클러스터에 연결하기 위한 프록시 서버 주소를 지정해요. 모든 원격 연결은 이 단일 프록시 엔드포인트를 통해 라우팅돼요. -
cluster.remote.<cluster_alias>.proxy_socket_connections(Dynamic, integer):proxy모드에만 적용 가능해요. 이 원격 클러스터에 대해 프록시 서버에 열 소켓 연결 수를 설정해요. 더 많은 연결은 처리량을 향상시킬 수 있지만 더 많은 리소스를 소비해요. 기본값은18이에요. -
cluster.remote.<cluster_alias>.server_name(Dynamic, string):proxy모드에만 적용 가능해요. 원격 클러스터 연결에 TLS가 활성화된 경우 TLS Server Name Indication (SNI) 확장에 전송되는 호스트 이름을 지정해요. 이는 TLS SNI 사양에 따라 유효한 호스트 이름이어야 해요.
클러스터 관리자 작업 제한 설정
OpenSearch는 특정 클러스터 관리자 작업에 대한 보류 중인 작업 수를 제어하는 다음과 같은 동적 클러스터 관리자 작업 제한 설정을 지원해요.
cluster_manager.throttling.thresholds.<task_name>.value(Dynamic, integer): 특정 클러스터 관리자 작업 유형에 대한 제한 한도를 설정해요. 이 한도에 도달하면 해당 유형의 추가 작업은 즉시 처리되지 않고 대기열에 추가돼요.-1로 설정하면 지정된 작업 유형에 대한 제한이 비활성화돼요. 기본값은 작업 유형에 따라 달라져요. 사용 가능한 작업 이름은 다음과 같아요:create-index: 인덱스 생성 작업을 제어해요delete-index: 인덱스 삭제 작업을 제어해요put-mapping: 매핑 업데이트 작업을 제어해요index-aliases: 인덱스 별칭 작업을 제어해요cluster-update-settings: 클러스터 설정 업데이트를 제어해요put-pipeline: 수집 파이프라인 작업을 제어해요delete-pipeline: 수집 파이프라인 삭제를 제어해요put-search-pipeline: 검색 파이프라인 작업을 제어해요delete-search-pipeline: 검색 파이프라인 삭제를 제어해요put-script: 저장된 스크립트 작업을 제어해요delete-script: 저장된 스크립트 삭제를 제어해요create-snapshot: 스냅샷 생성 작업을 제어해요delete-snapshot: 스냅샷 삭제 작업을 제어해요- 그리고 다른 클러스터 관리자 작업 유형
클러스터 수준 원격 저장소 설정
OpenSearch는 다음과 같은 원격 저장소 설정을 지원해요.
실용적인 예제와 단계별 구성 가이드는 Remote-backed storage를 참조해요. {: .tip}
-
cluster.remote_store.index.restrict.async-durability(Static, Boolean): 제한된 접근 설정이에요. 활성화되면(true)index.translog.durability가async로 설정된 인덱스의 생성 또는 수정을 제한해요. 이 설정은 원격 저장소 환경에서 인덱스가async내구성 모드를 사용하는 것을 방지하여 더 강력한 내구성 보장을 적용해요.false로 설정하면 인덱스는 모든 내구성 모드(sync또는async)를 사용할 수 있으며 언제든지 모드 간에 전환할 수 있어요.true로 설정하면index.translog.durability=async로 인덱스를 생성하거나 업데이트하려는 모든 시도가 거부돼요. 이 설정은 비동기 내구성이 데이터 일관성을 손상시킬 수 있는 원격 저장소 배포를 위해 특별히 설계되었어요. 기본값은false예요. -
cluster.remote_store.compatibility_mode(Dynamic, string): 클러스터 마이그레이션 중 원격 저장소 작업의 호환성 모드를 제어해요. 유효한 값은 다음과 같아요:strict: 동일한 원격 저장소 구성을 가진 노드만 클러스터에 참여할 수 있어요mixed: 마이그레이션 중에 원격 저장소가 활성화된 노드와 일반 노드가 혼합된 클러스터를 허용해요 기본값은strict예요.
-
cluster.remote_store.state.enabled(Static, Boolean): 원격 클러스터 상태 기능을 활성화해요. 활성화되면 클러스터 상태 메타데이터가 로컬 저장소 외에도 원격 저장소에 저장되어 원활한 검색 복제본 복구 및 향상된 클러스터 복원력과 같은 기능을 가능하게 해요. 이 설정은 클러스터 초기화 중에 구성되어야 하며 적절한 원격 저장소 구성이 필요해요. 기본값은false예요. -
cluster.remote_store.publication.enabled(Static, Boolean): 클러스터 상태 업데이트의 원격 게시를 활성화해요. 활성화되면 클러스터 상태 변경 사항이 원격 저장소에 게시되어 분산 상태 관리와 향상된 클러스터 조정을 가능하게 해요. 이 설정은cluster.remote_store.state.enabled가true여야 해요. 기본값은false예요. -
cluster.remote_store.index_metadata.path_type(Static, string): 원격 저장소에 인덱스 메타데이터를 저장하는 데 사용되는 경로 구조를 정의해요. 유효한 값은 다음과 같아요:FIXED: 메타데이터 저장에 고정 경로 구조를 사용해요HASHED_PREFIX: 더 나은 분산을 위해 경로 구조에 해시된 접두사를 사용해요HASHED_INFIX: 부하 분산을 위해 경로 구조에 해시된 중위사를 사용해요 기본값은HASHED_PREFIX예요.
-
cluster.remote_store.index_metadata.path_hash_algo(Static, string):cluster.remote_store.index_metadata.path_type이HASHED_PREFIX또는HASHED_INFIX로 설정된 경우 인덱스 메타데이터 경로에서 접두사 또는 중위사를 구성하는 데 사용되는 해시 알고리즘을 지정해요. 유효한 값은 다음과 같아요:FNV_1A_BASE64: Base64 인코딩과 함께 FNV-1a 해시를 사용해요FNV_1A_COMPOSITE_1: 더 나은 분산을 위해 복합 인코딩과 함께 FNV-1a 해시를 사용해요 기본값은FNV_1A_BASE64예요.
-
cluster.filecache.remote_data_ratio(Dynamic, double): 원격 저장소 구성에서 파일 캐싱을 위한 로컬 디스크 캐시 대비 원격 데이터의 비율을 제어해요. 이 설정은 성능 향상을 위해 얼마나 많은 원격 데이터를 로컬에 캐시할지 결정해요. 값이 높을수록 더 많은 데이터를 로컬에 캐시하지만 더 많은 디스크 공간을 소비해요. 값은 0.0과 1.0 사이여야 해요. 기본값은0.8이에요. -
cluster.indices.replication.strategy(Dynamic, string): 클러스터의 인덱스에 대한 복제 전략을 설정해요. 유효한 값은 다음과 같아요:DOCUMENT: 전통적인 문서 기반 복제SEGMENT: 성능 및 효율성 향상을 위한 세그먼트 기반 복제 기본값은DOCUMENT예요.
-
cluster.index.restrict.replication.type(Dynamic, Boolean): 활성화되면 클러스터 전체의 일관성을 보장하기 위해 특정 복제 유형의 인덱스 생성을 제한해요. 이 설정은 복제 정책을 적용하고 호환되지 않는 복제 구성을 방지하는 데 도움을 줘요. 기본값은false예요.