Поделиться через


Настройка гибернации в Microsoft Dev Box

Гибернация в Microsoft Dev Box помогает эффективно управлять облачными средами разработки, уменьшая затраты. Включив гибернацию, можно сохранить состояние открытых приложений и окон, сохраняя затраты на виртуальную машину без нарушения рабочих процессов. В этой статье объясняется, как настроить гибернацию на уровнях образа и определения dev box, автоматизировать планирование гибернации и учесть вопросы совместимости.

С введением функции Dev Box Hibernation вы можете активировать эту возможность для новых полей разработки, отправить их в режим гибернации и затем возобновить работу. Эта функция обеспечивает удобный способ управления полями разработки при сохранении рабочей среды.

Выполните следующие три действия, чтобы включить гибернацию:

  1. Включите гибернацию на образе поля разработки.
  2. Включите гибернацию в определении поля разработки.
  3. Автоматизируйте гибернацию пулов виртуальных машин для разработки с помощью расписаний автоостановки или остановки при разрыве RDP-соединения.

Рекомендации по изображениям с поддержкой гибернации

Прежде чем включить гибернацию в поле разработки, ознакомьтесь со следующими рекомендациями по изображениям с поддержкой гибернации.

  • В настоящее время две конфигурации SKU поддерживают гибернацию: с 8 и 16 виртуальными CPU. 32 типы SKU vCPU не поддерживают гибернацию.

  • Вы можете включить гибернацию только в новых полях разработки, созданных с помощью определений поля разработки с поддержкой гибернации. Вы не можете включить гибернацию в существующих полях разработки.

  • Вы можете перевести машину разработки в спящий режим, используя портал разработчика Майкрософт, Azure CLI, PowerShell, пакеты SDK или REST API. Гибернация из среды разработки в Windows не поддерживается.

  • Если вы работаете с образом Azure Marketplace, рекомендуется использовать Visual Studio для образов полей разработки.

  • Оптимизированный образ Windows 11 Enterprise CloudPC содержит настроенные параметры питания, которые нельзя использовать с режимом гибернации.

  • После включения гибернации вы не сможете отключить эту функцию в этом поле разработки. Однако вы можете отключить поддержку гибернации в определении поля разработки, чтобы поля разработки, созданные в будущем, не имели гибернации.

  • Чтобы включить гибернацию, необходимо включить вложенную виртуализацию в ОС Windows. Если функция "Платформа виртуальной машины" не включена в образе DevBox, DevBox автоматически включает вложенную виртуализацию, если вы решили включить гибернацию.

  • Гибернация не поддерживает функции целостности кода, защищенного гипервизором (HVCI)/ целостность памяти. Поле разработки автоматически отключает эту функцию.

  • Расписания автоматической остановки будут переводить Dev Boxes в режим гибернации, если они были созданы после включения функции гибернации в соответствующем определении Dev Box. Dev Box, созданные до включения режима гибернации в его определении, будут по-прежнему выключаться.

Параметры, несовместимые с гибернацией

Следующие параметры, как известно, несовместимы с гибернацией и не поддерживаются для сценариев гибернации.

  • Целостность памяти и целостность кода гипервизора

    Чтобы отключить целостность памяти и целостность кода гипервизора, выполните следующее:

    1. В меню "Пуск Windows" найдите и откройте windows Security.
    2. Перейдите в раздел "Безопасность устройств".
    3. В разделе "Изоляция ядра" выберите сведения об изоляции ядра
    4. В разделе "Целостность памяти" установите переключатель "Выкл.

    После изменения этого параметра необходимо перезапустить компьютер. После изменения этого параметра перезапустите компьютер.

  • Функции, основанные на гостевом виртуальном защищенном режиме, без включенной вложенной виртуализации

    Чтобы включить вложенную виртуализацию, выполните приведенные действия.

    1. В меню "Пуск" найдите включенные или отключенные функции Windows.
    2. В диалоговом окне установите флажок "Платформа виртуальной машины ".
    3. Нажмите кнопку "ОК ", чтобы сохранить изменения параметров.

