Microsoft Dev Box 中的休眠有助于高效管理云开发环境,同时降低成本。 通过启用休眠,可以保留打开的应用程序和窗口的状态,从而节省虚拟机(VM)成本,而不会中断工作流。 本文介绍如何在开发框映像和定义级别配置休眠、自动执行休眠计划以及解决兼容性注意事项。
随着 Dev Box 休眠功能的引入,你可以在新的开发盒子上启用此功能,并对其进行休眠和恢复。 此功能提供了一种在维护工作环境的同时管理开发框的便捷方法。
按照以下三个步骤启用休眠:
- 在开发框映像上启用休眠
- 在开发框定义上启用休眠
- 使用自动停止计划实现开发箱池的自动休眠,或在 RDP 断开连接时停止。
已启用休眠的映像的注意事项
在开发箱中启用休眠之前,请查看以下有关已启用休眠的映像的注意事项。
目前,两个 SKU 支持休眠:8 和 16 个 vCPU SKU。 目前,32 个 vCPU SKU 不支持休眠。
只有在使用支持休眠的开发框定义创建的新开发框中,才能启用休眠。 无法在现有开发框中启用休眠。
可以使用Microsoft开发人员门户、Azure CLI、PowerShell、SDK 或 REST API 来休眠开发框。 不支持从 Windows 的开发箱中休眠。
如果使用 Azure 市场映像,建议使用 Visual Studio 进行开发箱映像。
Windows 11 企业版 CloudPC + OS 优化映像包含优化的电源设置,它们不能与休眠一起使用。
启用休眠后,无法禁用该开发框中的功能。 但是,可以在开发框 定义 上禁用休眠支持,以便将来创建的开发框没有休眠。
若要启用休眠,需要在 Windows OS 中启用嵌套虚拟化。 如果未在 DevBox 映像中启用“虚拟机平台”功能,则如果选择启用休眠,DevBox 会自动为你启用嵌套虚拟化。
休眠不支持受虚拟机监控程序保护的代码完整性(HVCI)/内存完整性功能。 开发环境会自动禁用此功能。
自动停止计划将使在关联的 Dev Box 定义上启用休眠后创建的 Dev Box 休眠。 在启用 Dev Box 定义中的休眠功能之前创建的 Dev Box 将继续被关闭。
与休眠不兼容的设置
已知以下设置与休眠不兼容,在休眠方案中不受支持:
内存完整性/虚拟机监控程序代码完整性
要禁用内存完整性/虚拟机监控程序代码完整性:
- 在 Windows“开始”菜单中,找到并打开 Windows 安全性。
- 转到 设备安全性。
- 在 “核心隔离”下,选择 “核心隔离”详细信息
- 在 “内存完整性”下,将开关设置为 “关闭”。
更改此设置后,需要重新启动计算机。 更改此设置后,重启计算机。
不启用嵌套虚拟化的基于来宾虚拟安全模式的功能
若要启用嵌套虚拟化,请:
- 在“开始”菜单中,搜索 打开或关闭 Windows 功能。
- 在对话框中,选中 “虚拟机平台 ”复选框。
- 选择 “确定 ”保存设置更改。
在开发框映像上启用休眠
如果计划从 Azure 计算库使用自定义映像,则需要在创建新映像时启用休眠功能。 无法为现有映像启用休眠。
注释
Microsoft Dev Box 在 Azure 市场中提供的 Visual Studio 和 Microsoft 365 映像已配置为支持休眠。 无需在这些映像上启用休眠,即可使用这些映像。
若要启用休眠功能,请在创建映像时将 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 和通用 VM 创建自定义映像,请使用 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 VM 映像生成器配置开发框。
详细了解 如何使用 Azure VM 映像生成器在“配置开发”框中创建自定义映像。
在开发框定义上启用休眠
在 Microsoft Dev Box 中,当定义使用已启用休眠的自定义或 Azure 市场映像时,可以为新的开发箱定义启用休眠。 还可以更新使用已启用休眠的自定义或 Azure 市场映像的现有开发箱定义。
在开发箱池中创建的所有新开发箱(使用已启用休眠的开发箱定义)都可以休眠和关闭。 如果池具有在启用休眠之前创建的开发箱,则这些开发箱将继续支持关闭。
Microsoft Dev Box 验证您的映像是否支持休眠功能。 如果无法使用映像成功启用休眠,开发箱定义可能会验证失败。
可以使用 Azure 门户或 Azure CLI 在开发框定义上启用休眠。
在 Azure 门户中启用休眠
登录到 Azure 门户。
在搜索框中,输入“开发人员中心”。 在结果列表中,选择“开发人员中心”。
打开包含你要更新的开发箱定义的开发人员中心,然后选择“开发箱定义”。
选择要更新的开发框定义,然后选择“编辑”(铅笔)按钮。
在 “编辑开发框定义 ”页上,选中“ 启用休眠 ”复选框。
选择“保存”。
使用 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
故障排除
如果你在 Dev Box 定义上启用了休眠,并且该定义报告休眠未启用:
- 建议直接使用 Visual Studio for Dev Box 市场映像,或将其用作基本映像以生成自定义映像。
- Windows + OS 优化映像包含优化的电源设置,并且与休眠不兼容。
- 如果您使用自定义 Azure Compute Gallery 映像,请先在 Azure Compute Gallery 映像上启用休眠,然后再对 Dev Box 定义启用休眠。
- 如果在图库图像上启用休眠功能后仍无法在定义上启用休眠功能,那么你的自定义图像可能具有阻止休眠的 Windows 配置。
- 如果在预配开发箱时遇到问题,请确保映像支持休眠。
- 如果映像支持休眠,但在预配期间仍失败,请参阅 Windows VM 上的休眠故障排除。
有关详细信息,请参阅 “设置与休眠不兼容”。
在开发框定义上禁用休眠
如果在池上启用休眠后预配新 VM 时遇到问题,请在开发框定义上禁用休眠。
如果在池上启用休眠后预配新 VM 时遇到问题,可以在开发框定义上禁用休眠。 如果要将设置还原为仅关闭开发设备,您还可以禁用休眠功能。
可以使用 Azure 门户或 CLI 在开发框定义上禁用休眠。
在 Azure 门户中禁用休眠
登录到 Azure 门户。
在搜索框中,输入“开发人员中心”。 在结果列表中,选择“开发人员中心”。
打开包含你要更新的开发箱定义的开发人员中心,然后选择“开发箱定义”。
选择要更新的开发框定义,然后选择“编辑”(铅笔)按钮。
在 “编辑开发框定义 ”页上,清除 “启用休眠 ”复选框。
选择“保存”。
使用 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