首页 文章

确保群集状态的最小节点数是绿色的?

提问于
浏览
1

我有一个包含两个节点的集群,并为shard number和replica number设置配置如下:

index.number_of_shards:10 index.number_of_replicas:1

主节点自动选出 .

在索引数据之前,群集的状态为绿色 . 索引数据后,群集的状态变为黄色 . 某些副本分片未分配 .

但是如果我添加另一个节点,现在集群由三个节点组成,那么我索引数据并且集群的状态变为绿色 .

我使用的ES版本是1.1 .

问题1:
如果副本号为1,是否必须至少有3个节点才能确保群集状态为绿色?

问题2:
我观察到三个节点中的一个(不是主节点)只有主节点 . ES用于分配主/备份分片的机制是什么?

提前致谢 .

UPDATE

第一个问题是由不同版本的ES引起的 . 在我之前的测试中,一个节点使用ES-1.1.1,另一个节点使用ES-1.1.2 . 在群集的每个节点使用相同版本的ES之后,第一个问题就会消失 .

1 回答

  • 2

    Answer 1) 如果你提到

    index.number_of_shards: 10
     index.number_of_replicas: 1
    

    这意味着你的索引被分成10个分片,1个副本意味着每个索引分片都有一个副本分片 . 因此你将完全拥有20个分片 .

    在ES中,主分片和副本分片不在同一节点中分配 . 因此,如果您有1个副本,则必须有2个节点才能使节点状态保持绿色 .

    Number of nodes to keep the cluster state green=NO of replica+1
    

    Answer 2) 在索引的分片中,ES选择一个主分片进行写入 . 没有必要,主节点应该包含主分片.Shards分布在节点之间 . 如果节点失败包含主分片,则相应的副本分片变为primary . 您将保存数据 .

    要了解ES的基本知识Refer

    希望能帮助到你..!

相关问题