Установка обновлений#
Кибер Инфраструктура поддерживает последовательное обновление без перерывов в работе. Серверы обновляются по очереди без ущерба для доступности данных. Во время обновления сервер, который необходимо перезагрузить, может перейти в режим обслуживания. В этом случае рабочие нагрузки и виртуальные машины , размещенные на этом сервере, переносятся на другие серверы. После обновления сервер возобновляет работу, а перенесенные рабочие нагрузки и ВМ перемещаются обратно на этот сервер.
Примечание
Обычно для установки обновлений требуется доступ к Интернету. Для установки обновлений в среде без доступа к Интернету (в закрытом контуре) вы можете использовать локальное зеркало репозитория пакетов продукта. Подробную информацию см. в статье базы знаний Обновление кластера Кибер Инфраструктуры без доступа в Интернет (в закрытом контуре).
Важное примечание
В продукте Кибер Инфраструктура версии 6.5 изменился способ настройки пользовательских параметров для службы Prometheus. До версии 6.5 пользовательские параметры можно было указывать с помощью переменных в файле /etc/sysconfig/prometheus, которые затем использовались в файле /usr/lib/systemd/system/prometheus.service для запуска службы, например:
# /etc/sysconfig/prometheus
<...>
STORAGE_RETENTION="--storage.tsdb.retention.time=30d"
<...>
# /usr/lib/systemd/system/prometheus.service
<...>
ExecStart=/usr/bin/prometheus \
<...>
$STORAGE_RETENTION \
<...>
Начиная с версии 6.5, пользовательские параметры для службы Prometheus необходимо указывать в переменной ARGS файла /etc/default/prometheus, которая затем используется в файле /usr/lib/systemd/system/prometheus.service для запуска службы, например:
# /etc/default/prometheus
ARGS='<...> --storage.tsdb.retention.time=30d <...>'
# /usr/lib/systemd/system/prometheus.service
<...>
ExecStart=/usr/bin/prometheus $ARGS
<...>
При обновлении до версии 6.5 пользовательские переменные не переносятся автоматически. Если они заданы, перед обновлением их необходимо сохранить и задать повторно после обновления, использовав новый способ.
Можно обновить различные компоненты кластера все вместе или по отдельности. В любом случае компоненты обновляются в следующем порядке.
Сначала обновляются серверы кластера.
Серверы управления обновляются, только когда обновлены все серверы кластера. Главный сервер управления обновляется в последнюю очередь.
Панель управления (администрирования и самообслуживания) и API вычислений обновляются на серверах управления, только когда обновлены все серверы кластера и серверы управления. При обновлении этого компонента не требуется перезагрузка серверов управления.
Ограничения
Серверы необходимо обновлять только через панель администрирования или с помощью инструмента
vinfra(см. раздел Установка обновлений). Не используйтеyum update.Неназначенные серверы можно обновлять.
Обновления применяются к одному серверу за раз.
Серверы управления можно обновить только все вместе и только после обновления всех серверов кластера.
Панель управления и API вычислений можно обновить только после обновления всех серверов управления и серверов кластера.
При развертывании с одним узлом узел не входит в обслуживание во время обновления.
Динамическая миграция не поддерживается для виртуальных машин с присоединенными виртуальными графическими процессорами или PCI-устройствами.
Предварительные требования
Создан кластер хранилища данных, как показано в разделе Развертывание кластера хранилища данных.
Любые сторонние репозитории отключены.
Кластер работоспособен, и каждый узел инфраструктуры подключен к сети.
DNS кластера настроен, как описано в разделе Добавление внешних DNS-серверов, и указывает на таблицу DNS для разрешения имен внешних хостов.
Обновление компонентов кластера
Откройте экран Настройки → Обновления. Дата последней проверки отображается в правом верхнем углу. Щелкните по круговой стрелке, чтобы проверить наличие обновлений. Если для компонента кластера есть обновления, его статус обновлений меняется на Доступно. Если сервер необходимо будет перезагрузить, то рядом с доступной версией будет добавлено Требуется перезагрузка.
Нажмите Загрузить в правом верхнем углу, чтобы получить обновления. Дождитесь загрузки обновлений и изменения статуса обновления на Готово к установке.
[Необязательно] Нажмите Заметки о выпуске, чтобы прочитать сведения о выпуске.
Выберите компоненты, которые следует обновить.
Для обновления серверов кластера выберите нужные серверы кластера.
Для обновления серверов управления выберите все серверы управления и те серверы кластера, которые требуют обновления.
Для обновления панели управления и API вычислений выберите этот компонент и все серверы управления, если они требуют обновления.
Нажмите Обновить, чтобы продолжить.
Если вы выбрали серверы, требующие перезагрузки, выполните следующие действия.
Решите, будут ли эти серверы переходить в режим обслуживания. Выберите Режим обслуживания, если вы хотите перевести эти серверы в режим обслуживания.
Если вы выбрали серверы с вычислительным сервисом, выберите способ миграции виртуальных машин, работающих на этих серверах.
С параметром Игнорировать ВМ, которые нельзя перенести динамически виртуальные машины с сервера, переходящего в режим обслуживания, будут динамически перенесены на другие вычислительные серверы. ВМ, которые нельзя перенести динамически, будут пропущены. Это применимо к виртуальным машинам с присоединенными виртуальными графическими процессорами или PCI-устройствами, а также в случае недостаточных ресурсов виртуальных ЦП и ОЗУ на других вычислительных серверах. Пропущенные ВМ продолжат работать до перезагрузки или выключения сервера. В этом случае они будут остановлены, что приведет к перерыву в работе. Они будут запущены автоматически после возобновления работы сервера.
С параметром Игнорировать ВМ, которые нельзя или не удалось перенести динамически виртуальные машины с сервера, переходящего в режим обслуживания, будут динамически перенесены на другие вычислительные серверы. ВМ, которые нельзя перенести динамически, будут пропущены. Это применимо к виртуальным машинам с присоединенными виртуальными графическими процессорами или PCI-устройствами, а также в случае недостаточных ресурсов виртуальных ЦП и ОЗУ на других вычислительных серверах. ВМ, которые были пропущены или которые не удалось перенести динамически, продолжат работать до перезагрузки или выключения сервера. В этом случае они будут остановлены, что приведет к перерыву в работе. Они будут запущены автоматически после возобновления работы сервера.
С параметром Перенести все ВМ динамически все виртуальные машины с сервера, переходящего в режим обслуживания, будут динамически перенесены на другие вычислительные серверы.
Примечание
При использовании размещений возможна ситуация, в которой виртуальную машину не удастся динамически перенести с исходного вычислительного сервера (например, когда виртуальной машине назначены размещения и нет другого вычислительного сервера с подходящим набором размещений). В этой ситуации для успешного перевода вычислительного сервера в режим обслуживания необходимо использовать способ миграции Игнорировать ВМ, которые нельзя или не удалось перенести динамически.
[Необязательно] Выберите Прервать обновление, если сервер не может войти в режим обслуживания, чтобы остановить обновление в случае сбоя при входе в режим обслуживания.
Проверьте выбранные компоненты и нажмите Установить.
Во время установки обновлений можно приостановить или отменить процесс. После завершения обновления статусы компонентов изменятся на Обновлено.
При сбое обновления нажмите Сведения, чтобы просмотреть сведения о проблеме и выбрать дальнейшие действия. Можно отменить обновление, устранить проблемы и повторить попытку обновления без прерывания работы. Либо можно принудительно выполнить обновление без перевода серверов в режим обслуживания. Серверы будут перезагружены, что может привести к перерыву в работе размещенных на них рабочих процессов.
Используйте следующие команды:
Проверьте наличие обновлений:
# vinfra software-updates check-for-updates
Просмотрите результаты проверки:
# vinfra software-updates status +---------------------------+--------------------------------------------+ | Field | Value | +---------------------------+--------------------------------------------+ | available_storage_release | release: '234' | | | version: 4.7.0 | | control_plane | available_storage_release: | | | release: '234' | | | version: 4.7.0 | | | installed_storage_release: | | | release: '217' | | | version: 4.7.0 | | | status: available | | last_check_datetime | 2021-11-01T12:22:10.630818 | | nodes | - available_storage_release: | | | release: '234' | | | version: 4.7.0 | | | current_storage_release: | | | release: '217' | | | version: 4.7.0 | | | downloaded_storage_release: null | | | host: node001.vstoragedomain | | | id: 0175ce44-c86d-7818-3259-3182f5fd83f6 | | | is_in_ha: false | | | is_primary: true | | | orig_hostname: node001 | | | reboot_required: false | | | status: available | | | - available_storage_release: | | | release: '234' | | | version: 4.7.0 | | | current_storage_release: | | | release: '217' | | | version: 4.7.0 | | | downloaded_storage_release: null | | | host: node002.vstoragedomain | | | id: 923926da-a879-5f56-1b24-1462917ed335 | | | is_in_ha: false | | | is_primary: false | | | orig_hostname: node002 | | | reboot_required: false | | | status: available | | | - available_storage_release: | | | release: '234' | | | version: 4.7.0 | | | current_storage_release: | | | release: '217' | | | version: 4.7.0 | | | downloaded_storage_release: null | | | host: node003.vstoragedomain | | | id: ef24c47c-620d-8726-2677-ed94d853de2e | | | is_in_ha: false | | | is_primary: false | | | orig_hostname: node003 | | | reboot_required: false | | | status: available | | status | available | +---------------------------+--------------------------------------------+
В выводе команды выше показано, что доступно обновление.
Загрузите обновление:
# vinfra software-updates download
Проверьте пригодность серверов для установки обновления:
# vinfra software-updates eligibility-check +---------+--------------------------------------+ | Field | Value | +---------+--------------------------------------+ | task_id | 88e51115-8f0e-4c6f-b33b-949728d1fb99 | +---------+--------------------------------------+ # vinfra task show 88e51115-8f0e-4c6f-b33b-949728d1fb99 +---------+------------------------------------------------------------------+ | Field | Value | +---------+------------------------------------------------------------------+ | details | | | name | backend.presentation.software_updates.tasks.EligibilityCheckTask | | result | chunks_rebalancing_rate: | | | details: null | | | exception: null | | | message: null | | | passed: true | | | severity: info | | | cluster_has_releasing_nodes: | | | details: null | | | exception: null | | | message: null | | | passed: true | | | severity: critical | | | cluster_unhealthy: | | | details: null | | | exception: null | | | message: null | | | passed: true | | | severity: critical | | | not_enough_space_on_agents: | | | details: null | | | exception: null | | | message: null | | | passed: true | | | severity: critical | | | not_enough_space_on_mn: | | | details: null | | | exception: null | | | message: null | | | passed: true | | | severity: critical | | | postgres_not_running: | | | details: null | | | exception: null | | | message: null | | | passed: true | | | severity: critical | | | request_accept_eula: | | | details: null | | | exception: null | | | message: null | | | passed: true | | | severity: critical | | | server_with_pci_devices: | | | details: null | | | exception: null | | | message: null | | | passed: true | | | severity: info | | | shaman: | | | details: null | | | exception: null | | | message: null | | | passed: true | | | severity: critical | | | tgtd: | | | details: null | | | exception: null | | | message: null | | | passed: true | | | severity: critical | | | too_many_pending_chunks: | | | details: null | | | exception: null | | | message: null | | | passed: true | | | severity: info | | state | success | | task_id | 88e51115-8f0e-4c6f-b33b-949728d1fb99 | +---------+------------------------------------------------------------------+
Запустите процесс установки обновления:
vinfra software-updates start [--maintenance enabled={yes,no}[,key=value,…]] [--nodes <nodes>] [--skip-control-plane] [--accept-eula]--maintenance enabled={yes,no}[,key=value,…]>Укажите параметры обслуживания.
enabled: войти в режим обслуживания во время обновления (yesилиno).разделенные запятыми пары
key=valueс ключами (необязательно):on-fail: как следует поступить с обновлением при сбое обслуживания.stop(по умолчанию): остановить обновление, если сервер не может перейти в режим обслуживания. Уже обновленные серверы останутся обновленными.skip: пропустить и не обновлять серверы, которые не могут перейти в режим обслуживания.force: принудительно обновить и перезагрузить (при необходимости) все серверы, даже если они не могут перейти в режим обслуживания. Использование этого параметра может привести к простоям.
compute-mode: как поступить с обновлением, если нельзя перенести работающую ВМ.strict: остановить обновление, если нельзя перенести работающую ВМ.ignore: игнорировать ВМ, которую нельзя перенести в работающем состоянии.ignore_ext: игнорировать ВМ, которую нельзя или не удалось перенести в работающем состоянии.
--nodes <nodes>Разделенный запятыми список идентификаторов или имен серверов.
--skip-control-planeОбновить кластер без обновления панели управления.
--accept-eulaПринять лицензионное соглашение.
Например, чтобы начать обновление серверов
node001,node002,node003и перевести их в режим обслуживания, выполните:# vinfra software-updates start --nodes node001,node002,node003 \ --maintenance enabled=yes,on-fail=skip,compute-mode=ignore
Серверы, которые нельзя перевести в режим обслуживания, будут пропущены. Виртуальные машины, которые нельзя динамически перенести на время обслуживания серверов, будут пропущены.
Для приостановки процесса установки обновлений используйте команду vinfra software-updates pause. Чтобы возобновить процесс, выполните команду vinfra software-updates resume.
Можно отменить установку обновлений и вывести серверы из режима обслуживания, использовав команду ниже.
vinfra software-updates cancel [--maintenance-mode {exit,exit-keep-resources,hold}]
--maintenance-mode {exit,exit-keep-resources,hold}Режим обслуживания:
exit: вывести сервер из режима обслуживания и вернуть на него эвакуированные ресурсы.exit-keep-resources(по умолчанию): вывести сервер из режима обслуживания, но оставить эвакуированные ресурсы на другом сервере.hold: не выходить из режима обслуживания.
Например, чтобы отменить установку обновлений и вывести серверы из режима обслуживания, выполните:
# vinfra software-updates cancel --maintenance-mode exit
Ресурсы, перенесенные на другие серверы на время обслуживания, будут перенесены обратно.
См. также