LoginSignup
2
3

More than 1 year has passed since last update.

Elasticsearch(5.4.2)の謎を解明するための実験結果。サービス無停止でデータノードを安全に削除してメンテする。

Last updated at Posted at 2018-02-15

データノードを安全に削除する

データノードを減らしたい、データノードだけメンテしたい。そんな時に。

構成

データノード複数台

手順

・対象ノードからシャードを追い出す(追い出し命令実行)
・再配置が実行されてシャードがなくなるのを待つ
・対象ノードのElasticsearchを止める
・追い出し命令停止

コマンド

curlはマスターノードで実行

・ノードからシャードを追い出す(7.3.2でも動いた)

curl -XPUT http://localhost:9200/_cluster/settings -H "Content-Type: application/json" -d '{
  "transient": {
    "cluster.routing.allocation.exclude._name": "data-lab-01"
  }
}'

複数nodeの場合はカンマ区切りで書く(例"node1,node2")

注意:
シングルノードに移行させたい場合は、すべてのインデックスをレプリカを0にしないとこのコマンドで追い出しても(実際は追い出されないが・・)
クラスタ系のURLをたたくと遅くなる
たぶんシャードにnodeでも書かれているんだろう。

・シャードがなくなったら

curl -s -XGET http://localhost:9200/_cat/shards | grep 'node_name' | wc -l

・とめる(対象データノードで実行

systemctl stop elasticsearch

・確認

curl -XGET http://localhost:9200/_cluster/settings

・追い出し命令停止

curl -XPUT http://localhost:9200/_cluster/settings -d '{
  "transient": {
    "cluster.routing.allocation.exclude._name": ""
  }
}'

・確認

curl -XGET http://localhost:9200/_cluster/settings

結果

クラスターヘルスはグリーン
削除(切り離された)データノードを落としてメモリやSSDの増設などができる。
削除したままでもOK。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3