专用主节点主要用于提高集群稳定性。专用主节点执行群集管理任务,但不保留数据也不响应数据上传请求。集群管理任务的卸载,可增加 OpenSearch 域的稳定性。

管理任务

专用主节点执行以下集群管理任务:

  • 跟踪集群中的所有节点

  • 跟踪集群中的索引数量

  • 跟踪属于每个索引的分片数量

  • 维护集群中节点的路由信息

  • 跟踪集群状态,如在集群中创建索引和添加或移除节点

  • 复制集群中的所有节点之间状态的更改

  • 通过发送心跳信号,监控集群中数据节点可用性的周期信号,并监控所有集群节点的运行状况

配置选型

一个专用主节点

OpenSearch 不支持创建一个专用主节点,因为在发生故障时将没有备份。

两个专用主节点

配置两个专用主节点不满足使用需求,集群没有充足的仲裁节点数,无法在发生故障时选择新的主节点。

说明

仲裁节点数为专用主节点数/2 + 1(向下舍入到最近的整数)。

在创建域时,OpenSearch 将其设置为 discovery.zen.minimum_master_nodes

在这种情况下,2/2 + 1 = 2。由于一个专用主节点发生了故障且仅存在一个备份,因此集群没有达到仲裁节点数且无法选择新的主节点。

三个专用主节点

(推荐)配置三个专用主节点,可在主节点发生故障时提供两个备份节点和必要的仲裁节点数 (2) 来选择新主节点。

四个专用主节点

配置四个专用主节点,并不比三个专用主节点好。特别是,在使用多个可用区域环境,可能会导致问题。

例如,若一个主节点发生故障,目前选择新主节点所需的仲裁节点数 (3)。若两个节点发生故障,则失去该仲裁节点数,与三个专用主节点时一样。

在三个可用区配置中,两个可用区具有一个专用主节点,一个可用区有两个。如果该 AZ 发生中断,其余两个可用区没有选择新主节点所需的仲裁节数 (3)。

五个专用主节点

配置五个专用主节点,与拥有三个节点效果相当,在维持仲裁节点数的同时支持丢失两个节点。

由于在任何给定时间只有一个专用主节点处于活动状态,因此配置五个专用主节点意味着有四个空闲节点,不是高性价比选择。

选型结论

默认情况下,建议在每个生产 OpenSearch 环境配置三个专用主节点,并不建议选择偶数个专用主节点。

若一个集群具有偶数个符合主节点条件的节点,则 OpenSearch 和 Elasticsearch 版本 7.x 及更高版本将忽略一个节点,以便选举配置始终为奇数。在此情况下,4 个专用主节点实质上相当于 3 个(2 比 1)。

注意

不同于 OpenSearch 的默认主备选举,若集群没有充足的备节点数来选择新的主节点,则集群的写入读取请求均会失败。