DBAtlas · 数据库运维图谱

cluster_block_exception: ClusterBlockException[blocked by: [TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block]] (before 7.x: FORBIDDEN/12/index read-only / allow delete (api))(磁盘使用超过 flood-stage 水位线,索引被设为 read-only-allow-delete)

Elasticsearch

含义

由于磁盘使用超过 flood stage 水位线(默认 95%;大容量磁盘上由 max_headroom 决定),Elasticsearch 为在受影响节点上有分片的索引设置了 read_only_allow_delete 块,以防磁盘被完全写满。由于该块,无法向索引写入(索引/更新/删除文档);只允许删除索引本身。ES 8.x 以 HTTP 429 返回该错误。

原因

至少一个节点的磁盘使用超过了 cluster.routing.allocation.disk.watermark.flood_stage 阈值。即使手动移除该块,只要磁盘仍然已满,Elasticsearch 就会重新设置它。没有日志轮转的大索引、未清理的快照或磁盘容量不足是典型原因。

解决方法

首先释放磁盘空间:删除旧的/不需要的索引(DELETE /old-index),生成快照后移除索引,或扩容磁盘。在 7.4+ 中,当磁盘使用降到 high 水位线以下时,该块会自动移除;如需立即清除而不等待,手动移除:PUT /_all/_settings {"index.blocks.read_only_allow_delete": null}。作为永久解决办法,用 ILM(Index Lifecycle Management)自动删除/归档旧数据,并检查水位线设置(disk.watermark.low/high/flood_stage)。

在 DBAtlas 中打开 →

同一数据库的其他条目