我是ElasticSearch的新手,并尝试为3节点群集找出适当的设置,以便能够容忍丢失2个节点。
根据我的理解,设置将是:
如果没有将minimum_master_nodes设置为1,如果DC1发生故障,DC2中的剩余节点将无法回复,这是否正确?
我正在安装的产品说它不建议将minimum_master_nodes设置为除法定数量以外的任何其他内容。
我想了解将minimum_master_nodes设置为1可能产生的副作用。还是有另一种方法可以容忍3节点集群中2个节点的丢失?
答案 0 :(得分:0)
3个节点集群上不能有2个节点的容错损失。
你必须把minimum_master_nodes:1,但想象所有节点都失去了彼此的连接,它们都成了主人,这将带你去分裂大脑"写入一个节点的情况和数据不会转到其他节点。
要实现2个节点的容错,您需要至少5个节点,每个索引需要2个副本。在这种情况下,分片数量并不重要,但您可以将其更改为具有更好的负载平衡。
计算所需节点数量的公式:
total_nodes - lost_nodes > total_nodes/2
where total_nodes >0; lost_nodes >= 0; total_nodes > lost_nodes
换句话说,您应该始终有超过50%的节点处于活动状态以运行群集。如果你允许50%或更少的裂脑情况成为可能。