Включение гибернации на образе поля разработки

Если вы планируете использовать пользовательский образ из галереи вычислительных ресурсов Azure, необходимо активировать функцию гибернации при создании нового образа. Вы не можете включить гибернацию для существующих образов.

Примечание.

Образы Visual Studio и Microsoft 365, которые Microsoft Dev Box предоставляет в Azure Marketplace, уже настроены для поддержки режима гибернации. Вам не нужно включить гибернацию на этих изображениях, они готовы к использованию.

Чтобы включить возможности гибернации, при создании образа задайте флаг IsHibernateSupported на true.

az sig image-definition create 
--resource-group <resourceGroupName> --gallery-name <galleryName> --gallery-image-definition <imageName> --location <location> 
--publisher <publisherName> --offer <offerName> --sku <skuName> --os-type windows --os-state Generalized 
--features "IsHibernateSupported=true SecurityType=TrustedLaunch" --hyper-v-generation V2 

Если вы используете sysprep и обобщенную виртуальную машину для создания пользовательского образа, запечатлейте образ с помощью Azure CLI:

az sig image-version create 
--resource-group <resourceGroupName> --gallery-name <galleryName> --gallery-image-definition <imageName> 
--gallery-image-version <versionNumber> --virtual-machine <VMResourceId>

Дополнительные сведения о создании пользовательского образа см. в разделе "Настройка поля разработки" с помощью построителя образов виртуальных машин Azure.

Дополнительные сведения о создании пользовательского образа см. в разделе "Настройка поля разработки" с помощью построителя образов виртуальных машин Azure.

Включение гибернации в определении поля разработки

В Microsoft Dev Box можно включить спящий режим для нового определения dev box, если это определение использует настраиваемый пользовательский образ или образ Azure Marketplace с поддержкой спящего режима. Вы также можете обновить существующее определение виртуальной машины разработчика, использующее пользовательский образ или образ из Azure Marketplace с поддержкой гибернации.

Все новые контейнеры разработки, созданные в пулах разработки, которые используют определение контейнера разработки с включенной поддержкой гибернации, могут как переводиться в режим гибернации, так и завершать работу. Если в пуле есть коробки для разработки, созданные до включения гибернации, эти коробки продолжают поддерживать только завершение работы.

Microsoft Dev Box валидирует ваш образ для обеспечения поддержки гибернации. Определение окружения для разработки может не пройти проверку, если гибернацию не удается включить с помощью вашего образа.

Вы можете включить гибернацию в определении поля разработки с помощью портала Azure или Azure CLI.

Включение гибернации на портале Azure

  1. Войдите на портал Azure.

  2. В поле поиска введите центр разработки. В списке результатов выберите центры разработки.

  3. Откройте центр разработки, содержащий определение поля разработки, которое требуется обновить, а затем выберите определения поля разработки.

    Снимок экрана: страница обзора центра разработки и пункт меню для определений поля разработки.

  4. Выберите определение поля разработки, которое требуется обновить, а затем нажмите кнопку редактирования (карандаш).

    Снимок экрана: список существующих определений поля разработки и кнопка редактирования (карандаша).

  5. На странице определения поля разработки выберите флажок "Включить гибернацию ".

    Снимок экрана: страница редактирования определения поля разработки с выбранным параметром

  6. Выберите Сохранить.

Включение гибернации с помощью Azure CLI

Чтобы включить гибернацию для определения поля разработки из Azure CLI, установите hibernateSupport флаг Enabled при создании образа:

az devcenter admin devbox-definition update 
--dev-box-definition-name <devBoxDefinitionName> -–dev-center-name <devCenterName> --resource-group <resourceGroupName> –-hibernateSupport Enabled

Включить автоматическую гибернацию для разработческих сред, которые никогда не использовались

