Учитывая то обстоятельство, что oVirt постоянно развивается и каждое очередное обновление помимо расширения функционала имеет ряд исправлений обнаруженных ранее ошибок, имеет смысл задуматься об установке этих обновлений, особенно если они устраняют проблемы, с которыми вам пришлось столкнуться. В первой части данной серии заметок мы рассматривали процедуру развёртывания oVirt Hosted Engine на примере версии 4.0.1. На протяжении того времени, как были написаны последующие заметки серии, вышло пару обновлений oVirt внутри 4 версии, и на данный момент актуальная версия - 4.0.3. В этой заметке мы рассмотрим практический пример обновления oVirt Hosted Engine до текущей актуальной версии.
Основной отправной точкой для выяснения актуального порядка обновления Hosted Engine является документ oVirt Hosted Engine Howto - Upgrade Hosted Engine.
Посмотреть текущую версию oVirt Engine можно на веб-портале администрирования oVirt (в правом верхнем углу пункт About). В моём случае на момент обновления используется версия oVirt Engine Version: 4.0.1.1-1.el7.centos
Шаг 1. Включаем Hosted Engine Global Maintenance
Включаем на любом из хостов обслуживающих Hosted Engine глобальный режим обслуживания, чтобы отключить наблюдение HA-агентов за виртуальной машиной Hosted Engine:
# hosted-engine --set-maintenance --mode=global
Убеждаемся в том, что в консоли статус всех хостов Hosted Engine изменился на Global Maintenance Enabled:
Шаг 2. Обновляем виртуальную машину Hosted Engine
Переходим на консоль виртуальной машины Hosted Engine и обновляем в системе все доступные к обновлению пакеты, в частности нас интересует обновлённая версия пакета ovirt-engine-setup, который нам в последствии понадобится.
# yum update
Забегая вперёд, скажу, что первая моя попытка обновления (выполнение команды engine-setup) завершилась ошибкой, говорящей о том, что Hosted Engine не переведён в режим глобального обслуживания и поэтому обновление невозможно. Это было довольно странно, ведь я точно знал, что режим обслуживания я включил. В конечном итоге, я попросту перезагрузил виртуальную машину с Hosted Engine (Global Maintenance при этом у меня оставался включённым на хостах и мне пришлось включать машину после выключения гостевой ОС вручную). После того, как ВМ снова запустилась и стал доступен портал администрирования oVirt, я снова проверил то, что Global Maintenance включён:
# hosted-engine --vm-status ... !! Cluster is in GLOBAL MAINTENANCE mode !! --== Host 1 status ==-- ... maintenance=False state=GlobalMaintenance stopped=False ... --== Host 2 status ==-- ... maintenance=False state=GlobalMaintenance stopped=False ... !! Cluster is in GLOBAL MAINTENANCE mode !!
В итоге после перезагрузки ВМ процедура обновления прошла успешно.
Итак, после окончания обновления пакетов запускаем в виртуальной машине Hosted Engine процедуру обновления:
# engine-setup
После этого будет запущена процедура обновления, которая в штатной ситуации потребует лишь несколько раз нажать Enter, давая утвердительные ответы на вопросы задаваемые программой обновления…
В процессе обновления будет создана копия БД Engine (на случай отката, если процедура обновления не будет выполнена успешно), загружены и установлены все необходимые пакеты…
После завершения обновления перезапустим веб-консоль портала администрирования oVirt и убедимся в том, что отображается новая версия.
Шаг 3. Обновляем первый хост Hosted Engine
Перед обновлением первого хоста переводим его в веб-консоли oVirt в Maintenance Mode. В процессе перевода в режим обслуживания с хоста должны будут эвакуироваться виртуальные машины. Если этого по какой-то причине не произошло (с таким приходилось сталкиваться), можно выполнить перемещение виртуальных машин на другой хост путём штатной живой миграции.
Также если на хосте, который мы собрались обновлять, в данный момент активна роль SPM, то в процессе перевода хоста в режим обслуживания эта роль также автоматически должна будет перейти на другой доступный хост
Затем на хосте, переведённом в режим обслуживания, устанавливаем все доступные к обновлению пакеты:
# yum update -y
Перезапускаем службы oVirt на хосте:
# service vdsmd restart # service ovirt-ha-broker restart # service ovirt-ha-agent restart
Или же для большей надёжности можно полностью перезагрузить хост.
Шаг 4. Отключаем Hosted Engine Global Maintenance
Далее отключаем глобальный режим обслуживания, чтобы снова задействовать наблюдение HA-агентов за виртуальной машиной Hosted Engine:
# hosted-engine --set-maintenance --mode=none
Затем активируем уже обновлённых хост в веб-консоли oVirt, при этом обращаем внимание на то, что в консоли теперь отображается обновлённая версия службы VDSM.
Через несколько минут после отключения глобального режима обслуживания и активации обновлённого хоста, виртуальная машина Hosted Engine может начать процедуру миграции на этот обновлённый хост (причиной тому будут очки HA Score):
Когда миграция виртуальной машины Hosted Engine на обновлённый хост закончиться, можно приступать к обновлению остальных хостов.
Шаг 5. Обновляем второй и последующие хосты Hosted Engine
Обновление остальных хостов Hosted Engine выполняется по аналогичной схеме:
- Включаем глобальный режим обслуживания Hosted Engine
- Включаем режим обслуживания хоста (эвакуация виртуальных машин)
- Обновляем хост с последующим перезапуском служб или перезагрузкой
- Выводим хост из режима обслуживания и отключаем глобальный режим обслуживания Hosted Engine
***
Рассмотренный в этой заметке пример обновления практически применим только к конфигурации Hosted Engine и только для указанных здесь версий. При обновлении до следующих версий oVirt описанная логика процедуры обновления может остаться такой же, а может и измениться, поэтому на этапе планирования развёртывания каждого последующего обновления крайне рекомендуется внимательно изучать Release Notes к новой версии.
Дополнительные источники информации:
Обратная ссылка: Обновление oVirt Hosted Engine 4.0.6 до версии 4.1.0 | Блог IT-KB /
Желательная последовательность действий для engine:
# engine-upgrade-check
# yum update ovirt-engine-setup
# engine-setup
# yum update -y
Попадали в ситуацию с RHEV 3.* когда выполнение команды yum update -y до обновления engine приводило к неработоспособности web интерфейса.