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

Обновление версии OpenSearch Кластера

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

В CSS вы можете обновить версию OpenSearch Кластера, чтобы использовать улучшения функций и производительности или исправить известные проблемы.

Таблица 1 Сценарии обновления

Тип обновления

Сценарий

Процесс обновления

Обновление той же версии

Обновите патчи ядра Кластера. Кластер обновляется до последнего образа текущей версии, чтобы исправить известные проблемы или оптимизировать производительность. Например, если версия Кластера 1.3.6(1.3.6_24.3.3_0102), при обновлении той же версии, Кластер будет обновлен до последнего образа 1.3.6(1.3.6_24.3.4_0109) версии 1.3.6. (Номера версий, использованные здесь, являются лишь примерами.)

  1. Выведите узел из сети и перенесите его данные на другие узлы.
  2. Обновите узел до целевой версии.
  3. Добавьте узел обратно в кластер. Система автоматически запускает перераспределение шардов, перемещая некоторые шарды на новый узел.
  4. Подтвердите, что статус узла нормальный. Затем обновите оставшиеся узлы один за другим.

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

Кросс-версионное обновление

Обновите кластер до последнего образа целевой версии, чтобы расширить функциональность или включить версии. Например, если версия кластера 1.3.6(1.3.6_24.3.3_1224), при кросс-версионном обновлении кластер будет обновлён до последнего образа 2.17.1(2.17.1_24.3.4_0109) версии 2.17.1. (Номера версий, использованные здесь, являются только примерами.)

Ограничения

  • Максимум 20 кластеров могут быть обновлены одновременно.
  • Во время обновления данные на обновлённых узлах необходимо перенести на другие узлы. Тайм‑аут переноса данных на один узел составляет 48 часов. Обновление завершится с ошибкой, если тайм‑аут истечёт. Когда кластер содержит большое количество данных, рекомендуется вручную регулировать скорость переноса данных и избегать выполнения переноса в часы пик.
  • В данный момент OpenSearch 1.3.6 нельзя обновить до OpenSearch 2.17.1.

Влияние обновления

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

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

    Узлы кластера обновляются по одному, чтобы обеспечить непрерывность сервиса. Однако перенос данных, происходящий во время обновления, потребляет I/O‑производительность, и вывод отдельных узлов из сети всё равно оказывает некоторое влияние на общую производительность кластера.

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

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

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

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

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

    OpenSearch Dashboards и Cerebro будут перестроены во время обновления, что сделает их временно недоступными. Кроме того, из‑за проблем совместимости разных версий OpenSearch Dashboards может стать недоступным во время обновления. Эти проблемы исчезнут после завершения обновления.

  • Характеристики процесса обновления

    После запуска задачу обновления нельзя остановить, пока она не завершится успешно или не завершится с ошибкой. Сбой обновления влияет только на один узел и не прерывает сервисы, если существуют реплики данных. При необходимости вы можете восстановить узел, который не удалось обновить, выполнив Replacing Specified Nodes for an OpenSearch Cluster.

Upgrade Duration

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

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

где,

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

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

где,

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

Приведённые выше формулы используют оценки при идеальных условиях. На практике рекомендуется добавить 20 %–30 % избыточности.

Проверка перед обновлением

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

Таблица 2 Контрольный список перед обновлением

Элемент проверки

Метод проверки

Описание

Нормальный статус

Статус кластера

Проверка системы

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

Кластер доступен и нет текущих задач.

Количество узлов

Проверка системы

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

  • Количество узлов каждого типа в каждом AZ ≥ 2
  • Для кластера с master nodes: Количество data nodes ≥ 2
  • Для кластера без master‑узлов: Количество data‑узлов + Количество cold‑data‑узлов ≥ 3

Объём диска

Системная проверка

После запуска задачи обновления система автоматически проверяет объём диска. Во время обновления узлы выводятся из сети по одному, после чего создаются новые узлы. Убедитесь, что общий объём диска оставшихся узлов достаточен для обработки всех данных кластера и что использование диска узлов остаётся ниже 80%

После вывода из сети отдельного узла общий объём диска оставшихся узлов достаточен для обработки всех данных кластера, и использование диска узлов остаётся ниже 80%

Реплики данных

Системная проверка

Проверьте, что оставшиеся data‑узлы и cold‑data‑узлы могут обрабатывать максимальное количество primary‑ и standby‑шардов индексов в кластере. Во время обновления не должно быть нераспределённых реплик

Количество data‑узлов + Количество cold‑data‑узлов > Максимальное количество реплик индексов + 1

Бэкап данных

Системная проверка

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

Проверьте, был ли сделан бэкап данных.

Ресурсы

Системная проверка

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

Ресурсы доступны и достаточны.

Пользовательские плагины

Системная и ручная проверка

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

ПРИМЕЧАНИЕ:

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

После завершения обновления статус пользовательского плагина сбрасывается на Загружено.

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

Пользовательские конфигурации

