通过逐步理解,我们了解到在AWS OpenSearch(Elasticsearch)服务中,推荐使用3个专用主节点的原因
前提:只需要一种选择来用中文原生地重新表达以下内容:
AWS OpenSearch ServiceでサポートするElasticsearch 7.10.2時点までの内容になります。
ノードが3つ必要という結論に関してはAWS OpenSearchの特別な話ではなく分散システムでの一般的な話になります。
理解的步骤
以下是本文中的理解流程。
-
- 理解什么是主节点以及还有哪些节点类型。
-
- 理解什么是专用主节点。
-
- 理解什么是共识(quorum)。
-
- 理解为什么计算出理想的共识数的公式是专用主节点数除以2再加1。
-
- 理解为什么以前主候选节点(master-eligible node)应该是奇数台。
- 理解Elasticsearch7.x中关于主候选节点设置的规格变更。
什么是主节点?
“Master”是指扮演节点角色的节点。Master是节点可能担任的角色之一。
师傅的角色是负责整个集群的以下行动。
-
- インデックスの作成または削除
-
- クラスターの一部であるノードの追跡
-
- どのシャードをどのノードに割り当てるかを決定する
- etc..
其他节点的类型
有一种数据节点可以对主要数据进行计算,还有带有Ingest节点功能的Ingest管道。请参考下方的官方页面。
专用主节点是什么意思?
节点可以同时担任多个角色,但专用主节点是指仅担任主节点角色的节点。
负责多个角色的节点
【示例】[数据,主人]
专用主节点
[大师]
亚马逊 OpenSearch 服务建议使用专用主节点。
AWS声称在Amazon OpenSearch Service的集群中,担任主节点角色的节点作为专用主节点能够提高稳定性。
请参考以下AWS官方文件获取详细信息。
“Quorum是什么意思?”
在具有主节点角色的所有节点上,当发生故障等情况时,可能需要选举新的主节点或更改集群配置。为了决定这种变更,需要参与的最小节点数量称为quorum。只有在达到或超过quorum数量的节点上达成一致才可以执行,否则不能执行。
给出公式”理想的quorum数为主节点数量的一半加一”的原因是什么?
推荐在Elasticsearch中使用“专用主节点数/2 + 1”的公式来确定quorum的值。
这个目的是为了防止在网络发生故障时,被称为“分脑”现象的主节点分离时,在分离的情况下造成各自执行不同的配置更改的问题。

应该是有奇数个可选作为主节点的节点的好处。
(Note: The provided text is a mix of Japanese and Chinese characters. For consistency, the paraphrase is provided in simplified Chinese characters.)
最后一台偶数台电视会浪费一台的原因。
以下表格显示了在Elasticsearch7.x中自动设置为主节点/ 2 + 1的情况下的主节点数量以及在节点故障发生时的集群恢复情况。
重点在于,无论是3台还是4台主节点,在集群恢复故障发生次数方面没有差异。
即使在4个主服务器中发生了两个故障,由于所需的选举数为3,因此2台服务器无法进行恢复。但如果只有一个主服务器故障,那么只需要3个主服务器中的2个达成共识即可完成恢复。
由于在偶数节点上,其具有与比它少一个的奇数节点相同的容错能力,因此如果是专用的主节点,那么可以说多出来的一个节点是多余的。
自从Elasticsearch7.x起,它可以自动决定quorum。
在Elasticsearch7.x之前,需要用户自己设置quorum。而从Elasticsearch7.x开始,系统会自动以安全的方式计算quorum,用户不再需要考虑这个问题。
以下这篇文章对这个问题做了非常清晰易懂的解释。
然而,上述的主节点数量为偶数时会有一台无法使用的情况是不会改变的。
结论
总结以上内容如下。
只需要一个选项,用中文本地化地改写以下内容:
专用主节点
1つ → 耐障害性なし
2つ → quorumが1ではスプリットブレインのリスクあり。quorumを2にして回避しても、1ノードの障害時にマスターを決めることができず障害になる、というリスクを抱える。
3つ → 推奨
4つ → Elasticsearch6以下ではスプリットブレインの障害リスクあり。Elasticsearch7からは耐障害性は3つと同等になるが専用マスターノードとしては1台が無駄である。
5つ以上 → 4つでのElasticsearch7の場合の理由と同じく、耐障害性の観点では専用マスターノードとしては無駄になる。このとき、パフォーマンスの観点ではシステム規模によって必要になる。
此外,关于需要三个节点的结论,虽然涉及到AWS OpenSearch并不是一个特殊的话题,它实际上是关于分布式系统常见的讨论内容。
请参阅参考资料。
请查看以下参考。
请参考下面的内容。
请参考此处。
请参考上述所说的。