no_shard_available_action_exception: no_shard_available_action_exception: No shard available for [...]
Elasticsearch의미
요청을 처리할 수 있는 활성 샤드 사본을 찾지 못했다. 해당 샤드가 미할당 상태이거나 복구 중이거나, 이를 호스팅하는 노드에 도달할 수 없어 요청을 수행할 수 없다.
원인
노드 크래시/네트워크 파티션, 미할당 샤드, 진행 중인 샤드 복구, 디스크 watermark로 인한 할당 차단, 또는 클러스터가 RED/YELLOW 상태.
해결 방법
클러스터와 샤드 상태를 확인한다: GET _cluster/health 및 GET _cat/shards?v. 샤드가 미할당된 이유를 확인한다: GET _cluster/allocation/explain. 크래시된 노드를 복구하고 디스크 문제를 해결한 뒤 복구가 끝나기를 기다린다: GET _cat/recovery?v&active_only=true. 필요하면 POST _cluster/reroute?retry_failed=true로 할당을 재시도한다.
같은 데이터베이스의 다른 항목
- index_not_found_exceptionindex_not_found_exception: no such index [index_name] (HTTP 404)
- resource_already_exists_exceptionresource_already_exists_exception: index [index_name/uuid] already exists (HTTP 400)
- cluster_health_redcluster health status: RED / unassigned shards (클러스터 상태 RED / 미할당 샤드)
- es_rejected_execution_exceptiones_rejected_execution_exception: rejected execution of ... on ... (queue capacity ...) (HTTP 429)
- master_not_discovered_exceptionmaster_not_discovered_exception / MasterNotDiscoveredException
- security_exceptionsecurity_exception: unable to authenticate / action [...] is unauthorized for user [...] (HTTP 401/403)
- validation_exceptionvalidation_exception / illegal_argument_exception: Validation Failed: ...