Автоматичне відновлення балансу відповідає обмеженням і правилам, таким як фільтрація розподілу та примусова обізнаність, що призводить до найбільш ефективного та збалансованого кластера.
ПРИМІТКА: Не плутайте перерозподіл осколка, який є процесом пошуку та переміщення неназначених осколків до вузлів, в яких вони перебувають, із перебалансуванням. Ребалансування бере призначені осколки і рівномірно переміщує їх до різних вузлів, метою є рівний розподіл осколків на вузол.
Як увімкнути автоматичне збалансування
Щоб увімкнути автоматичне перебалансування кластера в Elasticsearch, ми можемо використовувати запит PUT to_cluster кінцеву точку API і додати потрібні налаштування.
Доступні налаштування для динамічного балансування осколків включають:
- скупчення.маршрутизація.ребаланс.увімкнути: Керує автоматичним балансуванням для різних типів осколків, таких як:
- Усі: Набори дозволяють збалансувати осколки для всіх індексів.
- Жоден: Відключає відновлення балансу для всіх індексів.
- Репліки: Допускається лише ребаланс осколків реплік.
- Первинна: Дозволено лише первинне відновлення осколків.
- скупчення.маршрутизація.розподіл.allow_rebalance: Встановлює значення для балансування осколка. Варіанти включають:
- Завжди: Увімкнення повторного балансування на невизначений час.
- Індекси_первинні_активні: Дозволяє перебалансувати лише тоді, коли призначені всі первинні осколки в кластері.
- Індекси_всі_активні: Дозволяє перебалансувати, коли в кластері виділено лише осколки. Сюди входять як первинні, так і репліки.
- скупчення.маршрутизація.розподіл.скупчення.одночасний.ребаланс: Цей параметр встановлює кількість одночасних балансів, дозволених у кластері. Значення за замовчуванням - 2.
Розгляньте наведений нижче запит, щоб дозволити автоматичне відновлення балансу кластера.
ВСТАНОВИТИ / _кластер / налаштування"стійкий":
"кластер.маршрутизація.ребаланс.увімкнути ":" праймеріз ",
"кластер.маршрутизація.розподіл.allow_rebalance ":" завжди " ,
"кластер.маршрутизація.розподіл.cluster_concurrent_rebalance ":" 2 "
Нижче наведено команду cURL:
curl -XPUT "http: // localhost: 9200 / _cluster / settings" -H 'Тип вмісту: application / json' -d '"persistent": "кластер.маршрутизація.ребаланс.увімкнути ":" праймеріз "," кластер.маршрутизація.розподіл.allow_rebalance ":" завжди "," кластер.маршрутизація.розподіл.cluster_concurrent_rebalance ":" 2 " 'Ця команда повинна повернути відповідь, оскільки об'єкт JSON підтверджує оновлені параметри.
“Визнаний”: правда,
"стійкий":
"кластер":
"маршрутизація":
"rebalance":
"enable": "праймеріз"
,
"виділення":
"allow_rebalance": "завжди",
"cluster_concurrent_rebalance": "2"
,
"перехідний":
Ручне перебалансування покажчика
Ви також можете вручну збалансувати осколок для певного індексу. Я б не рекомендував цю опцію, оскільки параметри перебалансування за замовчуванням Elasticsearch дуже ефективні.
Однак, якщо виникає необхідність виконати ручне перебалансування, ви можете скористатися таким запитом:
“Визнаний”: правда,
"стійкий":
"кластер":
"маршрутизація":
"rebalance":
"enable": "праймеріз"
,
"виділення":
"allow_rebalance": "завжди",
"cluster_concurrent_rebalance": "2"
,
"перехідний":
Команда cURL:
curl -XPOST "http: // localhost: 9200 / _cluster / reroute" -H 'Content-Type: application / json' -d '"команди": ["move": "index": "kibana_sample_data_flights", "shard": 0, "from_node": "instance-0000000001", "to_node": "instance-0000000002"] 'ПРИМІТКА: Майте на увазі, що якщо ви виконуєте ручний ребаланс, Elasticsearch може автоматично переміщати осколки, щоб забезпечити найкращий ребаланс.
Висновок
Цей посібник провів вас через оновлення та зміну налаштувань кластера Elasticsearch, щоб увімкнути автоматичне перебалансування осколків. Стаття також висвітлює ручне перебалансування, якщо вам це потрібно.