Elasticsearch が (新しい) ノードにシャードを割り当てない

Elasticsearch が (新しい) ノードにシャードを割り当てない

再起動されたノードが空になったため、クラスターでシャードのバランスが取れないという問題が発生しています。

  1. 停止し my_nodemy_cluster、シャードとレプリカが再割り当てされるのを待ちました。これは成功しました。
  2. その後、再起動しましたmy_nodeが、クラスターはシャードを割り当てませんでした。
  3. 新しいインデックスが作成され、クラスターはシャードを に割り当てましたmy_node
  4. 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

}

関連情報