Ошибки при обновлении с помощью скрипта zvirt-update
2. Решение
Если не удаётся выявить и исправить причину неудачного обновления с помощью zvirt-update, можно попытаться выполнить ручное обновление по процедуре, описанной ниже.
2.1. Алгоритм обновления
|
Перед обновлением важно учесть следующее:
|
- Обновление zVirt в режиме Hosted Engine
-
-
Обновите все свободные хосты с ролью HostedEngine. Под "свободными" понимаются хосты, на которых в текущий момент не выполняется ВМ HostedEngine.
-
Переведите в режим обслуживания хост с ролью HostedEngine, на котором в текущий момент времени работает ВМ HostedEngine. Дождитесь окончания миграции ВМ HostedEngine. Выполните обновление этого хоста.
- Обновление zVirt в режиме Standalone
- Обновление zVirt в режиме Standalone All-in-One
2.2. Обновление хостов
Алгоритм обновления хоста является идентичным для всех типов хостов:
-
Хост, на котором может выполняться ВМ HostedEngine (хост с ролью Hosted Engine).
-
Хост, на котором не может выполняться ВМ HostedEngine (стандартный хост).
-
Переведите хост в режим обслуживания. Дождитесь миграции виртуальных машин с этого хоста. Если на хосте есть привязанные к нему виртуальные машины, выключите их. Если обновляемый хост является единственным хостом с ролью Hosted Engine и на нем выполняется ВМ HostedEngine, то необходимо её принудительно выключить:
-
Подключитесь к этому хосту по SSH и выполните следующую команду:
hosted-engine --vm-shutdown -
Дождитесь выключения ВМ HostedEngine. Её статус можно проверить с помощью следующей команды:
hosted-engine --vm-status
-
-
Удалите репозиторий zvirt-repos-stable и очистите директорию /etc/yum.repos.d/:
dnf remove -y zvirt-repos-stable rm -rf /etc/yum.repos.d/* dnf clean all -
С помощью команды
wgetскачайте пакет zvirt-repos-stable с новыми репозиториями и установите его:wget --user=<имя_пользователя> --password=<пароль> https://repo-zvirt.orionsoft.ru/repository/zvirt-4/4.2/packages/zvirt-repos-stable-4.2-X.XXXX.zvirt.el8.noarch.rpm dnf install -y zvirt-repos-stable-4.2-X.XXXX.zvirt.el8.noarch.rpm<имя_пользователя> и <пароль> берутся из лицензионного сертификата, выданного при покупке продукта
-
Включите репозитории:
dnf config-manager --enable "*" -
Настройте доступ к репозиториям:
zvirt-credentials.py -u <имя_пользователя> -p <пароль>Если утилита не найдена, переустановите её:
wget --user=<имя_пользователя> --password=<пароль> https://repo-zvirt.orionsoft.ru/repository/zvirt-4/4.2/packages/zvirt-credentials-0.1.1-1.33204.zvirt.el8.noarch.rpm (1) dnf install -y zvirt-credentials-0.1.1-1.33204.zvirt.el8.noarch.rpm1 <имя_пользователя> и <пароль> берутся из лицензионного сертификата, выданного при покупке продукта. -
Удалите все зафиксированные версии rpm-пакетов из списка versionlock.list и убедитесь, что список пуст:
dnf versionlock clear dnf versionlock list rm -rf /etc/dnf/modules.d/* -
Выполните следующие команды для удаления старого релиза:
rm -rf /etc/dnf/protected.d/*-release-host-node.conf dnf remove -y zvirt-release-host-node dnf install -y zvirt-release-host-node -
Обновите или установите (если он отсутствует) метапакет zvirt-hosted-engine:
dnf update/install -y zvirt-hosted-engine --allowerasing -
Выполните команду обновления пакетов.:
dnf -y update --allowerasing -
После завершения установки перезапустите сервис vdsmd:
systemctl restart vdsmd.service -
Выведите хост из режима обслуживания.
-
Если перед обновлением хоста была выключена ВМ HostedEngine:
-
перезапустите сервисы HA:
systemctl restart ovirt-ha-broker.service systemctl restart ovirt-ha-agent.service -
запустите ВМ HostedEngine:
hosted-engine --vm-start -
Убедитесь в корректности статуса ВМ HostedEngine (для запуска требуется некоторое время)
hosted-engine --vm-status
-
На этом обновление хоста завершено.
2.3. Обновление Менеджера управления
2.3.1. Архитектура HostedEngine
-
Подключитесь по SSH к хосту, на котором выполняется ВМ HostedEngine и включите режим глобального обслуживания:
hosted-engine --set-maintenance --mode=global -
Убедитесь, что глобального обслуживания активирован:
hosted-engine --vm-statusВывод должен содержать надпись !! Cluster is in GLOBAL MAINTENANCE mode !!
-
Подключитесь по SSH к ВМ HostedEngine.
-
Удалите репозиторий zvirt-repos-stable и очистите директорию /etc/yum.repos.d/:
dnf remove -y zvirt-repos-stable rm -rf /etc/yum.repos.d/* dnf clean all -
С помощью команды
wgetскачайте пакет zvirt-repos-stable с новыми репозиториями и установите его:wget --user=<имя_пользователя> --password=<пароль> https://repo-zvirt.orionsoft.ru/repository/zvirt-4/4.2/packages/zvirt-repos-stable-4.2-X.XXXX.zvirt.el8.noarch.rpm dnf install -y zvirt-repos-stable-4.2-X.XXXX.zvirt.el8.noarch.rpm<имя_пользователя> и <пароль> берутся из лицензионного сертификата, выданного при покупке продукта
-
Включите репозитории:
dnf config-manager --enable "*" -
Настройте доступ к репозиториям:
zvirt-credentials.py -u <имя_пользователя> -p <пароль>Если утилита не найдена, переустановите её:
wget --user=<имя_пользователя> --password=<пароль> https://repo-zvirt.orionsoft.ru/repository/zvirt-4/4.2/packages/zvirt-credentials-0.1.1-1.33204.zvirt.el8.noarch.rpm (1) dnf install -y zvirt-credentials-0.1.1-1.33204.zvirt.el8.noarch.rpm1 <имя_пользователя> и <пароль> берутся из лицензионного сертификата, выданного при покупке продукта. -
Создайте dump ovirt-engine:
su - postgres -c "pg_dumpall > ~/pgdump_file.sql" -
Остановите сервисы postgresql и ovirt-engine:
systemctl stop postgresql.service ovirt-engine.service -
Выполните перенос конфигурации postgresql:
mv /var/lib/pgsql/data /var/lib/pgsql/data_old -
Удалите все зафиксированные версии пакетов из списка versionlock.list и убедитесь, что список пуст:
dnf versionlock clear dnf versionlock list rm -rf /etc/dnf/modules.d/* -
Обновите или установите (если он не установлен) пакет zvirt-appliance:
dnf update/install -y zvirt-appliance --allowerasing -
Инициализируйте postgresql и восстановите базы данных
postgresql-setup --initdb cp /var/lib/pgsql/data_old/pg_hba.conf /var/lib/pgsql/data/ cp /var/lib/pgsql/data_old/pg_ident.conf /var/lib/pgsql/data/ cp /var/lib/pgsql/data_old/postgresql.conf /var/lib/pgsql/data/ systemctl start postgresql.service su - postgres -c 'psql -f ~/pgdump_file.sql postgres' -
Запустите настройку Менеджера управления:
engine-setup --offline -
Выполните команду обновления пакетов:
dnf -y update --allowerasing -
После завершения настройки перезапустите сервис ovirt-engine:
systemctl restart ovirt-engine.service -
После обновления Менеджера управления на хосте в ВМ HostedEngine выключите режим глобального обслуживания:
hosted-engine --set-maintenance --mode=none -
Убедитесь что глобальное обслуживание выключено
hosted-engine --vm-status
Обновления менеджера управления в ВМ HostedEngine завершено.
2.3.2. Архитектура Standalone (All-in-one)
-
Если Менеджер управления развернут в варианте All-in-one, переведите хост с Менеджером управления в режим обслуживания.
Дождитесь миграции виртуальных машин с этого хоста. Если на хосте есть привязанные к нему виртуальные машины, выключите их.
-
Подключитесь по SSH к хосту с Менеджером управления.
-
Удалите репозиторий zvirt-repos-stable и очистите директорию /etc/yum.repos.d/:
dnf remove -y zvirt-repos-stable rm -rf /etc/yum.repos.d/* dnf clean all -
С помощью команды
wgetскачайте пакет zvirt-repos-stable с новыми репозиториями и установите его:wget --user=<имя_пользователя> --password=<пароль> https://repo-zvirt.orionsoft.ru/repository/zvirt-4/4.2/packages/zvirt-repos-stable-4.2-X.XXXX.zvirt.el8.noarch.rpm dnf install -y zvirt-repos-stable-4.2-X.XXXX.zvirt.el8.noarch.rpm<имя_пользователя> и <пароль> берутся из лицензионного сертификата, выданного при покупке продукта
-
Включите репозитории:
dnf config-manager --enable "*" -
Настройте доступ к репозиториям:
zvirt-credentials.py -u <имя_пользователя> -p <пароль>Если утилита не найдена, переустановите её:
wget --user=<имя_пользователя> --password=<пароль> https://repo-zvirt.orionsoft.ru/repository/zvirt-4/4.2/packages/zvirt-credentials-0.1.1-1.33204.zvirt.el8.noarch.rpm (1) dnf install -y zvirt-credentials-0.1.1-1.33204.zvirt.el8.noarch.rpm1 <имя_пользователя> и <пароль> берутся из лицензионного сертификата, выданного при покупке продукта. -
Создайте dump ovirt-engine:
su - postgres -c "pg_dumpall > ~/pgdump_file.sql" -
Остановите сервисы postgresql и ovirt-engine:
systemctl stop postgresql.service ovirt-engine.service -
Выполните перенос конфигурации postgresql:
mv /var/lib/pgsql/data /var/lib/pgsql/data_old -
Удалите все зафиксированные версии пакетов из списка versionlock.list и убедитесь, что список пуст:
dnf versionlock clear dnf versionlock list rm -rf /etc/dnf/modules.d/* -
Обновите релиз:
rm -rf /etc/dnf/protected.d/*-release-host-node.conf dnf remove -y zvirt-release-host-node dnf install -y zvirt-release-host-node -
Обновите или установите (если не установлен) пакет zvirt-standalone:
dnf update/install -y zvirt-standalone --allowerasing -
Инициализируйте postgresql и восстановите БД
postgresql-setup --initdb cp /var/lib/pgsql/data_old/pg_hba.conf /var/lib/pgsql/data/ cp /var/lib/pgsql/data_old/pg_ident.conf /var/lib/pgsql/data/ cp /var/lib/pgsql/data_old/postgresql.conf /var/lib/pgsql/data/ systemctl start postgresql.service su - postgres -c 'psql -f ~/pgdump_file.sql postgres' -
Запустите настройку Менеджера управления:
engine-setup --offline -
Выполните команду обновления пакетов:
dnf -y update --allowerasing -
После завершения настройки перезапустите сервис ovirt-engine:
systemctl restart ovirt-engine.service -
Если Менеджер управления развернут в варианте All-in-One:
-
Перезапустите сервис vdsmd:
systemctl restart vdsmd.service -
После того как портал администрирования станет доступен, выведите хост из режима обслуживания.
-