Прерываемые виртуальные машины
Прерываемые виртуальные машины — это виртуальные машины, которые могут быть принудительно остановлены в любой момент. Это может произойти в двух случаях:
- Если с момента запуска виртуальной машины прошло 24 часа.
- Если возникнет нехватка ресурсов для запуска обычной виртуальной машины в той же зоне доступности. Вероятность такого события низкая, но может меняться изо дня в день.
Прерываемые виртуальные машины доступны по более низкой цене в сравнении с обычными, однако не обеспечивают отказоустойчивости.
Вы можете создать прерываемую ВМ или сменить тип существующей.
Тарификация виртуальной машины после этого изменится. Подробнее о правилах тарификации.
Ограничения
Помимо того, что прерываемые виртуальные машины могут быть принудительно остановлены, они имеют следующие ограничения:
- Если в указанной зоне доступности недостаточно ресурсов для запуска прерываемой виртуальной машины, она не будет запущена.
- Для прерываемых машин не действует соглашение об уровне обслуживания (SLA).
Как работать с прерываемыми ВМ
После остановки виртуальная машина не удаляется, все ее данные сохраняются. Когда виртуальная машина снова понадобится, повторно запустите ее.
С помощью функции Yandex Cloud Functions вы можете настроить автоматический запуск остановленной прерываемой ВМ.
Примечание
В Instance Groups остановленные виртуальные машины запускаются сами благодаря автоматическому восстановлению.
Instance Groups останавливает прерываемые ВМ в группе не ровно через 24 часа, а через случайный момент времени — от 22 до 24 часов. Это позволяет исключить ситуацию, когда все ВМ в группе перезапустятся одновременно и перестанут обслуживать нагрузку запущенных приложений.
Особенности работы прерываемых ВМ
Остановка ВМ
Чтобы остановить ВМ, Compute Cloud отправляет в нее сигнал о штатном выключении ACPI shutdown
В ОС Linux сигнал ACPI shutdown обычно обрабатывается подсистемой инициализации и управления службами systemdsystemd отправляет запущенным процессам сигнал SIGTERMsystemd принудительно останавливает его сигналом SIGKILL
Совет
По умолчанию таймаут ожидания завершения процессов в systemd составляет 90 секунд. Поэтому, чтобы гарантировать завершение процессов в пределах отведенных Compute Cloud 30 секунд, рекомендуется в конфигурационном файле /etc/systemd/system.confDefaultTimeoutStopSec=30s.
Срок жизни ВМ
Срок жизни прерываемых ВМ регулируется динамически в зависимости от уровня загруженности вычислительных ресурсов Yandex Cloud.
Максимальный срок жизни прерываемых ВМ — 24 часа.
Минимальный срок жизни прерываемых ВМ не ограничен. В том числе прерываемые ВМ могут не создаваться вовсе (ошибка not enough resources), если в зоне доступности закончились доступные конфигурации. В этом случае вы можете:
- Попробовать запустить прерываемую ВМ в другой зоне доступности.
- Изменить конфигурацию прерываемой ВМ. Например, если для ваших задач недоступна ВМ с 8 GPU, попробуйте создать 4 ВМ с 2 GPU в каждой — их наличие для прерываемых ВМ более вероятно.
- Использовать непрерываемую ВМ.
Устойчивость приложений к сбоям
Если вы используете прерываемые ВМ для пакетной обработки данных (batch processing
Совет
Чтобы корректно восстановить работу приложения после остановки ВМ, сохраняйте промежуточные результаты расчетов в Yandex Object Storage или файловое хранилище.
Сценарии использования прерываемых ВМ
Прерываемые ВМ подходят для решения задач со stateless-нагрузкой, устойчивых к отказам и гибких к конфигурации ВМ. Например:
- Обработка больших объемов данных.
- Сборка артефактов, ПО или контейнеров.
- Выполнение CI/CD-процессов.
- Высокопроизводительные вычисления (HPC
), устойчивые к отказам. - Рендеринг графики.
- Обучение моделей машинного обучения, требующее менее 24 часов.