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

Масштабирование наружу/вверх

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

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

Table 1 Сценарии масштабирования

Type

Scenario

Change Process

Добавление новых узлов

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

Процедура добавления узлов данных или узлов холодных данных:

  1. Добавьте новые узлы и измените конфигурацию кластера.
  2. Автоматически запускается перераспределение shard‑ов для переназначения некоторых shard‑ов на только что добавленные узлы.
  3. После завершения перераспределения новые узлы начинают обрабатывать запросы на поиск и индексацию.

Добавление master‑ или client‑узлов не инициирует миграцию данных.

Во время расширения ёмкости система гарантирует, что каждый shard имеет как минимум одну доступную реплику, обеспечивая непрерывность сервиса.

Добавление master‑узлов

По мере роста объёма данных вашего кластера вы можете повысить его стабильность и надёжность, добавив выделенные master nodes для более эффективного управления узлами кластера.

Процедура добавления нового типа узла: добавьте новые узлы и измените конфигурацию кластера. Добавление master nodes не инициирует миграцию данных и, следовательно, не прерывает работу сервисов.

Добавление client nodes

Для обработки увеличенных запросов и нагрузок записи по мере роста объёма данных вашего кластера вы можете добавить выделенные client nodes. Это разгружает обработку запросов с ваших data nodes, повышая общую масштабируемость кластера.

Процедура добавления нового типа узла: добавьте новые узлы и измените конфигурацию кластера. Добавление client nodes не инициирует миграцию данных и, следовательно, не прерывает работу сервисов.

Однако при добавлении client nodes адрес кластера меняется с адреса data node на адрес client node. Необходимо обновить конфигурацию клиента, чтобы использовать новый адрес. В противном случае client nodes не смогут работать.

Добавление cold data nodes

По мере постоянного роста объёма данных вашего кластера у вас может появиться большое количество исторических данных, к которым обращаются редко, но они всё ещё полезны для аналитических целей. Чтобы оптимизировать как затраты на хранение, так и производительность запросов, вы можете добавить cold data nodes для хранения таких данных.

Процедура добавления нового типа узла: добавьте новые узлы и измените конфигурацию кластера. Добавление cold data nodes не инициирует миграцию данных и, следовательно, не прерывает работу сервисов.

Увеличение ёмкости хранилища узлов

  • Если кластер сталкивается с быстрым ростом данных и его ёмкость хранилища становится недостаточной, вы можете расширить ёмкость хранилища узлов кластера.
  • Если использование диска кластера остаётся высоким, вы можете расширить ёмкость хранилища узлов кластера.
  1. Запрос отправляется в сервис EVS для расширения ёмкостей дисков всех узлов кластера.
  2. После того как EVS расширит ёмкость диска, размер существующих дисковых томов увеличивается на всех узлах кластера.

Расширение ёмкости диска не прервет текущие сервисы.

Влияние на биллинг

Для кластера с оплатой по использованию вы можете увидеть его новую цену при подтверждении scale-out или scale-up в console. После завершения изменения кластер будет выставлен в счет по новой цене.

Ограничения

  • Ёмкость хранилища узлов кластера может только увеличиваться — не уменьшаться. Выберите подходящую ёмкость хранилища узлов, исходя из объёма данных и прогнозируемого роста данных.
  • Ёмкость хранилища мастер‑ и клиентских узлов в кластере не может быть расширена.
  • Ёмкость хранилища узлов данных, использующих локальные диски, не может быть расширена.
  • Для многозонального (multi-AZ) кластера общее количество клиентских узлов должно быть больше или равно количеству AZ. (Для кластера, охватывающего две зоны, это минимум два клиентских узла; для развертывания в трёх зонах — минимум три клиентских узла.)
  • Принципы добавления холодных узлов данных в многозональный (multi-AZ) кластер:
    • Требование к количеству узлов: Кластер с двумя AZ должен иметь минимум четыре холодных узла данных (по два в каждой зоне); а кластер с тремя AZ должен иметь минимум три холодных узла данных (по одному в каждой зоне).
    • Повышение производительности: Чтобы предотвратить неравномерное распределение данных и обеспечить оптимальную производительность запросов и загрузки, количество холодных узлов данных должно быть целым кратным количеству AZ.
  • Для диапазона поддерживаемого количества узлов для каждого типа узлов см. Table 2.
    Table 2 Диапазоны количества узлов

    Node Type

    Value Range

    Data nodes

    • Без узлов master: от 1 до 32
    • С узлами master: от 1 до 200

    Узлы master

    3, 5, 7 или 9 (должно быть нечётным числом от 3 до 9)

    Клиентские узлы

    1~64

    Узлы холодных данных

    1–32

Влияние изменения

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

Увеличение ёмкости хранилища узлов кластера (вертикальное масштабирование) не влияет на сервисы, тогда как добавление новых узлов или новых типов узлов (горизонтальное масштабирование) может иметь следующие последствия:

  • Влияние на производительность

    Добавление новых узлов не прерывает сервисы. Однако после добавления новых узлов фрагменты данных необходимо перераспределить на эти узлы для балансировки нагрузки, и этот процесс будет потреблять I/O‑производительность. Поэтому рекомендуется выполнять операцию в непиковые часы.

    Чтобы минимизировать это влияние, рекомендуется регулировать скорость миграции данных в зависимости от цикла нагрузки кластера: увеличивать скорость миграции данных в непиковые часы, чтобы сократить продолжительность задачи, и уменьшать её до пиковых часов, чтобы обеспечить оптимальную производительность кластера. Скорость миграции данных определяется параметром indices.recovery.max_bytes_per_sec. Значение параметра по умолчанию равно количеству vCPUs, умноженному на 8 MB. Например, для четырёх vCPUs скорость миграции данных составляет 32 MB/s. Вы можете регулировать её в соответствии с требованиями сервиса.

    PUT /_cluster/settings
    {
    "transient": {
    "indices.recovery.max_bytes_per_sec": "128MB"
    }
    }

  • Характеристики этого процесса

    После запуска задачу масштабирования нельзя остановить, пока она не завершится успешно или не завершится с ошибкой.

