Elasticsearch最小主节点

时间:2014-12-13 04:38:54

标签: elasticsearch

我有一个3节点群集,minimum_master_nodes设置为2。如果我关闭除主服务器之外的所有节点,使一个节点保持联机状态,则群集将不再运行。

这是设计的吗?似乎作为主节点的节点应该保持运行,而是我得到这样的错误:

{"error":"MasterNotDiscoveredException[waited for [30s]]","status":503}

所有其他设置都是库存,我正在使用aws云插件。

1 个答案:

答案 0 :(得分:5)

是的,这是故意的。

裂脑

想象一下,其他2个节点仍在运行但无法与第三个节点进行通信的情况 - 您最终会得到两个群集,也称为“分裂大脑”#34;"

由于两个群集可能彼此独立地更新和删除数据,因此恢复将非常困难 - 您不会为数据提供单一的事实来源。

通过将minimum_master_nodes设置为(n/2)+1(n是节点数),您可以防止裂脑。

单个节点

如果您知道前两个节点肯定已经死亡而没有返回 - 您可以在剩余节点上将minimum_master_nodes设置为1(并在重新启动之前在其他节点上设置为1)。

还有一个选项no master block可让您控制当您没有有效群集时会发生什么 - 例如您可以将剩余节点设置为只读,直到重新建立群集为止。