通过逐步理解,我们了解到在AWS OpenSearch(Elasticsearch)服务中,推荐使用3个专用主节点的原因

前提:只需要一种选择来用中文原生地重新表达以下内容:

AWS OpenSearch ServiceでサポートするElasticsearch 7.10.2時点までの内容になります。
ノードが3つ必要という結論に関してはAWS OpenSearchの特別な話ではなく分散システムでの一般的な話になります。

理解的步骤

以下是本文中的理解流程。

    1. 理解什么是主节点以及还有哪些节点类型。

 

    1. 理解什么是专用主节点。

 

    1. 理解什么是共识(quorum)。

 

    1. 理解为什么计算出理想的共识数的公式是专用主节点数除以2再加1。

 

    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的值。

这个目的是为了防止在网络发生故障时,被称为“分脑”现象的主节点分离时,在分离的情况下造成各自执行不同的配置更改的问题。

image.png

应该是有奇数个可选作为主节点的节点的好处。

(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的情况下的主节点数量以及在节点故障发生时的集群恢复情况。

1台障害発生2台障害発生master2台復旧不可復旧不可master3台復旧可能復旧不可master4台復旧可能復旧不可

重点在于,无论是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并不是一个特殊的话题,它实际上是关于分布式系统常见的讨论内容。

请参阅参考资料。
请查看以下参考。
请参考下面的内容。
请参考此处。
请参考上述所说的。

 

bannerAds