Облачная платформаAdvanced

Переключение между горячим и холодным хранилищем для кластера Elasticsearch

Эта статья полезна?
Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

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

  • Горячие данные: часто запрашиваемые данные, требуется низкая задержка, хранятся с использованием высокопроизводительного оборудования (например, SSD), чтобы обеспечить быструю запись и производительность запросов.
  • Холодные данные: редко запрашиваемые данные, экономичное хранилище (например, HDD).

Если ваш кластер хранит данные, используемые для разных целей, таких как аналитика в реальном времени, аналитика журналов и архивы данных мониторинга, вы можете переключаться между горячим и холодным хранилищем для указанных индексов, чтобы сбалансировать производительность и затраты.

Как работает функция

Рисунок 1 Как работает переключение холодного/горячего хранилища


Ключевой момент — распределять хранилище данных индекса по меткам узлов и политикам распределения индекса.

  • Метки узлов:
    • Data node (hot): По умолчанию хранит данные в реальном времени и поддерживает запросы чтения/записи с высокой конкуренцией.
    • Cold data node (cold): Хранит исторические данные. Cold data nodes используют менее дорогое оборудование и обеспечивают более низкую производительность запросов, чем data nodes.
  • Распределение данных:

    Вы можете настроить шаблон индекса или напрямую настроить конкретные индексы для распределения данных на data nodes или cold data nodes.

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

Ограничения

  • Вы не можете добавить cold data nodes к существующим кластерам, в которых такие узлы не были включены при создании кластера.
  • По сравнению с data nodes, cold data nodes обеспечивают более низкую производительность запросов. Определите, какой тип узла использовать, исходя из потребностей сервиса.

Switching Over Between Hot and Cold Storage

  1. Проверьте, включены ли cold data nodes в целевом кластере.

    1. Войдите в консоль управления CSS.
    2. В навигационной панели слева выберите Кластеры > Elasticsearch.
    3. В списке кластеров нажмите имя целевого кластера. Отображается страница информации о кластере.
    4. На Обзор вкладке, проверьте, есть ли Информация об узле область содержит информацию о узлах холодных данных.

      Рисунок 2 Информация о узлах холодных данных


      • Если присутствует информация о узлах холодных данных, у кластера есть узлы холодных данных. Перейдите к следующему шагу.
      • В противном случае у кластера нет узлов холодных данных, и вы не сможете переключаться между хранением холодных и горячих данных.

  2. Войдите в консоль Kibana.

    1. На странице информации о кластере нажмите Kibana в правом верхнем углу, чтобы войти в Kibana.
    2. В левой навигационной панели выберите Dev Tools.

      Левая часть консоли — это поле ввода команды, а треугольный значок в её правом верхнем углу является кнопкой выполнения. Правая часть отображает результат выполнения.

  3. На странице Kibana настройте политики распределения индексов.

    Вы можете настроить шаблон индекса или напрямую настроить конкретные индексы для распределения данных на узлы данных или холодные узлы данных.

    • Настройка шаблона индекса

      Настройте шаблон индекса для распределения индексов на холодные или горячие узлы данных. Например, выполните следующую команду, чтобы сохранить индексы, имя которых начинается с myindex на холодные узлы данных. (Команда немного отличается в зависимости от версии Elasticsearch.)

      • Для Elasticsearch 6.x и выше:
        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"
        }
        }
      • Для Elasticsearch версий ранее 6.x:
        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"
        }
        }
        }

      Описание параметров:

      • шаблон или index_patterns: правило для сопоставления имён индексов (например, myindex*).
      • box_type: тип узла для сопоставления индексов. cold указывает узлы данных cold, и hot указывает обычные узлы данных.

    • Настройка конкретных индексов

      Чтобы изменить тип узла для существующего индекса, выполните следующую команду:

      PUT myindex/_settings
      {
      "index.routing.allocation.require.box_type": "cold"
      }

      Описание параметра:

      • myindex: имя индекса.
      • box_type: тип узла для сопоставления индексов. cold указывает узлы данных cold, и hot указывает обычные узлы данных.

  4. Проверьте переключение между горячим и холодным хранилищем.

    Выполните следующую команду, чтобы проверить распределение шардов индекса:

    GET _cat/shards/myindex?v

    Если объём данных велик, переключение может занять длительное время. Может возникнуть промежуточное состояние, когда данные индекса находятся как на холодных узлах данных, так и на узлах данных.

    Как показано на следующем рисунке, все шарды myindex индекс хранится на холодном узле данных css-e668-ess-cold-esn-1-1.

    index shard prirep state docs store ip node
    myindex 1 p STARTED 14085446 17.8gb 192.168.91.188 css-e668-ess-cold-esn-1-1
    myindex 2 p STARTED 14094005 17.9gb 192.168.91.188 css-e668-ess-cold-esn-1-1
    myindex 0 p STARTED 14094742 17.8gb 192.168.91.188 css-e668-ess-cold-esn-1-1

  5. Откатить конфигурацию переключения холод‑горячее.

    Чтобы отменить конфигурацию переключения холод‑горячее, выполните следующую команду:

    PUT myindex/_settings
    {
    "index.routing.allocation.require.box_type": null
    }

    После отката данные индекса будут равномерно и случайно распределены как между холодными узлами данных, так и между узлами данных.

Связанные операции