Системная проверка

Во время обновления система автоматически синхронизирует содержимое файла конфигурации кластера opensearch.yml.

Пользовательские конфигурации кластеров не теряются после обновления.

Нестандартные операции

Ручная проверка

Проверьте, были ли в кластере выполнены нестандартные операции. Нестандартные операции относятся к ручным действиям, которые не фиксируются. Эти операции не могут быть автоматически перенесены во время обновления, например, изменение opensearch_dashboards.yml файл конфигурации, настройки системы и обратные маршруты.

Некоторые нестандартные операции совместимы. Например, изменение плагина безопасности может быть сохранено через метаданные, а изменение системной конфигурации может быть сохранено с помощью образов. Некоторые нестандартные операции, такие как изменение opensearch_dashboards.yml файл, не может быть сохранён, и вы должны заранее создать резервную копию файла.

Проверка совместимости

Системная и ручная проверка

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

Конфигурации до и после кросс-версионного обновления совместимы.

Проверка загрузки Кластера

Система и ручная проверка

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

Вы также можете выбрать проверку загрузки Кластера при настройке информации об обновлении.

  • nodes.thread_pool.search.queue < 1000: Проверьте, что максимальное количество запросов в поисковой очереди меньше 1000.
  • nodes.thread_pool.write.queue < 200: Проверьте, что максимальное количество запросов в очереди записи меньше 200.
  • nodes.process.cpu.percent < 90: Проверьте, что максимальное использование CPU меньше 90%.
  • nodes.os.cpu.load_average/Number of vCPUs < 80%: Проверьте, что количество запущенных процессов плюс количество процессов, ожидающих CPU, меньше 80% от общего количества vCPUs.

Выполнение задачи обновления

  1. Войдите в консоль управления CSS.
  2. В навигационной панели слева выберите Clusters > OpenSearch.
  3. В списке кластеров нажмите имя целевого кластера. Отображается страница информации о кластере.
  4. Нажмите Снапшоты кластера вкладка, и выполните полный бэкап данных. Для подробностей см Создание снапшота вручную.

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

  5. Нажмите Обновление версии вкладка, и задайте параметры обновления.
    Таблица 3 Параметры обновления

    Параметр

    Описание

    Upgrade Type

    Выберите тип обновления.

    • Same-version upgrade: обновить патчи ядра до последних образов в пределах текущей версии кластера.
    • Cross-version upgrade: обновить кластер до последнего образа целевой версии.

    Target Image

    Образ целевой версии. При выборе образа отображаются имя образа и детали целевой версии.

    Поддерживаемые целевые версии отображаются в раскрывающемся списке Target Image. Если целевой образ недоступен, возможные причины следующие:

    • Текущий кластер имеет последнюю версию.
    • Текущий кластер был создан до 2023 года и имеет векторные индексы.
    • Образы новой версии недоступны в текущем регионе.
    • Текущий кластер не поддерживает выбранный тип обновления.
  6. Нажмите Отправить.
  7. В отображаемом диалоговом окне настройте параметры проверки обновления и ускорения.
    1. Выберите, включить ли Проверить полный индексный снапшот.

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

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

    2. Выберите, включить ли Проверить нагрузку кластера.

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

      Элементы проверки следующие:

      • nodes.thread_pool.search.queue < 1000: Проверьте, что максимальное количество запросов в очереди поиска меньше 1000.
      • nodes.thread_pool.write.queue < 200: Проверьте, что максимальное количество запросов в очереди записи меньше 200.
      • nodes.process.cpu.percent < 90: Проверьте, что максимальное использование CPU узлов кластера меньше 90%.
      • nodes.os.cpu.load_average/Number of vCPUs < 80%: Проверьте, что количество запущенных процессов плюс количество процессов, ожидающих CPU, меньше 80% от общего количества vCPU.

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

    3. Установить Управление параллельностью миграции данных.

      Повышение параллельности миграции данных может ускорить процесс обновления, но более быстрая миграция данных приводит к более высокому использованию I/O. Более высокая параллельность, вероятно, приведет к более высокой нагрузке на кластер, что может сказаться на производительности кластера. Рекомендуется оставить значение по умолчанию 1. Значение не должно превышать половину количества узлов данных.

  8. Нажмите OK чтобы запустить проверку перед обновлением. Система автоматически выполняет проверку на основе Pre-Upgrade Check, и если проверка прошла успешно, переходит к обновлению.

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

    Figure 1 Upgrade check errors


    Когда Task Status в списке задач ниже изменяется на Успешно, обновление завершено.

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

Проверка задачи обновления

На Обновление версии странице, найдите текущую задачу обновления в Задачи список.

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

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

  • Повторить задачу: Щелкните Retry в Operation столбце.
  • Завершить задачу: Щелкните Terminate в Operation столбце.

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

    Во время кросс-версионного обновления, если Task Status является Не удалось, вы можете завершить задачу обновления только если все узлы не были обновлены.