В кластере Elasticsearch переключение между горячим и холодным хранением данных означает распределение данных по узлам с различными стандартами производительности в зависимости от температуры данных (то есть того, как часто к данным обращаются). Цель — достичь оптимальных затрат на хранение и производительности запросов.
Если ваш кластер хранит данные, используемые для разных целей, таких как аналитика в реальном времени, аналитика журналов и архивы данных мониторинга, вы можете переключаться между горячим и холодным хранилищем для указанных индексов, чтобы сбалансировать производительность и затраты.
Рисунок 1 Как работает переключение холодного/горячего хранилища

Ключевой момент — распределять хранилище данных индекса по меткам узлов и политикам распределения индекса.
Вы можете настроить шаблон индекса или напрямую настроить конкретные индексы для распределения данных на data nodes или cold data nodes.
Процедура: Включите cold data nodes при создании кластера и настройте шаблон индекса или конкретные параметры индекса для распределения хранилища данных индекса. Кластер автоматически распределяет данные в соответствии с вашими настройками.
Рисунок 2 Информация о узлах холодных данных

Левая часть консоли — это поле ввода команды, а треугольный значок в её правом верхнем углу является кнопкой выполнения. Правая часть отображает результат выполнения.
Вы можете настроить шаблон индекса или напрямую настроить конкретные индексы для распределения данных на узлы данных или холодные узлы данных.
Настройте шаблон индекса для распределения индексов на холодные или горячие узлы данных. Например, выполните следующую команду, чтобы сохранить индексы, имя которых начинается с myindex на холодные узлы данных. (Команда немного отличается в зависимости от версии Elasticsearch.)
PUT _template/test{"order": 1,"index_patterns": "myindex*","settings": {"refresh_interval": "30s","number_of_shards": "3","number_of_replicas": "0","routing.allocation.require.box_type": "cold"}}
PUT _template/test{"order": 1,"template": "myindex*","settings": {"index": {"refresh_interval": "30s","number_of_shards": "3","number_of_replicas": "0","routing.allocation.require.box_type": "cold"}}}
Описание параметров:
Чтобы изменить тип узла для существующего индекса, выполните следующую команду:
PUT myindex/_settings{"index.routing.allocation.require.box_type": "cold"}
Описание параметра:
Выполните следующую команду, чтобы проверить распределение шардов индекса:
GET _cat/shards/myindex?v
Если объём данных велик, переключение может занять длительное время. Может возникнуть промежуточное состояние, когда данные индекса находятся как на холодных узлах данных, так и на узлах данных.
Как показано на следующем рисунке, все шарды myindex индекс хранится на холодном узле данных css-e668-ess-cold-esn-1-1.
index shard prirep state docs store ip nodemyindex 1 p STARTED 14085446 17.8gb 192.168.91.188 css-e668-ess-cold-esn-1-1myindex 2 p STARTED 14094005 17.9gb 192.168.91.188 css-e668-ess-cold-esn-1-1myindex 0 p STARTED 14094742 17.8gb 192.168.91.188 css-e668-ess-cold-esn-1-1
Чтобы отменить конфигурацию переключения холод‑горячее, выполните следующую команду:
PUT myindex/_settings{"index.routing.allocation.require.box_type": null}
После отката данные индекса будут равномерно и случайно распределены как между холодными узлами данных, так и между узлами данных.