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

Что делает

Показывает подробности сбоев шардов, распределение которых остановлено после последовательных неудач (ALLOCATION_FAILED, max_retry), и снова запускает распределение; отслеживает ход восстановления.

Когда использовать

Когда allocation explain показывает 'shard has exceeded the maximum number of retries'; после устранения заполненного диска, повреждённого translog или временной сетевой проблемы.

Внимание

Запуск retry_failed без устранения причины заставит шард сделать ещё 5 попыток и снова упасть; сначала устраните ошибку из unassigned_info.details. Если много шардов одновременно уходит в восстановление, растёт нагрузка на сеть и диск; она ограничивается cluster.routing.allocation.node_concurrent_recoveries и indices.recovery.max_bytes_per_sec.

Открыть в DBAtlas →

Связанные материалы