Эта функция помогает свести к минимуму затраты, автоматически переводя в спящий режим разработческие машины, которые запущены, но к которым не подключается пользователь. Если разработческая коробка запускается, и никто не подключается через RDP, она переходит в режим гибернации после заданного льготного периода. Этот параметр гарантирует, что неактивные поля разработки не используют ненужные ресурсы, поэтому вы оптимизируете затраты и использование ресурсов.

Чтобы настроить гибернацию для полей разработки, к которым никогда не был доступ, необходимо включить параметр в пуле средств разработки.

  1. Войдите на портал Azure.

  2. В поле поиска введите projects. В списке результатов выберите Проекты.

  3. Откройте проект с пулом поля разработки, который вы хотите обновить, а затем выберите пулы полей разработки.

  4. Выберите пул полей разработки, который требуется обновить, а затем в меню операций "Поле разработки" (...), выберите "Изменить".

  5. На странице "Изменение пула полей разработки " выберите поля разработки Hibernate, к которым никогда не был доступ.

    Снимок экрана: страница параметров пула Dev Box с параметром включения гибернации для полей разработки, которые не были подключены.

  6. При выборе полей разработки Hibernate, которые никогда не были доступны, можно задать льготный период. Это позволяет пользователям подключаться к среде разработки до начала её режима ожидания. Задайте период отсрочки в минутах до нужного времени.

    Снимок экрана: страница параметров пула Dev Box с параметрами конфигурации для гибернации полей разработки, которые не подключены, включая параметр льготного периода.

  7. Выберите Сохранить.

Устранение неполадок

Если вы включаете гибернацию в определении Dev Box и если в отчетах об определении указано, что гибернация не включена:

  • Мы рекомендуем использовать образы Visual Studio для Dev Box Marketplace напрямую или в качестве базовых образов для создания пользовательского образа.
  • Образ оптимизации Windows + OS содержит оптимизированные параметры питания и не совместим с гибернацией.
  • Если вы используете пользовательский образ галереи виртуальных машин Azure, включите гибернацию в этом образе до включения гибернации в определении Dev Box.
  • Если гибернация не может быть включена в определении даже после включения его на образ коллекции, настраиваемый образ, скорее всего, имеет конфигурацию Windows, которая предотвращает гибернацию.
  • Если у вас возникают проблемы при подготовке виртуальных машин для разработки, убедитесь, что образ поддерживает спящий режим.
  • Если образ поддерживает гибернацию, но во время подготовки по-прежнему возникают сбои, см. статью "Устранение неполадок с гибернацией на виртуальных машинах Windows".

Дополнительные сведения см. в разделе "Параметры", несовместимые с гибернацией.

Отключение гибернации в определении поля разработки

Если возникли проблемы с подготовкой новых виртуальных машин после включения гибернации в пуле, отключите гибернацию в определении поля разработки.

Если у вас возникли проблемы с подготовкой новых виртуальных машин после включения гибернации в пуле, вы можете отключить гибернацию в определении поля разработки. Вы также можете отключить гибернацию, если вы хотите вернуть настройку так, чтобы работала только функция завершения работы на рабочих станциях разработки.

Вы можете отключить гибернацию в определении поля разработки с помощью портала Azure или ИНТЕРФЕЙСА командной строки.

Отключение гибернации на портале Azure

  1. Войдите на портал Azure.

  2. В поле поиска введите центр разработки. В списке результатов выберите центры разработки.

  3. Откройте центр разработки, содержащий определение поля разработки, которое требуется обновить, а затем выберите определения поля разработки.

  4. Выберите определение поля разработки, которое требуется обновить, а затем нажмите кнопку редактирования (карандаш).

  5. На странице определения поля разработки снимите флажок "Включить гибернацию ".

  6. Выберите Сохранить.

Отключение гибернации с помощью Azure CLI

Чтобы отключить гибернацию для определения поля разработки из Azure CLI, установите hibernateSupport флаг Disabled при создании образа:

az devcenter admin devbox-definition update 
--dev-box-definition-name <devBoxDefinitionName> -–dev-center-name <devCenterName> --resource-group <resourceGroupName> –-hibernateSupport Disabled