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가 다시 적용한다. 로그 순환 없는 대형 인덱스, 정리되지 않은 스냅샷 또는 부족한 디스크 용량이 대표적인 원인이다.

해결 방법

먼저 디스크 공간을 확보한다: 오래되거나 불필요한 인덱스를 삭제하거나(DELETE /old-index), 스냅샷을 생성한 뒤 인덱스를 제거하거나, 디스크를 확장한다. 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에서 열기 →

같은 데이터베이스의 다른 항목