疲劳是最舒适的枕头,努力工作吧。

Elasticsearch 根据磁盘空间分配分片

Elasticsearch | 作者 hanbj | 发布于2017年11月19日 | 阅读数:7187

我们生产集群遇到的问题:
由于数据量很大,生产上有几台节点的磁盘使用率超过了90%,查看es日志发现:
high disk watermark [90%] exceeded on 92%, shards will be relocated away from this node,但是通过df -h查看很快磁盘使用率就降下来了,所以猜想:
1、磁盘使用率超过了90%,es就会将分片迁移到其他节点,但是迁移的话我很确定是迁移完成后才删除本地的分片,磁盘空间不可能释放这么快
2、es通过脚本删除该节点的分片,然后将该分片的副本拷贝到其他节点
3、可能达到磁盘预警的情况是segment在合并,es会停止合并,删除合并过程的中间文件
 
不知哪位大神知道这个细节,谢谢
 
已邀请:

medcl - 今晚打老虎。

赞同来自: zhangyufu

基本上是对的,es 会检测到磁盘的使用状态,如果超过90%的阈值,会尝试进行迁移,迁移是从主分片进行迁移,不是从副本,所以如果你的集群里面是有多份数据的话,该磁盘空间不够的副本可以安全的直接删除,另外还有一个前提是集群其他节点有足够的空间,如果没有,该分片自然迁移不了,后面新的版本也对磁盘保护进行了处理,当磁盘空间不够的时候,会转为只读,避免写满磁盘,造成数据损坏,这时候就需要手工运维加磁盘了。建议提前监控好这些指标。

lengchanguo - 得一爸

赞同来自:

ES中有几个分片协调器(大概是这个意思,接口函数),会根据磁盘、主副分片来调整分片。昨天晚上刚看的,理解不深,其中一个分片协调器作用是主分片和副分片绝对不能在一个节点上(多个节点集群)。这个还可手动设置,针对每个磁盘、内存不同作不同的分片设置,这步就要继承接口函数来实现了。

要回复问题请先登录注册