프로그래밍/검색

elasticsearch - high disk watermark exceeded on one or more nodes, rerouting shards

kugancity 2017. 8. 14. 16:03
반응형




어느날 elasticsearch 로그를 보고 있는데 아래와 같은 로그가 찍히고 있었다. 




[2016-08-02 00:42:52,125][INFO ][cluster.routing.allocation.decider] [Fateball] high disk watermark exceeded on one or more nodes, rerouting shards

[2016-08-02 00:43:22,125][WARN ][cluster.routing.allocation.decider] [Fateball] high disk watermark [90%] exceeded on [Fateball] free: 33gb[7%], shards will be relocated away from this node




elasticsearch는 shard를 node에 배치할 때 (재배치 포함) 디스크 여유 공간을 검사하는데 

그 때 미리 정해놓은 여유공간이 부족하면 이 node에 더이상 새 shard 를 배치하고 않고 위와 같은 경고 메세지를 찍는다고 한다. 


이 기준을 watermark(수위)라고 표시 하는데 low 와 high로 따로 설정할 수 있다. 

홍수가  났을 때 low watermark 부터 넘어가고 high watermark에 도달하는 것을 생각하면 된다. 


참고로 low disk watermark 에러 메세지 


[2017-08-14T15:45:31,688][INFO ][o.e.c.r.a.DiskThresholdMonitor] [BydL6N7] low disk watermark [85%] exceeded on [BydL6N7iRhu4YisM75Lirw][BydL6N7][/home/elasticsearch-5.1.1/data/nodes/0] free: 59.2gb[14.9%], replicas will not be assigned to this node


참고로 low watermark 기본 설정은 85%, high watermark 기본 설정은 90%이다. 

즉 서버 디스크가 90% 차있는 상황 OTL 


이런 경고가 뜨면 상황에 따라 설정을 변경하거나 node를 늘리거나 디스크를 정리하라고 가이드 하고 있는데 

일단 디스크를 정리해야 겠다 -_-; 


참고로 설정 변경 방법은 아래와 같다.



PUT /_cluster/settings

{

  "transient": {

    "cluster.routing.allocation.disk.watermark.low": "80%",

    "cluster.routing.allocation.disk.watermark.high": "50gb",

    "cluster.info.update.interval": "1m"

  }

}





참고: https://www.elastic.co/guide/en/elasticsearch/reference/current/disk-allocator.html


 https://books.google.co.kr/books?id=oV4dDAAAQBAJ&pg=PA191&lpg=PA191&dq=high+disk+watermark+exceeded+on+one+or+more+nodes&source=bl&ots=NO8bB2bcR2&sig=cq17f8TFQ6W43cXLuyZQNoDyYpE&hl=ko&sa=X&ved=0ahUKEwi27NHg_KHOAhULl5QKHYKsAWw4HhDoAQghMAE#v=onepage&q=high%20disk%20watermark%20exceeded%20on%20one%20or%20more%20nodes&f=false




728x90
반응형