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

Переключение AZ для кластера Elasticsearch

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

CSS поддерживает развертывание cross-AZ. Переключая AZ для кластера, вы можете сделать больше ресурсов доступными для кластера или повысить его доступность.

Вы можете Добавить AZ или Мигрировать AZ.

  • Добавить AZ: Добавьте один или два AZ для однозонального кластера, либо добавьте один AZ для двухзонального кластера, чтобы повысить доступность кластера.
  • Мигрировать AZ: Переместите данные из текущего AZ в другой AZ, где достаточно ресурсов для кластера.

Процесс изменения AZ выглядит следующим образом:

  1. Переместите данные с одного узла на другие доступные узлы.

  2. Восстановите узел для целевого AZ. Сохраните ID узла, IP address и характеристики без изменений.
  3. Добавьте новый узел в кластер. Система автоматически инициирует перераспределение шарда, перемещая некоторые шарды на новый узел. Затем повторите эти действия на всех остальных узлах.

Узлы заменяются по одному, чтобы избежать прерываний сервиса.

Ограничения

  • Чтобы обеспечить непрерывность сервиса, общее количество узлов данных и холодных узлов данных в кластере должно быть не менее трех.
  • Во время изменения узлы отключаются последовательно, а затем создаются новые узлы. Убедитесь, что общий объём дискового пространства оставшихся узлов достаточен для обработки всех данных кластера и что использование диска узлами остаётся ниже 80%.
  • Чтобы убедиться, что все шард‑индексы в кластере могут быть распределены по оставшимся узлам данных и холодным узлам данных, общее количество узлов данных и холодных узлов данных должно быть больше максимального количества реплик индекса плюс 1.
  • До завершения изменения некоторые узлы могут уже быть перемещены в новую AZ. В этом случае AZ до и после изменения отображаются обе. После успешного завершения изменения новые AZ и их узлы будут отображаться корректно.
  • Когда вы добавляете узлы для кластера (Add AZ), текущий AZ должен быть сохранён. При добавлении одной или двух AZ для кластера с одной AZ вы должны изменить AZ для всех узлов. При добавлении одной AZ для кластера с двойной AZ вы можете выбрать изменение AZ для определённых типов узлов или для всех узлов в кластере. Например, для кластера с двойной AZ вы можете использовать три AZ для его мастер‑узлов, при этом оставляя две AZ для остальных узлов. Чтобы завершить изменение AZ, система постарается переместить как можно меньше узлов для восстановления кластера. В процессе также обновляется YML‑файл конфигурации узлов, которые не изменялись. Вам необходимо перезапустить кластер, чтобы изменения вступили в силу.
  • При миграции AZ (Migrate AZ), вы можете выбрать только один целевой AZ. Для этой операции вы можете выбрать миграцию только определённых типов узлов или всех узлов в кластере. Например, для кластера с двойной AZ вы можете переместить мастер‑узлы из одной AZ в другую, при этом остальные узлы останутся без изменений. При миграции из одной AZ в другую перезапуск кластера не требуется. Если мигрируют несколько AZ, необходимо перезапустить кластер, чтобы изменения вступили в силу.

Change Impact

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

  • Производительность

    Изменение AZs кластера не прерывает сервисы. Однако миграция данных, происходящая в этом процессе, потребляет I/O производительность, и вывод отдельных узлов из эксплуатации всё ещё оказывает некоторое влияние на общую производительность кластера.

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

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

  • Воздействие на обработку запросов

    Пока узел находится в офлайн, запросы, отправленные к нему, могут завершаться с ошибкой. Чтобы смягчить это воздействие, могут быть приняты следующие меры:

    • Используйте VPC endpoint или выделенный балансировщик нагрузки для обработки запросов доступа к вашему кластеру, что обеспечивает автоматическую маршрутизацию запросов к доступным узлам.
    • Включите механизм экспоненциального отката & retry на клиенте (настройте три повторные попытки).
    • Выполняйте эту операцию в непиковые часы.
  • Характеристики этого процесса

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

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

