minimum_master_nodes = 2,具有3个主要合格节点 - >如果只有一个节点在线,则无法正常工作

时间:2016-03-20 12:39:51

标签: elasticsearch

我有3个符合条件的主节点,并且根据Elasticsearch文档,为了避免裂脑问题,我将minimum_master_nodes设置为2.

但这意味着如果发生灾难并且只有一个节点存活或重新上线,那么群集将保持不起作用,因为它找不到足够的法定人数来选举主人。

这是否可通过某种设置解决,以便最后一个站点节点将与自身形成一个群集,或者我是否总是需要保证至少有两个节点在线进行我当前的设置?

1 个答案:

答案 0 :(得分:1)

如果您的三个主要合格节点中有两个停止服务,那么您可能需要担心其他问题而不是操作群集。

2/3主节点出现故障的几率应该非常低。但是,如果您认为无法保证群集中的条件,则可能需要增加到5个符合主节点的节点并设置minimum_master_nodes = 3,这会增加保持群集运行的可能性。

有三个符合主节点的节点,我不会太担心这种情况,但是如果你真的需要,你可以提出一些cron的shell脚本来检查{{3}如果它低于2,那么你可以简单地动态地将最小主节点的数量改回1:

# retrieve the number of master nodes
MASTER_COUNT=$(curl -s 'localhost:9200/_cat/master' | wc -l)

# if we have less than two masters, change the setting
if [ "$MASTER_COUNT" < 2 ]; then
   curl -XPUT localhost:9200/_cluster/settings -d '{
      "transient": {
        "discovery.zen.minimum_master_nodes": 1
      }
   }'
fi