問題
- 現在の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
- Health:
green
、すべてのシャードがSTARTED
、スケールダウンして問題ありません。
-
規模縮小のためのステップ
- データノードを1つ削除すると、クラスタは黄色の状態になります。 を観察してみましょう:
- のログは、クラスタの
-
STARTED
とUNASSIGNED
シャードでチェックする。
- 緑色になるのを待つ:クラスタが失われたシャードをレプリケートしたことを意味します。
- 残りのノードでライセンスを調整する
- データノードを1つ削除すると、クラスタは黄色の状態になります。 を観察してみましょう:
追加情報
-
Elasticsearch Clusterをスケールダウンする:
- Elasticsearchは個々のノードの障害に強くなければなりません。 ノードのクォーラム( ) がクラスタ状態の更新を受け入れた後に、その更新が成功したとみなすことで、この回復力を実現している。 クォーラムとは、クラスタ内のマスター適格ノードの中から慎重に選ばれたサブセットのことだ。
-
クォーラムは、クラスタが2つの独立したマスターを選出し、そのマスターが一貫性のない決定を下すことがないよう、慎重に選択する必要がある:
会員限定記事
Liferay エンタープライズ サブスクリプションをお持ちのお客様は1500件を超えるベストプラクティス、トラブルシューティング、その他のソリューション記事を閲覧できます。ログインすると、記事全体をお読みいただけます。
ログイン