Политики обслуживания виртуальных машин
Политики обслуживания (Compute Maintenance Policies) позволяют управлять реакцией ВМ на плановое обслуживание и получать информацию о нем с помощью метаданных.
В ходе обслуживания виртуальная машина переносится на другой хост. Политика определяет способ переноса:
- С помощью перезапуска на другом хосте.
- С помощью динамической миграции на другой хост без перезапуска.
Если политика настроена, информация о предстоящем обслуживании может записываться в метаданные виртуальной машины. Метаданные об обслуживании хранятся в сервисе метаданных и доступны только изнутри виртуальной машины. Приложения на ВМ могут читать их и подготовиться к обслуживанию — например, перед перезапуском завершить текущие запросы или сохранить состояние.
Параметры политики обслуживания
Важно
Перед настройкой политики ознакомьтесь с особенностями для разных типов ВМ. Доступные типы политик и поведение при обслуживании зависят от типа ВМ.
Политика обслуживания ВМ задается двумя параметрами:
maintenance_policy— тип политики обслуживания.maintenance_grace_period— время ожидания перед началом обслуживания.
Тип политики (maintenance_policy) определяет, каким способом виртуальная машина будет перенесена на другой хост. Если с помощью перезапуска, то параметр должен иметь значение RESTART. Если динамической миграцией, то MIGRATE.
Можно явно указать, что политика не задана, с помощью значения MAINTENANCE_POLICY_UNSPECIFIED. В этом случае информация об обслуживании в метаданных не появляется, ожидания перед обслуживанием нет.
Время ожидания (maintenance_grace_period) определяет, на сколько будут отложены перезапуск или миграция виртуальной машины.
Максимальное время ожидания:
- До одной минуты для ВМ без GPU.
- До одного часа для ВМ с GPU.
Информация об обслуживании появляется в метаданных ВМ только при maintenance_grace_period > 0. При нулевом значении информация не появляется и обслуживание выполняется без ожидания.
Политику обслуживания можно настроить при создании и изменении ВМ. С помощью CLI, Terraform или API настраиваются тип политики и время ожидания, а в консоли управления можно настроить только тип политики.
Работа с метаданными
Информация о предстоящем обслуживании записывается в метаданные виртуальной машины по ключу /instance/maintenance-event. Доступ по ключу можно получить только изнутри ВМ с помощью сервиса метаданных. Подробнее о формате хранения метаданных.
Записываются следующие значения:
TERMINATE_ON_HOST_MAINTENANCEперед перезапуском виртуальной машины.MIGRATE_ON_HOST_MAINTENANCEперед динамической миграцией.
Вы можете реализовать чтение метаданных изнутри ВМ и реакцию на обслуживание в своем приложении.
Например, настроена политика RESTART. В метаданные запишется значение TERMINATE_ON_HOST_MAINTENANCE. Начнется отсчет maintenance_grace_period. Приложение прочитает метаданные и за время ожидания сохранит свое состояние. По истечении времени ожидания ВМ перезапустится.
Чтобы проверить реакцию на обслуживание в своем приложении, симулируйте событие обслуживания.
Особенности для разных типов ВМ
Особенности для прерываемых ВМ
Прерываемые ВМ при обслуживании останавливаются и не мигрируют. Информация об обслуживании в метаданных не появляется.
Особенности для ВМ с GPU
Для ВМ с GPU динамическая миграция не поддерживается.
Если для непрерываемой ВМ с GPU настроена политика RESTART, уведомления по электронной почте о планируемых работах отключаются, а задания на техническое обслуживание не создаются. При планируемых работах ВМ автоматически перезапускается после ожидания maintenance_grace_period.
Ограничения
События в метаданных предупреждают только о плановом обслуживании. При неисправности ВМ может быть перезапущена на другом хосте без предупреждения. Уведомление о сбое придет по электронной почте.