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).
Ещё по этой СУБД
- index_read_only_allow_deleteTOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block (устаревший вариант: FORBIDDEN/12/index read-only / allow delete (api))
- high_disk_watermark_exceededПревышен high disk watermark [90%] / превышен flood stage disk watermark [95%]
- circuit_breaking_exceptionCircuitBreakingException[[parent]]: данные слишком велики, данные для [<...>] составили бы [...], что превышает лимит [...]
- mapper_parsing_exceptionmapper_parsing_exception: не удалось разобрать поле [...] типа [...]