Настройки распределения фрагментов и маршрутизации кластера
Распределение фрагментов — это процесс назначения копий фрагментов узлам. Это может происходить во время начальной восстановления, распределения реплик, перебалансировки, при добавлении или удалении узлов из кластера, или при обновлении настроек кластера или индексов, влияющих на распределение.
Одна из основных ролей мастера — определить, какие фрагменты следует назначить каким узлам и когда следует перемещать фрагменты между узлами для перебалансировки кластера.
Существует ряд настроек для управления процессом распределения фрагментов:
- Настройки распределения фрагментов на уровне кластера управляют операциями распределения и перебалансировки.
- Настройки распределения фрагментов на основе дисков объясняют, как Elasticsearch учитывает доступное дисковое пространство и соответствующие настройки.
- Осведомленность о распределении фрагментов и Принудительная осведомленность управляют тем, как фрагменты могут быть распределены по различным стойкам или зонам доступности.
- Фильтрация распределения фрагментов на уровне кластера позволяет исключить определенные узлы или группы узлов из распределения, чтобы они могли быть выведены из эксплуатации.
Помимо этого, существуют еще несколько различных настроек на уровне кластера.
Настройки распределения фрагментов на уровне кластера
Вы можете использовать следующие настройки для управления распределением и восстановлением фрагментов:
-
cluster.routing.allocation.enable -
(Динамические) Включить или отключить распределение для определенных типов фрагментов:
-
all- (по умолчанию) Разрешает распределение фрагментов для всех типов фрагментов. -
primaries- Разрешает распределение фрагментов только для первичных фрагментов. -
new_primaries- Разрешает распределение фрагментов только для первичных фрагментов для новых индексов. -
none- Распределение фрагментов любого типа для любых индексов запрещено.
Эта настройка влияет только на будущие распределения и не перераспределяет или не освобождает уже распределенные фрагменты. Она также не влияет на восстановление локальных первичных фрагментов при перезапуске узла. Перезапущенный узел, имеющий копию неназначенного первичного фрагмента, восстановит этот первичный фрагмент сразу, если его идентификатор распределения соответствует одному из активных идентификаторов распределения в состоянии кластера.
-
-
cluster.routing.allocation.same_shard.host - (Динамические) Если
true, запрещает назначение нескольких копий фрагмента разным узлам на одном хосте, т.е. которые имеют один и тот же сетевой адрес. По умолчаниюfalse, что означает, что копии фрагмента иногда могут быть назначены узлам на одном хосте. Эта настройка актуальна только в случае, если на каждом хосте работают несколько узлов. -
cluster.routing.allocation.node_concurrent_incoming_recoveries - (Динамические) Сколько одновременных входящих восстановлений фрагментов разрешено на узле. Входящие восстановления — это восстановления, где целевой фрагмент (скорее всего, реплика, если фрагмент не перемещается) назначается на узле. По умолчанию
2. Увеличение этой настройки может повлиять на производительность других задач в кластере при перемещении фрагментов, но может не привести к заметному ускорению завершения перемещения фрагментов. Не рекомендуется изменять эту настройку от значения по умолчанию2. -
cluster.routing.allocation.node_concurrent_outgoing_recoveries - (Динамические) Сколько одновременных исходящих восстановлений фрагментов разрешено на узле. Исходящие восстановления — это восстановления, где исходный фрагмент (скорее всего, первичный, если фрагмент не перемещается) назначается на узле. По умолчанию
2. Увеличение этой настройки может повлиять на производительность других задач в кластере при перемещении фрагментов, но может не привести к заметному ускорению завершения перемещения фрагментов. Не рекомендуется изменять эту настройку от значения по умолчанию2. -
cluster.routing.allocation.node_concurrent_recoveries - (Динамические) Краткая форма для установки
cluster.routing.allocation.node_concurrent_incoming_recoveriesиcluster.routing.allocation.node_concurrent_outgoing_recoveries. Значение этой настройки вступает в силу только тогда, когда не настроена более конкретная настройка. По умолчанию2. Увеличение этой настройки может повлиять на производительность других задач в кластере при перемещении фрагментов, но может не привести к заметному ускорению завершения перемещения фрагментов. Не рекомендуется изменять эту настройку от значения по умолчанию2. -
cluster.routing.allocation.node_initial_primaries_recoveries - (Динамические) Хотя восстановление реплик происходит по сети, восстановление неназначенного первичного фрагмента после перезапуска узла использует данные с локального диска. Они должны быть быстрыми, чтобы можно было параллельно выполнять больше начальных восстановлений первичных фрагментов на каждом узле. По умолчанию
4. Увеличение этой настройки может повлиять на производительность других задач в кластере при восстановлении фрагментов, но может не привести к заметному ускорению завершения восстановления фрагментов. Не рекомендуется изменять эту настройку от значения по умолчанию4.
Настройки перебалансировки фрагментов
Кластер считается сбалансированным, когда на каждом узле находится одинаковое количество фрагментов, все узлы нуждаются в равных ресурсах, без концентрации фрагментов какого-либо индекса на каком-либо узле. Elasticsearch выполняет автоматический процесс, называемый перебалансировкой, который перемещает фрагменты между узлами в кластере для улучшения его баланса. Перебалансировка подчиняется всем другим правилам распределения фрагментов, таким как фильтрация распределения и принудительная осведомленность, что может помешать ему полностью сбалансировать кластер. В этом случае перебалансировка стремится достичь наиболее сбалансированного кластера в рамках ваших настроек. Если вы используете уровни данных, Elasticsearch автоматически применяет правила фильтрации распределения, чтобы поместить каждый фрагмент в соответствующий уровень. Эти правила означают, что балансировщик работает независимо в каждом уровне.
Вы можете использовать следующие настройки для управления перебалансировкой фрагментов по всему кластеру:
-
cluster.routing.allocation.allow_rebalance -
(Динамические) Укажите, когда разрешена перебалансировка фрагментов:
-
always- (по умолчанию) Перебалансировка всегда разрешена. -
indices_primaries_active- Только когда все первичные фрагменты в кластере назначены. -
indices_all_active- Только когда все фрагменты (первичные и реплики) в кластере назначены.
-
-
cluster.routing.rebalance.enable -
(Динамические) Включить или отключить перебалансировку для определенных типов фрагментов:
-
all- (по умолчанию) Разрешает перебалансировку фрагментов для всех типов фрагментов. -
primaries- Разрешает перебалансировку фрагментов только для первичных фрагментов. -
replicas- Разрешает перебалансировку фрагментов только для реплик. -
none- Перебалансировка фрагментов любого типа для любых индексов запрещена.
Перебалансировка важна для обеспечения возврата кластера в здоровое и полностью устойчивое состояние после сбоя. Если вы изменяете эту настройку, как можно скорее верните ее к значению
all. -
-
cluster.routing.allocation.cluster_concurrent_rebalance - (Динамические) Определяет количество одновременных перебалансировок фрагментов, разрешенных по всему кластеру. По умолчанию
2. Обратите внимание, что эта настройка контролирует только количество одновременных перемещений фрагментов из-за дисбаланса в кластере. Эта настройка не ограничивает перемещения фрагментов из-за фильтрации распределения или принудительной осведомленности. Увеличение этой настройки может привести к тому, что кластер будет использовать дополнительные ресурсы для перемещения фрагментов между узлами, поэтому обычно не рекомендуется изменять эту настройку от значения по умолчанию2. -
cluster.routing.allocation.type -
Выбирает алгоритм, используемый для вычисления баланса кластера. По умолчанию
desired_balance, который выбирает желаемый балансировщик распределения. Этот балансировщик выполняет фоновую задачу, вычисляющую желаемый баланс фрагментов в кластере. После завершения этой фоновой задачи Elasticsearch перемещает фрагменты в желаемые места.[8.8] Устаревшее значение в версии 8.8. Тип балансировщика
balancedустарел и больше не рекомендуется Также может быть установлено значениеbalancedдля выбора устаревшего балансировщика. Этот балансировщик был по умолчанию в версиях Elasticsearch до 8.6.0. Он работает в фоновом режиме, не позволяя мастеру выполнять другие задачи параллельно. Он работает, выбирая небольшое количество перемещений фрагментов, которые немедленно улучшают баланс кластера, и когда эти перемещения фрагментов завершатся, он снова запускается и выбирает еще несколько фрагментов для перемещения. Поскольку этот балансировщик принимает решения, основываясь только на текущем состоянии кластера, он иногда перемещает фрагмент несколько раз во время балансировки кластера.
Настройки эвристик балансировки фрагментов
Перебалансировка работает, вычисляя вес для каждого узла на основе его распределения фрагментов, а затем перемещая фрагменты между узлами, чтобы уменьшить вес более тяжелых узлов и увеличить вес более легких. Кластер считается сбалансированным, когда нет возможного перемещения фрагментов, которое может приблизить вес любого узла к весу любого другого узла более чем на настраиваемый порог.
Вес узла зависит от количества фрагментов, которые он содержит, и от общей оценочной загрузки ресурсов этих фрагментов, выраженной в размере фрагмента на диске и количестве потоков, необходимых для поддержки трафика записи в фрагмент. Elasticsearch оценивает использование ресурсов фрагментов, принадлежащих потокам данных, при их создании с помощью операции rollover. Оцененный размер диска нового фрагмента — средний размер других фрагментов в потоке данных. Оцененная нагрузка записи нового фрагмента — взвешенное среднее значение фактических нагрузок записи последних фрагментов в потоке данных. У фрагментов, которые не принадлежат индексу записи потока данных, оценивается нагрузка записи, равная нулю.
Следующие настройки управляют тем, как Elasticsearch комбинирует эти значения в общий показатель веса каждого узла.
-
cluster.routing.allocation.balance.threshold - (float, Динамически) Минимальное улучшение веса, которое запускает перемещение фрагментов при перебалансировке. По умолчанию —
1.0f. Увеличение этого значения заставит Elasticsearch раньше прекратить перебалансировку фрагментов, оставив кластер в более несбалансированном состоянии. -
cluster.routing.allocation.balance.shard - (float, Динамически) Определяет коэффициент веса для общего количества фрагментов, выделенных каждому узлу. По умолчанию —
0.45f. Повышение этого значения увеличивает стремление Elasticsearch к выравниванию общего количества фрагментов по узлам перед другими переменными балансировки. -
cluster.routing.allocation.balance.index - (float, Динамически) Определяет коэффициент веса для количества фрагментов на индекс, выделенных каждому узлу. По умолчанию —
0.55f. Повышение этого значения увеличивает стремление Elasticsearch к выравниванию количества фрагментов каждого индекса по узлам перед другими переменными балансировки. -
cluster.routing.allocation.balance.disk_usage - (float, Динамически) Определяет коэффициент веса для балансировки фрагментов в соответствии с их предсказанным размером на диске в байтах. По умолчанию —
2e-11f. Повышение этого значения увеличивает стремление Elasticsearch к выравниванию общего использования диска по узлам перед другими переменными балансировки. -
cluster.routing.allocation.balance.write_load - (float, Динамически) Определяет коэффициент веса для нагрузки записи каждого фрагмента, в терминах оценочного количества потоков индексирования, необходимых фрагментом. По умолчанию —
10.0f. Повышение этого значения увеличивает стремление Elasticsearch к выравниванию общей нагрузки записи по узлам перед другими переменными балансировки.
- Если у вас большой кластер, может быть необязательно поддерживать его в идеальном сбалансированном состоянии постоянно. Для кластера менее ресурсоемко работать в несколько несбалансированном состоянии, чем выполнять все перемещения фрагментов, необходимые для достижения идеального баланса. Если это так, увеличьте значение
cluster.routing.allocation.balance.threshold, чтобы определить допустимый дисбаланс между узлами. Например, если у вас в среднем 500 фрагментов на узел и вы можете допустить разницу в 5% (25 типичных фрагментов) между узлами, установитеcluster.routing.allocation.balance.thresholdна25. - Мы не рекомендуем изменять значения настроек коэффициентов эвристического веса. Значения по умолчанию хорошо работают во всех разумных кластерах. Хотя разные значения могут улучшить текущий баланс в некоторых отношениях, есть вероятность, что они создадут непредвиденные проблемы в будущем или помешают ему корректно обрабатывать непредвиденные сбои.
- Независимо от результата алгоритма балансировки, перебалансировка может быть запрещена из-за правил распределения, таких как принудительное осведомление и фильтрация распределения. Используйте API Cluster allocation explain для объяснения текущего распределения фрагментов.
Настройки распределения фрагментов по дискам
Распределитель фрагментов по дискам гарантирует, что у всех узлов достаточно места на диске, не производя больше перемещений фрагментов, чем необходимо. Он распределяет фрагменты на основе пары пороговых значений, известных как нижний порог и верхний порог. Его основная цель — гарантировать, что ни один узел не превысит верхний порог или, по крайней мере, что любое превышение является временным. Если узел превышает верхний порог, Elasticsearch переместит некоторые из его фрагментов на другие узлы в кластере.
Временное превышение верхнего порога у узлов является нормальным явлением.
Распределитель также пытается удерживать узлы ниже верхнего порога, запрещая распределение дополнительных фрагментов на узел, который превышает нижний порог. Важно, что если все узлы превысили нижний порог, новые фрагменты не могут быть распределены, и Elasticsearch не сможет перемещать фрагменты между узлами, чтобы сохранить использование диска ниже верхнего порога. Вы должны убедиться, что ваш кластер имеет достаточное общее место на диске и что всегда есть некоторые узлы, которые не превышают нижний порог.
Перемещения фрагментов, инициированные распределения фрагментов по дискам, также должны удовлетворять всем другим правилам распределения фрагментов, таким как фильтрация распределения фрагментов и вынужденное соответствие. Если эти правила слишком строгие, они также могут препятствовать перемещениям фрагментов, необходимым для поддержания использования диска узлами в заданных пределах. Если вы используете уровни данных, Elasticsearch автоматически настраивает правила фильтрации распределения, чтобы размещать фрагменты на соответствующем уровне, что означает, что распределитель фрагментов по дискам работает независимо в каждом уровне.
Если узел заполняет свой диск быстрее, чем Elasticsearch может переместить фрагменты в другое место, существует риск полного заполнения диска. Чтобы предотвратить это, в качестве крайней меры, когда использование диска достигает порогового значения, Elasticsearch заблокирует записи в индексах с фрагментом на затронутом узле. Он также продолжит перемещать фрагменты на другие узлы в кластере. Когда использование диска на затронутом узле падает ниже верхнего порога, Elasticsearch автоматически снимает блокировку записи. Обратитесь к исправлению ошибок пороговых значений, чтобы устранить постоянные ошибки пороговых значений.
Настройки максимального запаса
Настройки максимального запаса применяются только в случае, если настройки пороговых значений заданы в процентах или в виде отношений.
Значение максимального запаса предназначено для ограничения требуемого свободного места на диске перед достижением соответствующего порога. Это полезно для серверов с большими дисками, где процентное или относительное пороговое значение может привести к излишне большому требованию к свободному месту на диске. В этом случае максимальный запас может использоваться для ограничения требуемого свободного места на диске.
Например, если cluster.routing.allocation.disk.watermark.flood_stage составляет 95%, а cluster.routing.allocation.disk.watermark.flood_stage.max_headroom составляет 100 ГБ, это означает, что:
- Для меньшего диска, например, 100 ГБ, порог заполнения диска достигнет 95%, что означает 5 ГБ свободного места, поскольку 5 ГБ меньше, чем 100 ГБ максимального запаса.
- Для большего диска, например, 100 ТБ, порог заполнения диска достигнет 100 ГБ свободного места. Это потому, что порог заполнения в 95% потребовал бы 5 ТБ свободного места на диске, но ограничен настройкой максимального запаса до 100 ГБ.
Настройки максимального запаса имеют свои значения по умолчанию только в том случае, если соответствующие настройки пороговых значений не заданы явно. Если пороговые значения заданы явно, тогда настройки максимального запаса не имеют своих значений по умолчанию и должны быть явно заданы, если они необходимы.
Нормальным является то, что узлы в вашем кластере используют очень разное количество места на диске. Баланс кластера зависит от комбинации факторов, включая количество фрагментов на каждом узле, индексы, к которым относятся эти фрагменты, и потребности каждого фрагмента в ресурсах в отношении его размера на диске и использования ЦП. Elasticsearch должен учитывать все эти факторы, и кластер, который сбалансирован с учетом всех этих факторов, может не казаться сбалансированным, если вы сосредоточитесь только на одном из них.
Вы можете использовать следующие настройки для управления распределением фрагментов по дискам:
-
cluster.routing.allocation.disk.threshold_enabled - (Динамическое) По умолчанию
true. Установите значениеfalse, чтобы отключить решатель распределения по дискам. При отключении он также удалит любые существующие блокировки индексовindex.blocks.read_only_allow_delete.
-
cluster.routing.allocation.disk.watermark.low - (Динамическое) Управляет нижним порогом использования диска. По умолчанию
85%, что означает, что Elasticsearch не будет распределять фрагменты на узлы, у которых более 85% диска занято. Его можно также задать как относительную величину, например,0.85. Его также можно задать как абсолютное значение в байтах (например,500mb), чтобы предотвратить распределение фрагментов Elasticsearch, если доступно меньше указанного количества места. Эта настройка не влияет на первичные фрагменты вновь созданных индексов, но предотвратит распределение их реплик. -
cluster.routing.allocation.disk.watermark.low.max_headroom - (Динамическое) Управляет максимальным запасом для нижнего порога (в случае процентного/относительного значения). По умолчанию 200 ГБ, если
cluster.routing.allocation.disk.watermark.lowне задано явно. Это ограничивает требуемое свободное место.
-
cluster.routing.allocation.disk.watermark.high - (Динамическое) Управляет верхним порогом. По умолчанию
90%, что означает, что Elasticsearch попытается перераспределить фрагменты с узла, использование диска которого превышает 90%. Его можно также задать как относительное значение, например,0.9. Его также можно задать как абсолютное значение в байтах (аналогично нижнему порогу), чтобы перераспределить фрагменты с узла, если у него меньше указанного количества свободного места. Эта настройка влияет на распределение всех фрагментов, как ранее распределённых, так и нет. -
cluster.routing.allocation.disk.watermark.high.max_headroom - (Динамическое) Управляет максимальным запасом для верхнего порога (в случае процентного/относительного значения). По умолчанию 150 ГБ, если
cluster.routing.allocation.disk.watermark.highне задано явно. Это ограничивает требуемое свободное место. -
cluster.routing.allocation.disk.watermark.enable_for_single_data_node - (Статический) В более ранних версиях поведение по умолчанию заключалось в игнорировании пороговых значений диска для кластера с одним узлом данных при принятии решения о распределении. Это устаревшее поведение с версии 7.14 и было удалено в версии 8.0. Единственное допустимое значение для этой настройки сейчас —
true. Настройка будет удалена в будущей версии.
-
cluster.routing.allocation.disk.watermark.flood_stage -
(Динамическое) Управляет пороговым значением для критической стадии заполнения диска, которое по умолчанию составляет 95%. Elasticsearch применяет блокировку чтения-только индекса (
index.blocks.read_only_allow_delete) для каждого индекса, у которого есть один или несколько фрагментов, распределённых на узле, и у которого есть хотя бы один диск, превышающий порог критической стадии заполнения. Эта настройка используется в качестве крайней меры для предотвращения исчерпания места на диске узлами. Блокировка индекса автоматически снимается, когда использование диска падает ниже верхнего порога. Аналогично значениям нижнего и верхнего порога, его можно также задать как относительное значение, например,0.95, или абсолютное значение в байтах. -
cluster.routing.allocation.disk.watermark.flood_stage.max_headroom - (Динамическое) Управляет максимальным запасом для порогового значения критической стадии заполнения (в случае процентного/относительного значения). По умолчанию 100 ГБ, если
cluster.routing.allocation.disk.watermark.flood_stageне задано явно. Это ограничивает требуемое свободное место.
Вы не можете смешивать использование процентных/относительных значений и значений в байтах в настройках cluster.routing.allocation.disk.watermark.low, cluster.routing.allocation.disk.watermark.high и cluster.routing.allocation.disk.watermark.flood_stage. Все значения должны быть заданы либо в процентах/отношениях, либо в байтах. Это необходимо, чтобы Elasticsearch мог проверить внутреннюю согласованность настроек, гарантируя, что нижний порог использования диска меньше верхнего порога, а верхний порог меньше порога критической стадии заполнения. Аналогичная проверка выполняется для значений максимального запаса.
-
cluster.routing.allocation.disk.watermark.flood_stage.frozen - (Динамическое) Управляет пороговым значением критической стадии заполнения для узлов с замороженными данными, которое по умолчанию составляет 95%.
-
cluster.routing.allocation.disk.watermark.flood_stage.frozen.max_headroom - (Динамическое) Управляет максимальным запасом для порогового значения критической стадии заполнения (в случае процентного/относительного значения) для узлов с замороженными данными. По умолчанию 20 ГБ, если
cluster.routing.allocation.disk.watermark.flood_stage.frozenне задано явно. Это ограничивает требуемое свободное место на диске для узлов с замороженными данными. -
cluster.info.update.interval - (Динамическое) Как часто Elasticsearch должен проверять использование диска для каждого узла в кластере. По умолчанию
30s.
Значения процентов относятся к используемому объему диска, а значения байтов — к свободному объему диска. Это может быть запутанно, потому что меняется смысл высоких и низких значений. Например, имеет смысл установить низкую отметку в 10 ГБ, а высокую — в 5 ГБ, но не наоборот.
Настройки осведомленности об распределении фрагментов
Вы можете использовать атрибуты узлов в качестве атрибутов осведомленности, чтобы Elasticsearch учитывал вашу физическую конфигурацию оборудования при распределении фрагментов. Если Elasticsearch знает, какие узлы находятся на одном физическом сервере, в одной стойке или в одной зоне, он может распределить первичный фрагмент и его фрагменты-копии, чтобы свести к минимуму риск потери всех копий фрагментов в случае сбоя. Узнайте больше об осведомленности о распределении фрагментов.
-
cluster.routing.allocation.awareness.attributes - (Динамический) Атрибуты узлов, которые Elasticsearch должен использовать в качестве атрибутов осведомленности. Например, если у вас есть атрибут
rack_id, указывающий на стойку, в которой находится каждый узел, вы можете установить это значение наrack_id, чтобы убедиться, что первичные и реплицированные фрагменты не распределяются в одной стойке. Вы можете указать несколько атрибутов через запятую. -
cluster.routing.allocation.awareness.force.* - (Динамический) Значения осведомленности о распределении фрагментов, которые должны существовать для перераспределения фрагментов в случае сбоя расположения. Узнайте больше о принудительной осведомленности.
Фильтрация распределения фрагментов на уровне кластера
Вы можете использовать фильтры распределения фрагментов на уровне кластера, чтобы контролировать, где Elasticsearch распределяет фрагменты из любого индекса. Эти фильтры, действующие на весь кластер, применяются совместно с фильтрацией распределения фрагментов на уровне индекса и осведомленностью о распределении.
Фильтры распределения фрагментов могут основываться на пользовательских атрибутах узлов или встроенных атрибутах _name, _host_ip, _publish_ip, _ip, _host, _id и _tier.
Настройки cluster.routing.allocation являются динамическими, что позволяет перемещать индексы в реальном времени с одного набора узлов на другой. Фрагменты перемещаются только тогда, когда это возможно без нарушения других ограничений маршрутизации, например, когда первичный и реплицированный фрагменты никогда не размещаются на одном узле.
Наиболее распространенный случай использования фильтрации распределения фрагментов на уровне кластера — это отключение узла. Чтобы переместить фрагменты с узла перед его выключением, можно создать фильтр, исключающий узел по его IP-адресу:
resp = client.cluster.put_settings(
persistent={
"cluster.routing.allocation.exclude._ip": "10.0.0.1"
},
)
print(resp) response = client.cluster.put_settings(
body: {
persistent: {
'cluster.routing.allocation.exclude._ip' => '10.0.0.1'
}
}
)
puts response const response = await client.cluster.putSettings({
persistent: {
"cluster.routing.allocation.exclude._ip": "10.0.0.1",
},
});
console.log(response); PUT _cluster/settings
{
"persistent" : {
"cluster.routing.allocation.exclude._ip" : "10.0.0.1"
}
} Настройки маршрутизации кластера
-
cluster.routing.allocation.include.{attribute} - (Динамический) Размещать фрагменты на узле, у которого
{attribute}содержит хотя бы одно из значений, разделенных запятыми. -
cluster.routing.allocation.require.{attribute} - (Динамический) Размещать фрагменты только на узле, у которого
{attribute}содержит все значения, разделенные запятыми. -
cluster.routing.allocation.exclude.{attribute} - (Динамический) Не размещать фрагменты на узле, у которого
{attribute}содержит любое из значений, разделенных запятыми.
Настройки распределения кластера поддерживают следующие встроенные атрибуты:
| | Сопоставление узлов по имени узла |
| | Сопоставление узлов по IP-адресу хоста (IP, связанному с именем хоста) |
| | Сопоставление узлов по IP-адресу публикации |
| | Сопоставление либо |
| | Сопоставление узлов по имени хоста |
| | Сопоставление узлов по идентификатору узла |
| | Сопоставление узлов по роли уровня данных узла |
Фильтрация _tier основана на ролях узлов. Только подмножество ролей являются ролями уровня данных, а общая роль данных будет соответствовать любому фильтру уровня.
При указании значений атрибутов можно использовать подстановочные знаки, например:
resp = client.cluster.put_settings(
persistent={
"cluster.routing.allocation.exclude._ip": "192.168.2.*"
},
)
print(resp) response = client.cluster.put_settings(
body: {
persistent: {
'cluster.routing.allocation.exclude._ip' => '192.168.2.*'
}
}
)
puts response const response = await client.cluster.putSettings({
persistent: {
"cluster.routing.allocation.exclude._ip": "192.168.2.*",
},
});
console.log(response); PUT _cluster/settings
{
"persistent": {
"cluster.routing.allocation.exclude._ip": "192.168.2.*"
}
}
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/modules-cluster.html