DBAtlas · 데이터베이스 운영 아틀라스

재시도 한도에 도달한 샤드 재할당 (reroute retry_failed)

Elasticsearch클러스터/노드

명령어

# Attempt count and last failure details:
GET _cluster/allocation/explain?filter_path=index,shard,unassigned_info.reason,unassigned_info.failed_allocation_attempts,unassigned_info.details,allocate_explanation
# After fixing the cause, retry shards that hit the limit:
POST _cluster/reroute?retry_failed=true&metric=none
# Recovery progress:
GET _cat/recovery?v&active_only=true&h=index,shard,stage,source_node,target_node,bytes_percent,translog_ops_percent

하는 일

연속 실패 후 할당이 중단된 shard(ALLOCATION_FAILED, max_retry)의 실패 세부 정보를 보여 주고 할당을 다시 트리거하며 recovery 진행 상황을 모니터링한다.

사용 시점

allocation explain에 'shard has exceeded the maximum number of retries'가 표시될 때. 디스크 가득 참, 손상된 translog, 일시적 네트워크 문제가 해결된 후.

주의

원인을 고치지 않고 retry_failed를 실행하면 샤드가 5번 더 시도한 뒤 다시 실패하므로 먼저 unassigned_info.details의 오류를 해결한다. 많은 샤드가 한꺼번에 recovery에 들어가면 네트워크와 디스크 부하가 증가하며, cluster.routing.allocation.node_concurrent_recoveries와 indices.recovery.max_bytes_per_sec로 제한된다.

DBAtlas에서 열기 →

관련 항목