Миграция фильтров распределения индексов на роли узлов
Если вы сейчас используете пользовательские атрибуты узлов и фильтры распределения на основе атрибутов для перемещения индексов между уровнями данных в архитектуре «горячий-тёплый-холодный», рекомендуем перейти к использованию встроенных ролей узлов и автоматического распределения по уровням данных. Использование ролей узлов позволяет ILM автоматически перемещать индексы между уровнями данных.
Хотя мы рекомендуем полагаться на автоматическое распределение по уровням данных для управления данными в архитектуре «горячий-тёплый-холодный», вы по-прежнему можете использовать фильтры распределения на основе атрибутов для управления распределением фрагментов по другим причинам.
Сервис Elasticsearch и Elastic Cloud Enterprise могут выполнить миграцию автоматически. Для автономных развертываний вам необходимо вручную обновить конфигурацию, политики ILM и индексы, чтобы перейти к использованию ролей узлов.
Автоматическая миграция на роли узлов в Elasticsearch Service или Elastic Cloud Enterprise
Если вы используете атрибуты узлов в Elasticsearch Service или Elastic Cloud Enterprise, вам будет предложено перейти к ролям узлов при:
- Обновлении до Elasticsearch 7.10 или более поздней версии
- Развёртывании уровня данных «тёплый», «холодный» или «замороженный»
- Включении автоматического масштабирования
Эти действия автоматически обновят конфигурацию кластера и политики ILM для использования ролей узлов. Кроме того, обновление до версии 7.14 или более поздней версии автоматически обновляет политики ILM при любом изменении конфигурации вашего развертывания.
Если вы используете пользовательские шаблоны индексов, проверьте их после завершения автоматической миграции и удалите любые фильтры распределения на основе атрибутов.
После автоматической миграции дальнейших действий не требуется. Следующие ручные шаги необходимы только если вы не разрешили автоматическую миграцию или имеете автономное развертывание.
Миграция на роли узлов в автономных развертываниях
Чтобы перейти к использованию ролей узлов:
- Назначьте узлы данных соответствующему уровню данных.
- Удалите настройки распределения на основе атрибутов из вашей политики управления жизненным циклом индексов.
- Перестаньте устанавливать пользовательский атрибут «горячий» для новых индексов.
- Установите предпочтительный уровень данных по умолчанию для новых индексов.
- Обновите существующие индексы, чтобы указать предпочтение уровня данных.
Назначение узлов данных уровню данных
Настройте соответствующие роли для каждого узла данных, чтобы назначить его одному или нескольким уровням данных: data_hot, data_content, data_warm, data_cold или data_frozen. Узел может также иметь другие роли. По умолчанию новые узлы настраиваются со всеми ролями.
При добавлении уровня данных к развертыванию Elasticsearch Service один или несколько узлов автоматически настраиваются с соответствующей ролью. Чтобы явно изменить роль узла в развертывании Elasticsearch Service, используйте API обновления развертывания. Замените конфигурацию узла node_type соответствующей конфигурацией node_roles. Например, следующая конфигурация добавляет узел к уровням «горячий» и «контент», а также разрешает ему выполнять роль узла обработки, удалённого узла и узла преобразования.
"node_roles": [ "data_hot", "data_content", "ingest", "remote_cluster_client", "transform" ],
Если вы напрямую управляете своим кластером, настройте соответствующие роли для каждого узла в elasticsearch.yml. Например, следующая настройка настраивает узел в качестве узла только для данных на уровнях «горячий» и «контент».
node.roles [ data_hot, data_content ]
Удаление пользовательских настроек распределения из существующих политик ILM
Обновите действие распределения для каждой фазы жизненного цикла, чтобы удалить настройки распределения на основе атрибутов. Это позволит ILM вставить действие миграции в каждую фазу для автоматического перемещения индексов между уровнями данных.
Если действие распределения не устанавливает количество реплик, удалите действие распределения полностью. (Пустое действие распределения недействительно.)
Политика должна указывать соответствующую фазу для каждого уровня данных в вашей архитектуре. Каждая фаза должна быть присутствовать, чтобы ILM мог вставить действие миграции для перемещения индексов между уровнями данных. Если вам не нужно выполнять другие действия, фаза может быть пустой. Например, если вы включили уровни данных «тёплый» и «холодный» для развертывания, ваша политика должна включать фазы «горячий», «тёплый» и «холодный».
Прекращение установки пользовательского атрибута «горячий» для новых индексов
При создании потока данных его первый поддерживающий индекс теперь автоматически назначается узлам data_hot. Аналогично, при непосредственном создании индекса он автоматически назначается узлам data_content.
В развертываниях Elasticsearch Service удалите шаблон индекса cloud-hot-warm-allocation-0, который устанавливал атрибут распределения фрагментов «горячий» для всех индексов.
DELETE _template/.cloud-hot-warm-allocation-0
Если вы используете пользовательский шаблон индекса, обновите его, чтобы удалить фильтры распределения на основе атрибутов, которые вы использовали для назначения новых индексов уровню «горячий».
Чтобы полностью избежать проблем, возникающих при смешивании предпочтения уровня и настройки маршрутизации пользовательских атрибутов, мы также рекомендуем обновить все устаревшие, составные и компонентные шаблоны, чтобы удалить фильтры распределения на основе атрибутов из настроек, которые они конфигурируют.
Установление предпочтительного уровня данных по умолчанию для новых индексов
Установка cluster.routing.allocation.enforce_default_tier_preference на true гарантирует, что у вновь созданных индексов будет _tier_preference, переопределяя API создания индекса или связанный шаблон индекса, если какой-либо из них указывает null для этой настройки.
PUT _cluster/settings
{
"persistent": {
"cluster.routing.allocation.enforce_default_tier_preference": true
}
} Указание предпочтения уровня данных для существующих индексов
ILM автоматически переносит управляемые индексы через доступные уровни данных, автоматически вставляя действие миграции в каждую фазу.
Чтобы позволить ILM перенести существующий управляемый индекс через уровни данных, обновите настройки индекса следующим образом:
- Удалите пользовательский фильтр распределения, установив его в значение
null. - Установите предпочтение уровня данных.
Например, если ваш старый шаблон устанавливал атрибут data в значение hot для распределения фрагментов на уровне «горячий», установите атрибут data в значение null и установите _tier_preference в значение data_hot.
PUT my-index/_settings
{
"index.routing.allocation.require.data": null,
"index.routing.allocation.include._tier_preference": "data_hot"
} Для индексов, которые уже перешли за пределы фазы «горячий», предпочтение уровня данных должно включать соответствующие резервные уровни, чтобы гарантировать, что фрагменты индексов могут быть распределены, если предпочтительный уровень недоступен. Например, укажите уровень «горячий» как резервный для индексов, уже находящихся на уровне «тёплый».
PUT my-index/_settings
{
"index.routing.allocation.require.data": null,
"index.routing.allocation.include._tier_preference": "data_warm,data_hot"
} Если индекс уже находится на уровне «холодный», включите уровни «холодный», «тёплый» и «горячий».
Для индексов, у которых настроены как _tier_preference, так и require.data, но _tier_preference устарел (т.е. конфигурация атрибутов узла «холоднее», чем настроенное значение _tier_preference), для миграции необходимо удалить атрибут require.data и обновить значение _tier_preference, отражающее правильную иерархию уровней.
Например, для индекса с следующей конфигурацией маршрутизации:
{
"index.routing.allocation.require.data": "warm",
"index.routing.allocation.include._tier_preference": "data_hot"
} Конфигурация маршрутизации должна быть исправлена следующим образом:
PUT my-index/_settings
{
"index.routing.allocation.require.data": null,
"index.routing.allocation.include._tier_preference": "data_warm,data_hot"
} Эта ситуация может возникнуть в системе, по умолчанию использующей уровни данных, например, при восстановлении политики ILM, использующей атрибуты узлов, и переходе управляемых индексов из фазы «горячий» в фазу «тёплый». В этом случае конфигурация атрибутов узла указывает правильный уровень, на котором должен быть распределён индекс.
© 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/migrate-index-allocation-filters.html