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

Ключевой момент — распределять хранение данных индекса по меткам узлов и политикам распределения индексов.
Процедура: Включите узлы холодных данных и настройте шаблон индекса или конкретные параметры индекса для распределения хранения данных индекса. Кластер автоматически распределяет данные в соответствии с вашими настройками.
По сравнению с узлами данных, узлы холодных данных обеспечивают более низкую производительность запросов. Определите, какой тип узла использовать, исходя из потребностей сервиса.
Левая часть консоли — это поле ввода команд, а треугольный значок в её правом верхнем углу является кнопкой выполнения. Правая часть отображает результат выполнения.
Вы можете настроить шаблоны индексов или напрямую указать имена индексов для распределения конкретных индексов на data nodes или cold data nodes.
Настройте шаблон индекса для распределения соответствующих индексов на cold или hot data nodes. Например, выполните следующую команду, чтобы задать шаблон, сохраняющий вновь созданные индексы, имя которых начинается с myindex, на cold data nodes:
Параметр | Тип | Описание |
|---|---|---|
index_patterns | String | Определяет шаблон соответствия имени индекса. Символ подстановки (*) может использоваться для соответствия нескольким индексам. Например, myindex* указывает все индексы, имя которых начинается с myindex. |
routing.allocation.require.box_type | String | Указывает тип узла данных для размещения шардов. Значение может быть:
Если этот параметр не указан, шарды будут равномерно и случайно распределены между холодными и горячими узлами данных. |
Чтобы изменить тип узла для существующего индекса, выполните следующую команду:
PUT {index_name}/_settings{"index.routing.allocation.require.box_type": "cold"}
Параметр | Тип | Описание |
|---|---|---|
index_name | String | Указывает один или несколько индексов.
|
routing.allocation.require.box_type | String | Указывает тип узла данных для размещения шардов. Значение может быть:
Если этот параметр не указан, шарды будут равномерно и случайно распределены между узлами данных cold и hot. |
Выполните следующую команду для проверки распределения шардов индекса:
При большом объёме данных переключение может занять продолжительное время. Может возникнуть промежуточное состояние, когда данные индекса находятся как на узлах данных cold, так и на обычных узлах данных.
Как показано на следующей схеме, все шарды индекса myindex хранятся на узле данных cold 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
Чтобы отменить конфигурацию переключения cold-hot, выполните следующую команду:
PUT {index_name}/_settings{"index.routing.allocation.require.box_type": null}
После отката данные индекса будут равномерно и случайно распределены как между узлами данных cold, так и обычными узлами данных.