Elasticsearch マスタ選出プロセス
Elasticsearch の選主プロセスとは、Elasticsearch クラスタ内で 1 つの主ノードを選択する一連の手順のことです。Elasticsearch の選主に関する基本的な手順を次に示します。
- 初期化:ノードが起動した際、すでに存在するクラスタに参加しようとする。もしクラスタ内に他のノードが存在しなければ、当該ノードは自らをマスターノードに選出し、クラスタの唯一のメンバーとなる。
- 新たなノードが参加すると、その存在をマルチキャストやユニキャストなどの方法でブロードキャストし、他のノードが発見できるようになる。
- 選挙フェーズ:ノードがクラスターに参加すると、他のノードと通信を行い、ノードの ID、バージョン番号、ロールなどの現在の状態に関する情報を収集します。
- ノードスコア:各ノードは一定のスコア計算アルゴリズムにより自身のスコアを計算し、スコアは通常ノードのハードウェア構成、負荷状況などの要因に基づいている。
- マスターノード選挙: 全ノードは自分自身のスコアリングを他のノードに送り、受け取ります。その後、それぞれのノードは受け取ったスコアリングをもとに最終スコアリングを計算します。
- 計算された最終スコアに基づいて、各ノードは選挙における自身のポジションを把握しています。最高スコアのノードがマスターノードとなり、クラスター全体の操作を調整し、リソースを割り当てます。
- マスターノードアップデート:現在のマスターノードが故障またはオフラインになった場合、他のノードは選挙プロセスを再起動し、新しいマスターノードを選択します。
ノード間の通信と調整は、プライマリ選択プロセスにおいて不可欠です。ノードは情報を交換し、スコアを計算することで、クラスタの正常な動作と高可用性を確保するために最も適したプライマリノードを選択します。