관리 메뉴

가끔 보자, 하늘.

Elasticsearch 저장 용량 이슈 본문

개발 이야기/DB, 데이터분석, AI

Elasticsearch 저장 용량 이슈

가온아 2023. 8. 16. 17:22

운영하는 인프라 중 elasticsearch가 있다. 심지어 버전은 7.11. 5개 node를 운영하고 있으며, 일 데이터가 7GB 정도 누적된다. 오래된 데이터를 자동으로 S3로 백업되면서 용량 이슈도 거의 없어 최근에 2년 정도는 손 댄 기억이 거의 없었다.

(* 최근 여러 서비스의 data pipeline을 통합하려고  aws glue, athena, quicksight로 통합하려고 보고 있는데 가성비가 es를 따라가기는 어려울 것으로 판단된다. 이거 다음에 이야기할 기회가 있을 듯 하고.. 어쨌든 PB 운영 용량이 아니면 거의 문제없을 정도로 뛰어난 제품이다.)

node 중 하나가 갑자가 샤드 할당에 문제가 발생한 듯 보였다. 현상은 아래와 같았다.

  • Kibana에서 확인하니 Status 이미 yellow.
  • Unassigned shards 수치가 존재함. (0이어야만 정상임)
  • node 하나가 모니터링 리스트에 안보임.
  • 해당 노드의 프로세스는 큰 문제는 없어 보이는 상태. 
  • 해당 노드를 재시작 했지만 Unassigned shards수치도 그대로, 노드 모니터링도 안됨.
  • 하지만 node 개수는 5개로 보임.
  • es의 log에도 특이 사항이 안보이는 중.

일단 해당 node의 elasticsearch.yml에 디버깅을 위한 설정 추가 후 노드를 재시작했다.

# ./elasticsearch-7.11/config/elasticsearch.yml
.
.
.

# ----------------------------------- logs -------------------------------------
logger.org.elasticsearch: DEBUG
.
.
.

그리고 reroute 시도해 봄.

# kibana dev tool에서 시도할 수 있습니다.

POST /_cluster/reroute?retry_failed=true

아래와 같은 에러 확인.

... [NO(the node is above the low watermark cluster setting [cluster.routing.allocation.disk.watermark.low=85%], 
  using more disk space than the maximum allowed [85.0%], actual free: [12.051007925103088%])] ...

이전에 디스크 용량 문제 없도록 세팅은 했었지만, 최근 서비스에 로그가 추가되면 일일 누적용량 증가, 오랜 시간 그대로 뒀더니 disk 의 90%가량을 사용중이었다.

cluster.routing.allocation.disk.watermark.low 를 초과할 경우 클러스터 리밸런싱이나 샤드 할당이 제한되는 상황이 발생함.

cluster.routing.allocation.disk.watermark.low 기본값은 85%. 참고로 cluster.routing.allocation.disk.watermark.high값(default 90%)도 있으며 이 값을 초과할 경우 shard relocate를 실행함. 

이 설정값의 수정은 이 링크를 참조.

해결 방법은 어려가지 ... 

node를 추가하거나 기존 sdd를 큰 용량의 sdd로 대체하는 방법. 일단 저는 노는 server로 node 추가해서 해결.

조만간 버전도 올려야되는데 최근에는 AI 작업 때문에 영... ㅠ_ㅜ 

다들 평안 하시길.. 

 

반응형