我有3个符合条件的主节点,并且根据Elasticsearch文档,为了避免裂脑问题,我将minimum_master_nodes设置为2.
但这意味着如果发生灾难并且只有一个节点存活或重新上线,那么群集将保持不起作用,因为它找不到足够的法定人数来选举主人。
这是否可通过某种设置解决,以便最后一个站点节点将与自身形成一个群集,或者我是否总是需要保证至少有两个节点在线进行我当前的设置?
答案 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