Elasticsearchクラスタのスケールダウン

問題

  • 現在のElasticsearchクラスタをより少ないノード数でスケールダウンする必要があるシナリオに直面することがあります。

Environment

  • Liferay DXP 7.0+
  • Elasticsearch

解決策

  • 規模縮小前の準備
    • クラスタをバックアップして、万が一の時に復元できるようにします。
    • マスターノードの構成最小のマスターノードによると、チェックします。
    • ダウンスケール後のフェイルオーバーが安全でなくなるため、クラスタへの書き込みをすべて停止してください。
    • ディスク容量やメモリを小さくしすぎてクラスタに過負荷をかけていないか確認してください。そうしないと、クラスタは Low disk watermarkで読み取り専用になってしまいます。
    • シャードの作成と移動が少なくて済むため、スペースを節約し、スケーリング時のシャード再配置を高速化するために、インデックスレプリケーション係数を1に下げます。
      curl -X PUT "localhost:9200/twitter/_settings?pretty" -H 'Content-Type: application/json' -d' { "index" : { "number_of_replicas" : 1 }.}'
    • スケールダウンを開始する前に、クラスタのバランスを優雅に調整します。
      • Health: curl -X GET "localhost:9200/_cluster/health?pretty"
      • 期待される成果
        { "cluster_name" : "\"es-data-cluster\"", "status" : "green", "timed_out" : false, "number_of_nodes" : 1, "number_of_data_nodes" : 1, "active_primary_shards" : 0, "active_shards" : 0, "relocating_shards" : 0, "initializing_shards" : 0, "unassigned_shards" : 0, "delayed_unassigned_shards" : 0, "number_of_pending_tasks" : 0, "number_of_in_flight_fetch" : 0, "task_max_waiting_in_queue_millis" : 0, "active_shards_percent_as_number" : 100.0 }
      • Shards: curl -X GET "localhost:9200/_cat/shards"
      • 期待される成果
        twitter 2 p STARTED 0 0b 172.18.0.2 es-node twitter 1 p STARTED 0 0b 172.18.0.2 es-node twitter 0 p STARTED 0 230b 172.18.0.2 es-node
    クラスタのステータスが green 、すべてのシャードが STARTED 、スケールダウンして問題ありません。
  • 規模縮小のためのステップ
    • データノードを1つ削除すると、クラスタは黄色の状態になります。 を観察してみましょう:
      • のログは、クラスタの
      • STARTED UNASSIGNED シャードでチェックする。
    • 緑色になるのを待つ:クラスタが失われたシャードをレプリケートしたことを意味します。
    • 残りのノードでライセンスを調整する

追加情報

  • Elasticsearch Clusterをスケールダウンする:
    • Elasticsearchは個々のノードの障害に強くなければなりません。 ノードのクォーラム( がクラスタ状態の更新を受け入れた後に、その更新が成功したとみなすことで、この回復力を実現している。 クォーラムとは、クラスタ内のマスター適格ノードの中から慎重に選ばれたサブセットのことだ。
    • クォーラムは、クラスタが2つの独立したマスターを選出し、そのマスターが一貫性のない決定を下すことがないよう、慎重に選択する必要がある:
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています