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

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

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

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

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

1 ответ

Решение

NVM, похоже, что my_node является более старой версией и asticsearch отказывается перераспределять, если версия более старая.

Я побежал 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_cluster][0] на узле [my_node][o7-MlqgXTU-51t4O7iBu6g][my_node][inet[10.10.1.4/10.10.1.4:9300]]{max_noal_storage = true} не допускается, причина:

[ДА (шард не назначен одному узлу или хосту)]

[ДА (проходы по узлам включают / исключают / требуют фильтры)]

[ДА (основной уже активен)]

[ДА (ниже предела восстановления осколка [2])]

[ДА (отключение выделения игнорируется)]

[ДА (отключение выделения игнорируется)]

[ДА (не включена информация о распределении)]

[ДА (общий предел шарда отключен: [-1] <= 0)]

[НЕТ (версия целевого узла [1.6.0] старше, чем версия исходного узла [1.6.1])]

[ДА (достаточно диска для шарда на узле, бесплатно: [478.1gb])]

[ДА (осколок не является основным или перемещение отключено)]

]; ",

"статус": 400

}

Другие вопросы по тегам