На Портале администратора есть возможность управлять состоянием вычислительных узлов (гипервизоров), на которых размещаются виртуальные машины и сервисы платформы.
Для гипервизоров на Портале доступны следующие действия:
Управление ВМ на гипервизоре осуществляется через сервис nova-compute — компонент Nova, который управляет созданием и жизненным циклом ВМ на каждом вычислительном узле. При необходимости вы можете отключить возможность размещать на гипервизоре новые ВМ с помощью действия Disable Service. Данное действие изменяет статус сервиса nova-compute в Nova на disabled — Nova перестаёт учитывать гипервизор при выборе узла для новых ВМ. Сам процесс nova-compute на узле при этом не останавливается и продолжает управлять уже размещёнными на гипервизоре ВМ без каких-либо изменений.
Примечание
На странице Состояние системы агент nova-compute для этого узла может отображаться со статусом down. Это ожидаемое поведение: данный статус означает, что сервис принудительно помечен недоступным для отчётности перед Nova, а не то, что на узле остановлен сам процесс nova-compute.
Для отключения сервиса nova-compute на гипервизоре выполните следующие действия:
На Портале администратора перейдите в раздел Вычислительные ресурсы > Гипервизоры.
В строке нужного узла откройте меню действий, нажав кнопку ⋮, и выберите действие Disable Service.
Отключение возможности размещения ВМ на гипервизоре¶
В открывшемся окне укажите причину отключения в поле Причина. По умолчанию в качестве причины выставляется disabledfromadmin-ui. После этого нажмите кнопку Отключить.
Убедитесь, что в столбце status для узла отображается значение disabled, а в столбце state — down.
Чтобы вернуть узел в рабочее состояние, выберите действие Enable Service в меню действий ⋮ этого узла. Подтверждение не требуется — действие выполняется сразу.
Включение возможности размещения ВМ на гипервизоре¶
Примечание
Действия Enable Service и Disable Service недоступны, если гипервизор находится в режиме обслуживания (MaintenanceMode).
На Портале администратора доступна возможность перенести ВМ с вычислительного узла на другие узлы без его деактивации или остановки. Для этого используется действие Host Evacuate Live, которое запускает эвакуацию ВМ с узла.
При выполнении эвакуации запущенные (ACTIVE) ВМ переносятся с помощью живой миграции, выключенные (SHUTOFF) — с помощью холодной миграции. ВМ в состоянии ERROR пропускаются и остаются на исходном узле. Целевой узел для каждой ВМ автоматически выбирает Nova в пределах зоны доступности — указать его вручную нельзя.
ВМ, у которых стоит запрет на автоматическую эвакуацию через KeyVRM (помечены тегом noHA в списке ВМ), эвакуируются наравне с остальными.
Действие не меняет статус сервиса nova-compute и не блокирует размещение новых ВМ на узле — во время эвакуации Nova может назначить гипервизору новые машины. Чтобы этого избежать, перед эвакуацией отключите сервис nova-compute (см. Управление размещением новых ВМ на гипервизоре) либо используйте режим обслуживания (см. Режим обслуживания гипервизоров), который выполняет оба действия автоматически.
Действие доступно только для гипервизоров, на которых есть запущенные ВМ.
Для эвакуации ВМ с гипервизора выполните следующие действия:
На Портале администратора перейдите в раздел Вычислительные ресурсы > Гипервизоры.
В строке нужного узла откройте меню действий, нажав кнопку ⋮, и выберите действие Host Evacuate Live.
Для обслуживания вычислительного узла предусмотрен механизм временной полной деактивации этого узла внутри кластера.
Перевод узла в режим обслуживания (maintenance mode) автоматически объединяет два действия, описанных выше: отключает сервис nova-compute, из-за чего узел исключается из пула доступных для размещения ВМ (см. Управление размещением новых ВМ на гипервизоре), и эвакуирует с него все ВМ (см. Эвакуация ВМ с гипервизора). В отличие от их ручной комбинации, режим обслуживания отслеживает процесс как единый сценарий. Узел переводится в статус MaintenanceMode только после того, как будет полностью освобождён.
При этом деактивированный узел по-прежнему продолжит быть участником кластера.
Примечание
Если на узле есть ВМ в статусе, отличном от ACTIVE или SHUTOFF (например, ERROR), перевод в режим обслуживания не запустится: в столбце admin_state для узла отобразится значение Unstable, а сама попытка завершится ошибкой.
На Портале администратора можно отследить процесс перехода гипервизора в режим обслуживания по столбцу admin_state в разделе Вычислительные ресурсы > Гипервизоры. При выборе действия Enable maintenance mode гипервизор переходит в режим обслуживания: статус и значение admin_state меняются на EnteringMaintenanceMode, а после завершения перевода — на MaintenanceMode.
Перед переводом узла в режим обслуживания рекомендуется настроить параметр maintenance_mode_inspection_deadline в конфигурационном файле adminui-backend-osloconf.conf. Параметр задаёт максимальное время ожидания завершения миграции одной группы ВМ (в секундах), а также применяется при ожидании возврата ВМ в группу серверов. Значение по умолчанию — 300 секунд. В средах с большим количеством ВМ, высокой нагрузкой на них или при сочетании обоих факторов может потребоваться увеличение параметра в десятки и более раз относительно значения по умолчанию. Конкретное значение подбирается исходя из наблюдаемой нагрузки в среде.
Для изменения значения данного параметра выполните следующие действия:
Откройте веб-интерфейс GitLab.
Перейдите в репозиторий региона project_k / deployments / <имя региона>.
Перейдите в директорию config / adminui. Если такой директории нет, создайте её.
Откройте или создайте файл adminui-backend-osloconf.conf.
Измените значение параметра maintenance_mode_inspection_deadline или добавьте его, если параметр в конфигурационном файле отсутствует. Параметр необходимо добавлять в группу опций [DEFAULT].
[DEFAULT]maintenance_mode_inspection_deadline=300
Создайте новый пайплайн: Build > Pipelines > New Pipeline.
Оставьте ветку по умолчанию, соответствующую установленному релизу.
В открывшемся окне укажите параметр KOLLA_ARGS со значением -tadminui.
Запустите пайплайн: New pipeline.
Дождитесь завершения выполнения операции.
Для перевода узла в режим обслуживания выполните следующие действия:
На Портале администратора перейдите в раздел Вычислительные ресурсы > Гипервизоры.
В строке этого узла откройте меню действий, нажав кнопку ⋮, и выберите действие Enable maintenance mode.
Перевод вычислительного узла в режим обслуживания¶
Дождитесь, когда статус гипервизора сменится с EnteringMaintenanceMode на MaintenanceMode. Если по какой-то причине гипервизор не перешел в maintenancemode, это будет отображено в статусе так: disabled(ServicewastransitionedtoError.). В столбце admin_state будет описана причина — например, Error(LivemigrationofserverNfailed). В таком случае можно либо повторно попробовать перевести гипервизор в режим обслуживания, нажав Enable maintenance mode, либо вернуть его в статус enabled, выбрав Enable Service (см. Управление размещением новых ВМ на гипервизоре).
При переходе узла в режим обслуживания все ВМ начнут мигрировать с него на другие узлы без прерывания их работы. Также на время режима обслуживания на этом узле невозможно будет запустить новые ВМ.
Если гипервизор переведен в режим обслуживания, миграция ВМ с него происходит в соответствии с настройками max_concurrent_live_migrations: одновременно эвакуируется то количество машин, которое было указано в параметре. В случае отсутствия данной настройки в конфигурационных файлах машины будут эвакуироваться по одной за раз.
После перехода в режим обслуживания вычислительный узел можно отключить от питания и производить работы по ремонту или модернизации.
Для отключения или перезагрузки гипервизора выполните следующие действия:
Убедитесь, что гипервизор корректно переведён в режим обслуживания: в столбце admin_state у такого гипервизора будет указано MaintenanceMode, а в столбце status — disabled(ServicewastransitionedtoMaintenanceMode.).
Убедитесь, что все ВМ мигрировали с гипервизора: в столбце running_vms для него должно отображаться значение 0.
Количество ВМ на гипервизоре в режиме обслуживания¶
Дополнительно проверить отсутствие ВМ на гипервизоре можно через страницу с диагностической информацией о нём. Для этого:
В разделе Вычислительные ресурсы > Гипервизоры нажмите на ссылку в столбце id необходимого гипервизора.
Переход к диагностической информации о гипервизоре¶
На открывшейся странице с диагностической информацией о гипервизоре перейдите на вкладку VMs. На данной вкладке отображается информация о виртуальных машинах, размещённых на гипервизоре. Для гипервизора, успешно переведённого в режим обслуживания, список должен быть пустым.
Для возвращения гипервизора в рабочий режим после перезагрузки отключите режим технического обслуживания гипервизора, выбрав в столбце Actions действие Disable maintenance mode.
Отключение режима технического обслуживания гипервизора¶
Измененный статус гипервизора отобразится в столбце admin_state.
Корректное завершение и восстановление ВМ при перезагрузке¶
При перезагрузке гипервизора виртуальные машины корректно завершают работу до остановки libvirt, а после старта гипервизора автоматически восстанавливаются. Механизм реализован через systemd-сервис kolla-libvirt-guests-podman.service, развёртываемый через kolla-ansible.
Параметры завершения работы ВМ задаются в конфигурационном файле /etc/sysconfig/libvirt-guests:
ON_SHUTDOWN=shutdownSHUTDOWN_TIMEOUT=240
где:
ON_SHUTDOWN=shutdown задаёт корректное завершение работы ВМ (ACPI shutdown) вместо принудительной остановки;
SHUTDOWN_TIMEOUT=240 устанавливает максимальное суммарное время ожидания завершения работы всех ВМ в секундах перед остановкой libvirt. При необходимости значение можно увеличить — сервис поддерживает таймаут до 610 секунд.
Примечание
Описанный механизм не заменяет штатный сценарий планового обслуживания, включающий в себя перевод гипервизора в режим обслуживания и миграцию ВМ на другие узлы. Он обеспечивает безопасную перезагрузку в случаях, когда ВМ остаются на гипервизоре.
Фенсинг узлов (гипервизоров) проводит HA. Фенсинг — механизм изоляции неисправного узла от других системных компонентов. Такой узел исключается из пула планирования ресурсов, а для расположенных на нём ВМ проводится эвакуация. Затем изолированный узел либо выключается, либо перезагружается в принудительном порядке.
После проведения фенсинга узлы могут оказаться в статусе fenced, что будет отражено на Портале администратора. Такие узлы опознаются по префиксу FENCED: в disabled_reason.
Чтобы вывести узлы из этого состояния, выполните следующие действия:
В левом меню Портала перейдите в раздел Вычислительные ресурсы > Гипервизоры.
Найдите в таблице узел, который выделен жёлтым цветом и обозначен меткой fenced.
В строке этого узла откройте меню действий, нажав кнопку ⋮, и выберите действие Disable Fence Mode.
Агрегат (host aggregate) — это группа вычислительных узлов, объединенных логически на основе каких-либо характеристик, например, аппаратных средств или показателей производительности. Один вычислительный узел можно назначить как одному, так и нескольким агрегатам.
На Портале администратора список агрегатов доступен в разделе Вычислительные ресурсы > Агрегаты.
Для создания агрегата выполните следующие действия:
Перейдите в раздел Вычислительные ресурсы > Агрегаты и нажмите кнопку Создать агрегат.
Укажите свойства создаваемого агрегата:
Имя агрегата.
Зону доступности, если необходимо. Если вы хотите создать новую зону доступности для агрегата, включите флаг в поле Создать новую зону доступности? и укажите имя зоны в поле Имя новой зоны. Если вы хотите указать существующую зону доступности, выберите её из списка в поле Зона доступности.
Узлы агрегата, если необходимо. Для этого выберите один или несколько узлов из списка в поле Узлы. Если зона доступности узлов, которые вы хотите добавить в новый агрегат, отличается от зоны доступности создаваемого агрегата, то узлы в новый агрегат включены не будут.
Созданный агрегат будет добавлен в список агрегатов. Через выпадающий список в столбце actions для каждого агрегата вы можете:
Изменить имя и зону доступности для агрегата через действие Изменить агрегат. Подробнее об изменении зон доступности агрегата см. в разделе Управление зонами доступности агрегатов.
Управлять узлами агрегата: удалять или добавлять новые из списка через действие Управление узлами. Если для агрегата добавляется узел, уже привязанный к другому агрегату, убедитесь, что редактируемому агрегату не назначена зона доступности или что этот агрегат находится в той же зоне доступности, что и агрегат, к которому уже привязан узел.
Изменить метаданные агрегата через действие Изменение метадаты. Подробнее о метаданных см. в разделе Метаданные хост-агрегатов.
Удалить агрегат через действие Удалить агрегат. Удалять можно только агрегаты, которым не назначен ни один узел. Посмотреть список узлов для агрегата можно в столбце hosts.
Зона доступности (Availability Zone, AZ) — это изолированная логическая группа, состоящая из одного или нескольких вычислительных узлов в пределах одного региона. За счёт изоляции ресурсов зона доступности обеспечивает повышение отказоустойчивости инфраструктуры.
На Портале администратора зоны доступности создаются и управляются через агрегаты. При создании агрегата вы можете как выбрать для него уже существующую зону доступности, так и создать новую. Подробнее о назначении зоны доступности агрегату при его создании см. в разделе Создание и управление агрегатами.
Чтобы добавить или изменить зону доступности для агрегата, выполните следующие действия:
Перейдите в раздел Вычислительные ресурсы > Агрегаты.
Выберите действие Изменить агрегат в выпадающем списке в столбце actions для нужного агрегата.
В открывшемся окне:
Если вы хотите создать новую зону доступности, включите флаг в поле Создать новую зону доступности? и укажите имя зоны в поле Имя новой зоны. Вы не сможете создать новую зону доступности для агрегата, вычислительные узлы которого уже находятся в какой-либо другой зоне доступности.
Если вы хотите назначить агрегату уже существующую зону доступности, выберите её из списка в поле Зона доступности. Вы не сможете назначить зону доступности агрегату, вычислительные узлы которого уже находятся в этой зоне. Для того чтобы назначить зону доступности такому агрегату, необходимо удалить его узлы, назначить ему зону доступности, а затем добавить узлы снова.
Вычислительные узлы агрегата отображаются в столбце hosts.