作者:SUNNY
时间:2018-06-04
ES集群的分片分配由“allocators”和“deciders”控制,“allocators”负责返回给“deciders”一个满足要求的nodes列表,“deciders”从列表中确定到底分片应分配到哪个nodes。
“allocators”按照各节点的分片数量来获得合适的nodes列表(如果有分配权重则另说)
“deciders”根据一些过滤器来确定最终的分配nodes(分配的设置要求)
对于一个分片的分配,分为新建索引的分片分配,对于已经存在的索引,分为主分片和副本分片的分配
对于新建的索引,“allocators”寻找nodes列表的原则是保持集群的平衡(各个nodes上的分片数尽量保持一致,不是nodes的size)
对于已经存在的索引的主分片:只会允许分配到良好的最新的副本分片上,之后会选择其他副本(数据将有丢失)
参考资料:https://www.elastic.co/blog/red-elasticsearch-cluster-panic-no-longer
ES分片均衡策略演示
使用插件:Paramedic对ES集群的测试结果如下
待续