Продолжительность

  • Для добавления новых узлов или новых типов узлов (горизонтальное масштабирование) требуется от 10 до 30 минут, в зависимости от возможностей планирования кластера.
  • Для расширения ёмкости хранилища узлов кластера (вертикальное масштабирование) требуется от 10 до 15 минут.

Требования

  • Статус кластера Available, и нет текущих задач.
  • Ваши квоты ресурсов CSS достаточны для предстоящего расширения ёмкости. Вы можете проверить доступные ресурсы на странице Modify Configuration.

Добавление узлов или увеличение ёмкости хранилища узлов

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

  1. Войдите в консоль управления CSS.
  2. В панели навигации слева выберите Clusters > Elasticsearch.
  3. В списке кластеров найдите целевой кластер и выберите More > Modify Configuration в столбце Operation. Отобразится страница Modify Configuration.
  4. Нажмите вкладку Scale Cluster.
  5. Установите необходимые параметры.
    Table 3 Добавление узлов или увеличение ёмкости хранилища узлов

    Параметр

    Описание

    Действие

    Выберите Scale out.

    Ресурсы

    Количество добавленных ресурсов.

    Nodes

    Увеличьте количество узлов и ёмкость хранилища узлов в столбцах Nodes и Node Storage Type. Вы можете изменить несколько типов узлов одновременно.

    • Для диапазона количества узлов, поддерживаемого каждым типом узла, см. Constraints.
    • Диапазон значений ёмкости хранилища узла определяется выбранным флейвором узла. Значение должно быть кратно 20.
  6. Нажмите Next.
  7. Подтвердите информацию и нажмите Submit.
  8. Нажмите Back to Cluster List, чтобы вернуться на страницу Clusters. Task Status равно Scaling out. Когда Cluster Status меняется на Available, кластер успешно масштабирован.

Добавление новых типов узлов

Для кластера без выделенных узлов master, client или cold data, по мере увеличения нагрузки на его плоскость данных, вы можете динамически добавлять такие узлы, чтобы распределить нагрузку узлов данных.

  1. Войдите в CSS management console.
  2. В панели навигации слева выберите Clusters > Elasticsearch.
  3. В списке кластеров найдите целевой кластер и выберите More > Modify Configuration в столбце Operation. Отображается страница Modify Configuration.
  4. Нажмите Add Node Types вкладку.

    Если кластер уже имеет выделенные master, client и cold data узлы, вкладка Add Node Types недоступна.

  5. На вкладке Add Node Types настройте узлы.
    Table 4 Добавление новых типов узлов

    Параметр

    Описание

    Node types

    Выберите тип узлов, которые вы хотите добавить.

    • Отображаются только типы узлов, которых кластер еще не имеет. Например, если кластер уже имеет выделенные master‑узлы, отображаются только Client Node и Cold Data Node.
    • За один раз можно добавить только один тип узлов. Например, если необходимо добавить как master, так и client узлы, эту задачу нужно выполнить дважды.

    Node Specifications

    Выберите спецификации узлов в соответствии с требованиями площадки.

    Nodes

    Установите количество узлов для добавления. Диапазон значений см. в Constraints.

    Node Storage Type

    Установите тип хранилища узла.

    Емкость хранилища на каждый мастер‑узел или клиентский узел фиксирована и составляет 40 ГБ.

  6. Нажмите Next.
  7. Подтвердите информацию и нажмите Submit.

    Вернитесь на страницу списка кластеров. Task Status кластера — Scaling out. Когда Cluster Status меняется на Available, узлы успешно добавлены.

    • При добавлении мастер‑узлов в кластер версии ниже 7.x перезапустите узлы данных и узлы холодных данных после того, как Cluster Status изменится на Available, чтобы конфигурация новых мастер‑узлов вступила в силу. В противном случае статус кластера может отображаться как недоступный из‑за задержки синхронизации статуса (хотя фактически сервисы кластера доступны).
    • При добавлении клиентских узлов вы можете выбрать, перезапускать ли узлы данных и узлы холодных данных и выводить процессы Cerebro и Kibana из онлайн‑режима после того, как Cluster Status изменится на Available. Это помогает избежать конфликтов.
    • При добавлении узлов холодных данных необходимо перезапустить узлы данных для активации горячего тега после того, как Cluster Status изменится на Available. Это гарантирует корректную работу узлов холодных данных. После добавления узлов холодных данных вручную перенесите в них исторические данные. Подробности см. в Switching Between Hot and Cold Data.

    Подробности о операции перезапуска см. в Restarting a Cluster.

Related Documents

  • Вы также можете обновить характеристики узлов и изменить тип диска EVS кластера Elasticsearch. Подробности см. в Changing Node Specifications.
  • Во время расширения ёмкости, если ресурсы в AZ становятся недостаточными, вы можете перенести узлы из этого AZ в другой AZ с достаточными ресурсами, а затем выполнить расширение ёмкости в новом AZ. Подробности см. в Switching AZs.