(备注:以下均为6.3.0版本elasticsearch测试结果)
新建索引 —> 分片划分(按节点均衡分配)—> 存储目录(均衡分配分片)
一 节点对分片均匀分布,若分布不平衡,则会自动迁移
如:新增一节点,则会从迁移分片到新节点 直到重新达到平衡,此过程为集群的再均衡
例:967个分片在三个节点中的分配
导致集群自发再平衡过程的原因如下:
- 新增节点
- 某一个节点失联,或下线
可能会发生如下过程:
- Node(节点) 19 在网络中失联了(某个家伙踢到了电源线)
- Master 立即注意到了这个节点的离线,它决定在集群内提拔其他拥有 Node 19 上面的主分片对应的副本分片为主分片
- 在副本被提拔为主分片以后,master 节点开始执行恢复操作来重建缺失的副本。集群中的节点之间互相拷贝分片数据,网卡压力剧增,集群状态尝试变绿。
- 由于目前集群处于非平衡状态,这个过程还有可能会触发小规模的分片移动。其他不相关的分片将在节点间迁移来达到一个最佳的平衡状态
通常情况下,上述过程是需要的,比如新增节点,比如下线一个节点,但在某些情况下,临时失联可以很快恢复的情况下会造成一些麻烦。
比如:
踢到电源线的倒霉管理员,把服务器插好电源线进行了重启,现在节点 Node 19 又重新加入到了集群。不幸的是,这个节点被告知当前的数据已经没有用了, 数据已经在其他节点上重新分配了。所以 Node 19 把本地的数据进行删除,然后重新开始恢复集群的其他分片(然后这又导致了一个新的再平衡)