$30 off During Our Annual Pro Sale. View Details »

ElasticsearchのHA構成について

 ElasticsearchのHA構成について

Avatar for 株式会社Curious Vehicle

株式会社Curious Vehicle

December 05, 2025
Tweet

Transcript

  1. クラスター構成 Master Node Data Node shard-1 shard-4 Data Node shard-2

    shard-5 Data Node shard-3 shard-6 Master Node • クラスタ設定の管理 • シャード配置の決定 • ノードの監視 • インデックス等のメタデータ 操作 Data Node • データの書き込み • 検索処理
  2. クラスター構成 Master Node Data Node shard-1 shard-4 Data Node shard-2

    shard-5 Data Node shard-3 shard-6 Master Node • クラスタ設定の管理 • シャード配置の決定 • ノードの監視 • インデックス等のメタデータ 操作 Data Node • データの書き込み • 検索処理 マスターノードが落ちると クラスターが停止するため冗長化必須
  3. 冗長化の仕組み (~6系) Master Node Master Node マスター Master Node マスター候補

    マスター候補 ルール① マスターノードは奇数にする ルール② minimum_master_nodes (最小マスターノード数) を正しい値に設定す る elasticsearch.yml discovery.zen.minimum_master _node: (マスターノード数 / 2) +1 ※3台の場合「2」
  4. 冗長化の仕組み (~6系) Master Node Master Node Master Node マスター候補 マスター候補

    elasticsearch.yml discovery.zen.minimum_master _node: (マスターノード数 / 2) +1 マスター ping ping ※3台の場合「2」 ①マスター停止を検知
  5. 冗長化の仕組み (~6系) Master Node Master Node Master Node マスター候補 マスター候補

    elasticsearch.yml discovery.zen.minimum_master _node: (マスターノード数 / 2) +1 マスター ※3台の場合「2」 ②最小ノード数を満たしているとき 次のマスターを選定
  6. 冗長化の仕組み (~6系) Master Node Master Node Master Node マスター候補 elasticsearch.yml

    discovery.zen.minimum_master _node: (マスターノード数 / 2) +1 マスター候補 ※3台の場合「2」 ③ノードIDが小さい方が マスターに昇格 マスター
  7. 冗長化の仕組み (~6系) Master Node Master Node Master Node マスター候補 elasticsearch.yml

    discovery.zen.minimum_master _node: (マスターノード数 / 2) +1 マスター候補 ※3台の場合「2」 ④復旧後はマスター候補にな る マスター
  8. 冗長化の仕組み (~6系) Master Node Master Node Master Node マスター候補 マスター候補

    elasticsearch.yml discovery.zen.minimum_master _node: (マスターノード数 / 2) +1 マスター ※3台の場合「2」 最小ノード数を満たさないので クラスターは停止する 2つノードが落ちた場合
  9. 冗長化の仕組み (~6系) elasticsearch.yml discovery.zen.minimum_master _node: (マスターノード数 / 2) +1 ※4台の場合「3」

    ルール① マスターノードは奇数にする Master Node Master Node Master Node Master Node
  10. 冗長化の仕組み (~6系) Master Node elasticsearch.yml discovery.zen.minimum_master _node: (マスターノード数 / 2)

    +1 ※4台の場合「3」 ルール① マスターノードは奇数にする Master Node Master Node Master Node 2:2に分断する可能性
  11. 冗長化の仕組み (~6系) Master Node elasticsearch.yml discovery.zen.minimum_master _node: (マスターノード数 / 2)

    +1 ※4台の場合「3」 ルール① マスターノードは奇数にする Master Node Master Node Master Node 最小ノード数を満たさないので クラスターは停止する
  12. 冗長化の仕組み (~6系) Master Node Master Node マスター候補 elasticsearch.yml discovery.zen.minimum_master _node:

    (マスターノード数 / 2) +1 マスター ※デフォルト「1」 ルール① マスターノードは奇数にする
  13. 冗長化の仕組み (~6系) Master Node elasticsearch.yml discovery.zen.minimum_master _node: (マスターノード数 / 2)

    +1 ※デフォルト「1」 ルール① マスターノードは奇数にする ping Master Node マスター 何らかでpingが失敗 マスター候補 Master Node ping
  14. Master Node マスター 冗長化の仕組み (~6系) Master Node elasticsearch.yml discovery.zen.minimum_master _node:

    (マスターノード数 / 2) +1 ※デフォルト「1」 ルール① マスターノードは奇数にする ping マスター マスター昇格 -> スプリットブレイン -> データの不整合・破損するリスク
  15. 冗長化の仕組み (~6系) elasticsearch.yml discovery.zen.minimum_master _node: (マスターノード数 / 2) +1 ルール②

    minimum_master_nodes を正しい値に設定する ※デフォルト「1」 Master Node Master Node マスター Master Node マスター候補 マスター候補
  16. 冗長化の仕組み (~6系) ルール② minimum_master_nodes を正しい値に設定する Master Node Master Node マスター

    Master Node マスター候補 マスター候補 elasticsearch.yml discovery.zen.minimum_master _node: (マスターノード数 / 2) +1 ※デフォルト「1」
  17. 冗長化の仕組み (~6系) ルール② minimum_master_nodes を正しい値に設定する Master Node Master Node Master

    Node マスター候補 マスター elasticsearch.yml discovery.zen.minimum_master _node: (マスターノード数 / 2) +1 ※デフォルト「1」 スプリットブレイン -> データの不整合・破損するリスク マスター
  18. 冗長化の仕組み (7系~) Master Node Master Node Master Node Master Node

    • マスター選挙が行われる • 投票権が自動的に与えられる(奇数) • 選挙で過半数を獲得するとマスターになれる マスター
  19. 冗長化の仕組み (7系~) Master Node Master Node Master Node Master Node

    マスター 過半数が見えない -> マスター辞退 マスターが見えない -> マスター選挙立候補
  20. 冗長化の仕組み (7系~) Master Node Master Node Master Node Master Node

    過半数が見えない -> マスター辞退 マスターが見えない -> マスター選挙立候補 スプリットブレインが起きない マスター
  21. 冗長化の仕組み (7系~) Master Node マスター Voting-only Node Master Node 2ノードの場合は

    過半数=2 が必要なため投票だけ行うノードを用意する