Infra & Devops/ElasticSearch

[ElasticSearch] cluster.routing.allocation.disk.watermark.low / cluster.routing.allocation.disk.watermark.high / cluster.routing.allocation.disk.watermark.flood_stage

겸둥이xz 2023. 3. 7. 19:30
반응형

 

 

 

cluster.routing.allocation.disk.watermark.low

- 기본값은 85%이며, 디스크 사용량 85%를 초과하는 노드에 샤드를 할당하지 않는다.

- 비율 값(예: 0.85)으로도 설정 가능하며, 절대 byte 값(예: 500MB)으로 설정도 가능.

- 새로 생성된 primary shards에는 영향을 주진 않고, replica가 할당되는 것을 방지한다.

- 모든 노드가 low watermark를 초과하면 새로운 shards 할당 불가.

   

 

cluster.routing.allocation.disk.watermark.high

- 기본값은 90%이며, 디스크 사용량 90%를 초과하는 노드에서 일부 shards를 다른 노드로 이동시킴.

- low watermark처럼 비율 값, 절대 값으로 설정 가능.

 

cluster.routing.allocation.disk.watermark.flood_stage

- 기본값은 95%이며, 디스크 사용량 95%를 초과하는 노드에 할당된 모든 인덱스를 read-only 상태로 만듦.

- read-only 상태가되면 아래와 같은 에러가 발생하며 인덱싱을 멈춤.

Elasticsearch exception [type=cluster_block_exception, reason=blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];]

- 디스크 공간을 확보하고, 아래 명령어를 통해 read-only 를 해제 가능.

# 모든 read-only 인덱스에 대하여
curl -XPUT -H "Content-Type: application/json" \
   localhost:9200/_all/_settings \
     -d '{"index.blocks.read_only_allow_delete": false}'
     
# 특정 read-only 인덱스에 대하여
curl -XPUT -H "Content-Type: application/json" \
   localhost:9200/${INDEX}/_settings \
     -d '{"index.blocks.read_only_allow_delete": false}'

 

 

예시 : watermark.low 를 초과한 경우

# watermark.low : 90%로 설정되어 있음
{
  "persistent" : {
    "cluster.routing.allocation.disk.threshold_enabled" : "true",
    "cluster.routing.allocation.disk.watermark.high" : "95%",
    "cluster.routing.allocation.disk.watermark.low" : "90%",
    ...
    ..
    .
  },
# 모든 노드 디스크 사용량 91%로 watermark.low : 90%를 초과
xxx-data01 91% (1606/1776GB)
xxx-data02 91% (1605/1776GB)
xxx-data03 91% (1604/1776GB)
xxx-data04 91% (1605/1776GB)
# 새로운 replica shards 할당 불가
xxx-index    3    r    UNASSIGNED
xxx-index    2    r    UNASSIGNED
xxx-index    1    r    UNASSIGNED
xxx-index    0    r    UNASSIGNED

 

해결 방법

- 오래된 인덱스를 제거.

- ILM(Index Lifecycle Management) 등을 이용하여 데이터 보관 주기 조정.

- 데이터 노드 추가.

- 그 외 여러가지 방법...

 

반응형