%20%E3%83%8E%E3%83%BC%E3%83%89%E3%81%AB%E3%82%B7%E3%83%A3%E3%83%BC%E3%83%89%E3%82%92%E5%89%B2%E3%82%8A%E5%BD%93%E3%81%A6%E3%81%AA%E3%81%84.png)
再起動されたノードが空になったため、クラスターでシャードのバランスが取れないという問題が発生しています。
- 停止し
my_node
てmy_cluster
、シャードとレプリカが再割り当てされるのを待ちました。これは成功しました。 - その後、再起動しました
my_node
が、クラスターはシャードを割り当てませんでした。 - 新しいインデックスが作成され、クラスターはシャードを に割り当てました
my_node
。 - 1 日後、ノードにはまだ新しいインデックスのシャードのみが残っています。
ノード間でシャードを均等に分散させる方法はありますか? 私の場合は、トリガー後にノードの再起動をテストしましたgateway.recover_after_time
が、この問題から次のようなことが考えられます。
- 新しいノードを追加してリバランスをトリガーしたい場合はどうすればいいですか?
答え1
NVM は古いバージョンであるようでmy_node
、elasticsearch はバージョンが古いバージョンの場合に再割り当てを拒否します。
私は走りcurl -XPOST '10.10.1.4:9200/_cluster/reroute' -d '{ "commands" : [ { "allocate" : { "index" : "my_cluster", "node" : "my_node", "shard" : 0 } } ] }'
、クラスターは答えました:
{
「エラー」: 「RemoteTransportException[[es-master][inet[/10.10.1.14:9300]][cluster:admin/reroute]];
ネスト: ElasticsearchIllegalArgumentException[[allocate] ノード [my_node][o7-MlqgXTU-51t4O7iBu6g][my_node][inet[10.10.1.4/10.10.1.4:9300]]{max_local_storage_nodes=1, master=true} の [my_cluster][0] の割り当ては許可されていません。理由:
[はい(シャードは同じノードまたはホストに割り当てられていません)]
[はい(ノードは include/exclude/require フィルターを通過します)]
[はい(プライマリはすでにアクティブです)]
[はい(シャード回復制限[2]以下)]
[はい(割り当ての無効化は無視されます)]
[はい(割り当ての無効化は無視されます)]
[はい(割り当て認識は有効ではありません)]
[はい(合計シャード制限が無効: [-1] <= 0)]
[いいえ(ターゲットノードバージョン[1.6.0]はソースノードバージョン[1.6.1]より古い)]
[はい(ノード上のシャードに十分なディスク、空き容量: [478.1 GB])]
[はい(シャードがプライマリではないか、再配置が無効)]
]; "、
「ステータス」: 400
}