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 ウォーターマーク (デフォルト 95%。大容量ディスクでは max_headroom で決定) を超えたため、Elasticsearch は、ディスクが完全に満杯になるのを防ぐ目的で、該当ノード上にシャードを持つインデックスに read_only_allow_delete ブロックを設定した。このブロックにより、インデックスへの書き込み (ドキュメントの index/update/delete) はできず、インデックス自体の削除のみ許可される。ES 8.x ではこのエラーは HTTP 429 で返される。

原因

少なくとも 1 つのノードでディスク使用量が 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 で開く →

同じデータベースの他の項目