Распределение
Разрешенные фазы: warm, cold.
Обновляет настройки индекса, чтобы изменить узлы, на которых разрешено размещать фрагменты индекса, и изменить количество реплик.
Действие распределения не разрешено на стадии hot. Инициализация распределения индекса должна выполняться вручную или через шаблоны индексов.
Вы можете настроить это действие для изменения как правил распределения, так и количества реплик, только правил распределения или только количества реплик. Дополнительную информацию о том, как Elasticsearch использует реплики для масштабирования, см. в разделе Масштабируемость и устойчивость. Дополнительную информацию о контроле места распределения фрагментов конкретного индекса Elasticsearch см. в разделе Фильтрация распределения фрагментов на уровне индекса.
Параметры
Вы должны указать количество реплик или хотя бы один из параметров include, exclude или require. Пустое действие распределения недопустимо.
Дополнительную информацию об использовании пользовательских атрибутов для распределения фрагментов см. в разделе Фильтрация распределения фрагментов на уровне индекса.
-
number_of_replicas - (Необязательно, целое число) Количество реплик, которые необходимо назначить индексу.
-
total_shards_per_node - (Необязательно, целое число) Максимальное количество фрагментов для индекса на одном узле Elasticsearch. Значение
-1интерпретируется как неограниченное. См. общее количество фрагментов. -
include - (Необязательно, объект) Назначает индекс узлам, которые имеют хотя бы один из указанных пользовательских атрибутов.
-
exclude - (Необязательно, объект) Назначает индекс узлам, которые не имеют ни одного из указанных пользовательских атрибутов.
-
require - (Необязательно, объект) Назначает индекс узлам, которые имеют все указанные пользовательские атрибуты.
Пример
Действие распределения в следующем политике изменяет количество реплик индекса на 2. Не более 200 фрагментов индекса будут размещены на одном узле. В противном случае правила распределения индекса не меняются.
PUT _ilm/policy/my_policy
{
"policy": {
"phases": {
"warm": {
"actions": {
"allocate" : {
"number_of_replicas" : 2,
"total_shards_per_node" : 200
}
}
}
}
}
} Назначение индекса узлам с использованием пользовательского атрибута
Действие распределения в следующей политике назначает индекс узлам, которые имеют box_type hot или warm.
Для обозначения box_type узла установите пользовательский атрибут в конфигурации узла. Например, установите node.attr.box_type: hot в elasticsearch.yml. Дополнительную информацию см. в разделе Включение фильтрации распределения фрагментов на уровне индекса.
PUT _ilm/policy/my_policy
{
"policy": {
"phases": {
"warm": {
"actions": {
"allocate" : {
"include" : {
"box_type": "hot,warm"
}
}
}
}
}
}
} Назначение индекса узлам на основе нескольких атрибутов
Действие распределения также может назначать индексы узлам на основе нескольких атрибутов узла. Следующее действие назначает индексы на основе атрибутов узла box_type и storage.
PUT _ilm/policy/my_policy
{
"policy": {
"phases": {
"cold": {
"actions": {
"allocate" : {
"require" : {
"box_type": "cold",
"storage": "high"
}
}
}
}
}
}
} Назначение индекса определенному узлу и обновление настроек реплик
Действие распределения в следующей политике обновляет индекс, чтобы у него было по одной реплике на фрагмент и он был назначен узлам, которые имеют box_type cold.
Для обозначения box_type узла установите пользовательский атрибут в конфигурации узла. Например, установите node.attr.box_type: cold в elasticsearch.yml. Дополнительную информацию см. в разделе Включение фильтрации распределения фрагментов на уровне индекса.
PUT _ilm/policy/my_policy
{
"policy": {
"phases": {
"warm": {
"actions": {
"allocate" : {
"number_of_replicas": 1,
"require" : {
"box_type": "cold"
}
}
}
}
}
}
}
© 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/7.17/ilm-allocate.html