关于elasticsearch:ES分片自动均衡

50次阅读

共计 775 个字符,预计需要花费 2 分钟才能阅读完成。

简介

当 Elasticsearch 集群中有新节点退出,或者有节点离线,Elasticsearch 会主动在节点间进行平衡。当有新节点退出集群,集群中现有的分片和正本会从新平衡散布。当有节点离线,须要从新从失落的分片对应的正本列表中抉择一个成为新的分片,并对失落的正本从新生成和数据恢复,最初进行分片和正本在节点间的平衡散布。

新增节点

当有新的节点退出集群,Elasticsearch 会主动进行分片的平衡散布,确保不会呈现热点节点。比方,在一个本来有三个分片和一个正本的两个节点组成的集群中,新增一个节点,Node 1 和 Node 2 上各有一个分片被迁徙到了新的 Node 3 节点,当初每个节点上都领有 2 个分片,而不是之前的 3 个。每个节点的硬件资源(CPU, RAM, I/O)将被更少的分片所共享,每个分片的性能将会失去晋升。

节点离线

当有节点从集群离线,Elasticsearch 会在集群内提拔其余领有以后节点下面的分片对应的正本为分片。在正本被提拔为分片当前,master 节点开始执行复原操作来重建缺失的正本。集群中的节点之间相互拷贝分片数据,这个过程还有可能会触发小规模的分片挪动,最终,分片将在节点间迁徙来达到一个最佳的均衡状态。

勾销迁徙

对于节点临时离线,在短时间后又从新上线,而此时集群还没有实现分片的平衡和迁徙的这种状况,Elasticsearch 会查看有没有文档变更,包含删除、新增和批改,如果没有,那么 master 将会勾销正在进行的再均衡并复原该机器磁盘上的数据。因为,本地磁盘的复原永远要比网络间传输要快,并且保障了分片数据是一样的。

如果文档有变更(比方:节点离线之后又索引了新的文档),那么复原过程会持续依照失常流程进行。重新加入的节点会删除本地的、过期的数据,而后从新获取一份新的。

参考

https://www.elastic.co/guide/…

正文完
 0