Автоматическая ребалансировка сегментов соответствует ограничениям и правилам, таким как фильтрация распределения и принудительная осведомленность, что приводит к наиболее эффективному и хорошо сбалансированному кластеру.
ПРИМЕЧАНИЕ: Не путайте перераспределение шардов, то есть процесс поиска и перемещения неназначенных шардов на узлы, в которых они находятся, с перебалансировкой. Ребалансировка берет назначенные шарды и равномерно перемещает их на различные узлы, цель - равное распределение шардов на узел.
Как включить автоматическую ребалансировку
Чтобы включить автоматическую ребалансировку кластера в Elasticsearch, мы можем использовать конечную точку API to_cluster API запроса PUT и добавить необходимые нам настройки.
Параметры, доступные для динамической перебалансировки сегментов, включают:
- кластер.маршрутизация.перебалансировать.включить: Управляет автоматической перебалансировкой для различных типов шардов, таких как:
- Все: Наборы включают ребалансировку сегментов для всех индексов.
- Никто: Отключает ребалансировку сегментов для всех индексов.
- Реплики: Разрешена только перебалансировка сегментов реплики.
- Начальный: Разрешена только перебалансировка основного сегмента.
- кластер.маршрутизация.распределение.allow_rebalance: Устанавливает значение для ребалансировки сегментов. Варианты включают:
- Всегда: Позволяет перебалансировать на неопределенный срок.
- Indices_primaries_active: Позволяет перебалансировать только тогда, когда все основные шарды в кластере выделены.
- Индексы_все_активные: Позволяет перебалансировать, когда выделяются только шарды в кластере. Сюда входят как первичные, так и реплики шарды.
- кластер.маршрутизация.распределение.кластер.одновременный.ребалансировка: Эта опция устанавливает количество одновременных ребалансировок, разрешенных в кластере. Значение по умолчанию - 2.
Рассмотрим запрос ниже, чтобы разрешить автоматическую ребалансировку сегментов для кластера.
PUT / _cluster / настройки"настойчивый":
"кластер".маршрутизация.перебалансировать.включить ":" основные цвета ",
"кластер".маршрутизация.распределение.allow_rebalance ":" всегда " ,
"кластер".маршрутизация.распределение.cluster_concurrent_rebalance ":" 2 "
Ниже приводится команда cURL:
curl -XPUT "http: // localhost: 9200 / _cluster / settings" -H 'Content-Type: application / json' -d '"persistent": "cluster.маршрутизация.перебалансировать.включить ":" основные цвета "," кластер ".маршрутизация.распределение.allow_rebalance ":" всегда "," кластер ".маршрутизация.распределение.cluster_concurrent_rebalance ":" 2 " 'Эта команда должна вернуть ответ, поскольку объект JSON подтверждает обновленные параметры.
«Подтверждено»: верно,
"настойчивый" :
"cluster":
"routing":
"rebalance":
"включить": "основные цвета"
,
"allocation":
"allow_rebalance": "всегда",
"cluster_concurrent_rebalance": "2"
,
"временный":
Ручная ребалансировка индекса
Вы также можете вручную перебалансировать шард для определенного индекса. Я бы не рекомендовал этот вариант, потому что параметры ребалансировки Elasticsearch по умолчанию очень эффективны.
Однако, если возникнет необходимость в ручной перебалансировке, вы можете использовать следующий запрос:
«Подтверждено»: верно,
"настойчивый" :
"cluster":
"routing":
"rebalance":
"включить": "основные цвета"
,
"allocation":
"allow_rebalance": "всегда",
"cluster_concurrent_rebalance": "2"
,
"временный":
Команда cURL:
curl -XPOST "http: // localhost: 9200 / _cluster / reroute" -H 'Content-Type: application / json' -d '"commands": ["move": "index": "kibana_sample_data_flights", "shard": 0, "from_node": "instance-0000000001", "to_node": "instance-0000000002"] 'ПРИМЕЧАНИЕ: Имейте в виду, что если вы выполняете ребалансировку вручную, Elasticsearch может переместить шарды автоматически, чтобы обеспечить наилучшую возможную перебалансировку.
Заключение
В этом руководстве вы прошли через обновление и изменение настроек кластера Elasticsearch, чтобы включить автоматическую ребалансировку сегментов. В статье также описывалась ручная перебалансировка, если она вам потребуется.