OpenSearchにデータをインサート時、TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete blockが発生する。

5/19/2022

原因と解決方法

開発環境で、Opensearchにデータをインサートしていたのですが、途中で失敗し、
TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block
というエラーが発生しました。

そのままの通り、ディスク容量が足りずに失敗したのですが、dfコマンドで容量を確認し、80%ほどでデータを入れる余裕はありそうでした。

調べてみると、Elasticsearchではデフォルトで90%がディスクの最大値と設定されているようでした。

disk-based-shard-allocation

設定で、watermark.highをいじる方法もありますが、今回はサーバーの容量を空けることで問題を回避しました。

解決までのメモ

ここからは自分の環境で行ったことをメモとして残します。

開発はUbuntuで、Dokcerを使用して環境を構築していたため、Volumeやimageの削除を行いました。

docker image prune
docker container pruneでは問題が解決できず、
docker system dfコマンドで、Local Volumesが肥大化していることが原因だとわかりました。

なので、docker-compose down でコンテナを落としてからdocker volume pruneコマンドを実行で容量に空きができ、解決しました。

関連記事

Profile

seki

千葉在住のWebエンジニアです。

生活と趣味の備忘録として、

このブログを始めました。

Favorites✨