Следующую формулу можно использовать для оценки того, сколько времени займет изменение AZ для кластера:

Продолжительность изменения (мин) = 15 (мин) x Общее количество задействованных узлов + Продолжительность миграции данных (мин)

где 15 минут указывает, сколько обычно занимает операции, не связанные с миграцией данных (например, инициализация) на один узел. Это эмпирическое значение.

Продолжительность миграции данных (мин) = Общий размер данных узлов, подлежащих миграции (МБ) ÷ [Общее количество vCPU данных узлов x 32 (МБ/с) x 60 (с)]

где,

  • 32 МБ/с указывает, что каждый vCPU может обрабатывать 32 МБ данных в секунду. Это эмпирическое значение.
  • Приведённые выше формулы используют оценки при идеальных условиях. Фактическая скорость миграции зависит от нагрузки кластера.

Требования

  • Состояние кластера Доступно, и нет текущих задач.
  • Убедитесь, что у кластера не было нестандартных модификаций, таких как настройка пользовательских обратных маршрутов и системных параметров. Такие модификации, если они были внесены, будут потеряны после изменения AZ, что может повлиять на ваши сервисы.
  • Все критически важные данные были бэкапированы. Для подробностей смотрите Создание Снапшотов для Бэкапа данных кластера Elasticsearch.

Изменение AZ

  1. Войдите в консоль управления CSS.
  2. В навигационной панели слева выберите Кластеры > Elasticsearch.
  3. В списке кластеров найдите целевой кластер и выберите Больше > Изменить конфигурацию в Operation столбце. Страница Изменить конфигурацию страница отображается.
  4. Нажмите Change AZ вкладку.
  5. На Change AZ странице, задайте параметры.
    Caution

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

    Таблица 1 Параметры изменения AZ

    Параметр

    Описание

    Тип операции

    • Добавить AZ: Добавить один или два AZ для кластера с одним AZ, либо добавить один AZ для кластера с двумя AZ.

      Для завершения этого изменения AZ система постарается переместить как можно меньше узлов для восстановления кластера. В ходе этого процесса также обновляется YML‑файл конфигурации узлов, которые не изменяются. Необходимо перезапустить кластер, чтобы изменения вступили в силу.

    • Мигрировать AZ: Мигрировать данные из одного AZ в другой.

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

    Тип узла

    Выберите тип узла для изменения AZ.

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

    Текущий AZ

    Текущий AZ кластера

    Целевой AZ

    AZ для добавления или перемещения.

    • Добавить AZ: Выберите до трёх AZ, которые должны включать все ваши текущие AZ.
    • Переместить AZ: Выберите только один целевой AZ, который не может быть вашим текущим AZ.
  6. Нажмите Отправить. В отображаемом диалоговом окне выберите, проверять наличие полного снимка индекса, и нажмите OK чтобы начать изменение.
    Note

    Рекомендуется выбрать Проверить наличие полного снимка индекса. Это гарантирует, что все данные были зарезервированы, поэтому в случае сбоя задачи данные можно восстановить с помощью этого снимка.

    Figure 1 Check Full Index Snapshot


    When Task Status в списке задач ниже меняется на Successful, изменение AZ завершено.

  7. Подтвердите результат.
    1. В списке кластеров щёлкните название целевого кластера. Отображается страница информации о кластере.
    2. На Overview вкладке, проверьте AZ кластера в Конфигурация области, чтобы определить, успешно ли выполнено переключение.

Проверка прогресса задачи изменения AZ

В Задачи области, найдите задачу изменения AZ.

Разверните задачу и нажмите Просмотр прогресса чтобы проверить её прогресс.

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

  • Повторить задачу: Нажмите Повторить в Операция столбце.
  • Завершить задачу: Нажмите Завершить в Операция столбец.

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

    Caution

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