Clusterからnodeを削除するための方法と確認方法

現在clusterでdatanodeを3台体制で稼働していますが、2台体制に移行したいと考えています。
nodeを削除する前にデータを他のnodeに移動させる必要があります。
調べたところ下記クエリを実行するとよいと聞きました。

curl -XPUT xxx.xxx.xxx.xxx:9200/_cluster/settings -d '{
"transient" :{
"cluster.routing.allocation.exclude._ip" : "xxx.xxx.xxx.yyy"
}
}';echo

実行したところ

{"error":{"root_cause":[{"type":"process_cluster_event_timeout_exception","reason":"failed to process cluster event (cluster_update_settings) within 30s"}],"type":"process_cluster_event_timeout_exception","reason":"failed to process cluster event (cluster_update_settings) within 30s"},"status":503}

と表示されました。

ただし
http://xxx.xxx.xxx.xxx:9200/_cluster/settings?pretty=true
を実行すると

"transient" : {
"cluster" : {
"routing" : {
"allocation" : {
"exclude" : {
"_ip" : "xxx.xxx.xxx.yyy"
}
}
}
}
}

と表示されていたのでクエリ自体は通った?と認識しています。

質問
1.上記クエリ(_cluster/settings)が表示されていたら問題ないでしょうか?
2.上記クエリが通っていたとして、データ(shard)の振り分けが終わったことをどう確認するのでしょうか?

よろしくお願いします。

設定は反映されているだろうと思います
分散環境ということもありタイムアウトした(時間内にレスポンスがなかった)としつつも実際は通っているという状況はたまに遭遇しますね

shardの配置を確認するには下記のリクエストを投げます

curl -XGET xxx.xxx.xxx.xxx:9200/_cat/allocation?v

これでnodeごとに配置されたshardの数やストレージの空き状況が確認できます

Makoto Nozawaさん

そちらのリクエストで確認してみたいと思います。
ありがとうございました!

1 Like

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.