专有主节点数最佳配置
专有主节点主要用于提高集群稳定性。专有主节点执行群集管理任务,但不保留数据也不响应数据上传请求。集群管理任务的卸载,可增加 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 的默认主备选举,若集群没有充足的备节点数来选择新的主节点,则集群的写入和读取请求均会失败。