DBAtlas · Атлас эксплуатации баз данных

cluster_block_exception: ClusterBlockException[blocked by: [TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block]] (до 7.x: FORBIDDEN/12/index read-only / allow delete (api))

Elasticsearch

Что это значит?

Поскольку использование диска превысило flood stage watermark (по умолчанию 95%; на больших дисках определяется max_headroom), Elasticsearch установил блокировку read_only_allow_delete на индексы, у которых есть шард на затронутом узле, чтобы диск не заполнился полностью. Из-за этой блокировки запись в индекс (index/update/delete документа) невозможна; разрешено только удаление самого индекса. ES 8.x возвращает эту ошибку с HTTP 429.

Почему возникает?

Использование диска хотя бы на одном узле превысило порог cluster.routing.allocation.disk.watermark.flood_stage. Даже если блокировку снять вручную, Elasticsearch установит её снова, пока диск остаётся заполненным. Типичные причины — большие индексы без ротации журналов, неочищенные snapshots или недостаточная ёмкость диска.

Как исправить

Сначала освободите место на диске: удалите старые/ненужные индексы (DELETE /old-index), сделайте snapshot и удалите индексы или увеличьте диск. В 7.4+ блокировка снимается автоматически, когда использование диска опускается ниже high watermark; чтобы снять её сразу, не дожидаясь, удалите её вручную: PUT /_all/_settings {"index.blocks.read_only_allow_delete": null}. Для постоянного решения автоматически удаляйте/архивируйте старые данные с помощью ILM (Index Lifecycle Management) и пересмотрите настройки watermark (disk.watermark.low/high/flood_stage).

Открыть в DBAtlas →

Ещё по этой СУБД