Elasticsearch не назначает осколки (новому) узлу

1146
Bastien Semene

У меня проблема с моим кластером, не уравновешивающим шарды с перезагруженным узлом, который теперь пуст.

  1. Я остановился my_nodeс my_clusterи ждал, черепки и реплики быть reallocted. Это удалось.
  2. Затем я перезапустил my_node, но кластер не выделил ни одного осколка.
  3. Был создан новый индекс, и кластеру назначены шарды my_node.
  4. Один день спустя, у узла все еще есть только сегменты нового индекса.

Есть ли способ принудительного выравнивания осколков по узлам? В моем случае я протестировал перезапуск узла после запуска gateway.recover_after_time, но эта проблема заставляет меня задуматься:

  • Что мне делать, если я добавляю новый узел и хочу инициировать ребалансировку?
1

1 ответ на вопрос

0
Bastien Semene

NVM, It appears that my_node is an older version and elasticsearch refuses to reallocate if the version to an older version.

I ran curl -XPOST '10.10.1.4:9200/_cluster/reroute' -d '{ "commands" : [ { "allocate" : { "index" : "my_cluster", "node" : "my_node", "shard" : 0 } } ] }' and the cluster answered:

{

"error" : "RemoteTransportException[[es-master][inet[/10.10.1.14:9300]][cluster:admin/reroute]];

nested: ElasticsearchIllegalArgumentException[[allocate] allocation of [my_cluster][0] on node [my_node][o7-MlqgXTU-51t4O7iBu6g][my_node][inet[10.10.1.4/10.10.1.4:9300]] is not allowed, reason:

[YES(shard is not allocated to same node or host)]

[YES(node passes include/exclude/require filters)]

[YES(primary is already active)]

[YES(below shard recovery limit of [2])]

[YES(allocation disabling is ignored)]

[YES(allocation disabling is ignored)]

[YES(no allocation awareness enabled)]

[YES(total shard limit disabled: [-1] <= 0)]

[NO(target node version [1.6.0] is older than source node version [1.6.1])]

[YES(enough disk for shard on node, free: [478.1gb])]

[YES(shard not primary or relocation disabled)]

]; ",

"status" : 400

}

Похожие вопросы