对 Azure VM 进行电源管理
有关所需权限的信息,请参阅所需的 Azure 权限。
Azure 按需预配
在采用 Azure 按需预配的情况下,仅在完成预配后,当 Citrix Virtual Apps and Desktops 启动打开电源操作时才创建 VM。
使用 MCS 在 Azure Resource Manager 中创建计算机目录时,Azure 按需预配功能:
- 降低存储成本
- 加快目录创建过程
创建 MCS 目录时,Azure 门户将显示资源组中的网络安全组、网络接口、基础映像和身份磁盘。
在 Citrix Virtual Apps and Desktops 为 VM 启动打开电源操作之前,Azure 门户不会显示 VM。有两种类型的计算机,它们有以下区别:
- 对于池计算机,仅当存在 VM 时才会有操作系统磁盘和写回缓存。在控制台中关闭池计算机时,该 VM 在 Azure 门户中不可见。如果您经常关闭计算机(例如,在工作时间以外),则可以显著节省存储成本。
- 对于专用计算机,在首次打开 VM 时创建操作系统磁盘。Azure 门户中的 VM 将保留在存储中,直到计算机标识被删除。在控制台中关闭专用计算机时,该 VM 仍在 Azure 门户中可见。
重启电源时保留预配的虚拟机
选择在重启电源时是否保留预配的虚拟机。使用 PowerShell 参数 New-ProvScheme CustomProperties
。此参数支持额外的属性 PersistVm
,用于确定重启电源后预配的虚拟机是否仍然存在。将 PersistVm
属性设置为 true 以在关闭电源时保留虚拟机,或者将属性设置为 false 以确保在关闭电源时不保留虚拟机。
注意:
PersistVm
属性仅适用于启用了属性CleanOnBoot
和UseWriteBackCache
的预配方案。如果没有为非永久性虚拟机指定PersistVm
属性,则在关闭电源时将从 Azure 环境中删除这些虚拟机。
在以下示例中,New-ProvScheme CustomProperties
参数将 PersistVm
属性设置为 true:
<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Property xsi:type="StringProperty" Name="UseManagedDisks" Value="true" />
<Property xsi:type="StringProperty" Name="StorageType" Value="Standard_LRS" />
<Property xsi:type="StringProperty" Name="PersistWBC" Value="false" />
<Property xsi:type="StringProperty" Name="PersistOsDisk" Value="true" />
<Property xsi:type="StringProperty" Name="PersistVm" Value="true" />
<Property xsi:type="StringProperty" Name="ResourceGroups" Value="demo-resourcegroup" />
<Property xsi:type="StringProperty" Name="LicenseType" Value="Windows_Client" />
</CustomProperties>
<!--NeedCopy-->
在以下示例中,New-ProvScheme CustomProperties
参数通过将 PersistVM
设置为 true 来保留回写式缓存:
New-ProvScheme
-AzureAdJoinType "None"
-CleanOnBoot
-CustomProperties "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`"><Property xsi:type=`"StringProperty`" Name=`"UseManagedDisks`" Value=`"true`" /><Property xsi:type=`"StringProperty`" Name=`"StorageType`" Value=`"Standard_LRS`" /><Property xsi:type=`"StringProperty`" Name=`"PersistWBC`" Value=`"false`" /><Property xsi:type=`"StringProperty`" Name=`"PersistOsDisk`" Value=`"true`" /><Property xsi:type=`"StringProperty`" Name=`"PersistVm`" Value=`"true`" /><Property xsi:type=`"StringProperty`" Name=`"ResourceGroups`" Value=`"demo-resourcegroup`" /><Property xsi:type=`"StringProperty`" Name=`"LicenseType`" Value=`"Windows_Client`" /></CustomProperties>"
-HostingUnitName "demo"
-IdentityPoolName "NonPersistent-MCSIO-PersistVM"
-MasterImageVM "XDHyp:\HostingUnits\demo\image.folder\scale-test.resourcegroup\demo-snapshot.snapshot"
-NetworkMapping @ {"0"="XDHyp:\HostingUnits\demo\virtualprivatecloud.folder\East US.region\virtualprivatecloud.folder\ji-test.resourcegroup\jitest-vnet.virtualprivatecloud\default.network"}
-ProvisioningSchemeName "NonPersistent-MCSIO-PersistVM"
-ServiceOffering "XDHyp:\HostingUnits\demo\serviceoffering.folder\Standard_B2ms.serviceoffering" -UseWriteBackCache
-WriteBackCacheDiskSize 127
-WriteBackCacheMemorySize 256
<!--NeedCopy-->
提示:
PersistVm
属性决定是否保留预配的虚拟机。PersistOsdisk
属性决定是否保留操作系统磁盘。要保留预配的虚拟机,请先保留操作系统磁盘。请勿在未先删除虚拟机的情况下删除操作系统磁盘。可以在不使用指定PersistVm
参数的情况下使用PersistOsdisk
属性。
自定义存储类型更改失败时的打开电源行为
打开电源时,由于 Azure 出现故障,托管磁盘的存储类型可能无法更改为所需类型。在这些情况下,VM 将保持关闭状态并向您发送故障消息。但是,您可以选择在存储无法还原到其配置的类型时打开 VM 的电源,也可以选择保持 VM 处于关闭状态。
-
如果您将自定义属性
FailSafeStorageType
配置为 true(默认设置)或者未在New-ProvScheme
或Set-ProvScheme
命令中指定该属性:- 打开电源时,VM 将开机,但存储类型不正确。
- 关闭时,VM 保持关闭状态,但存储类型不正确。
-
如果您在
New-ProvScheme
或Set-ProvScheme
命令中将自定义属性FailSafeStorageType
配置为 false:- 打开电源后,VM 保持关闭状态,但存储类型不正确。
- 关闭时,VM 保持关闭状态,但存储类型不正确。
要创建计算机目录,请执行以下操作:
- 打开 PowerShell 窗口。
- 运行
asnp citrix*
以加载 Citrix 特定的 PowerShell 模块。 - 创建标识池(如果尚未创建)。
-
在
New-ProvScheme
中添加自定义属性。例如:New-ProvScheme -HostingUnitName "Azure-Resources-1" -IdentityPoolName "name" -InitialBatchSizeHint 1 -MasterImageVM "XDHyp:\HostingUnits\Azure-Resources-1\image.folder\abc.resourcegroup\def.snapshot" -NetworkMapping @{"0"="XDHyp:\HostingUnits\Azure-Resources-1\ght.folder\abc.resourcegroup\abc-vnet.virtualprivatecloud\default.network"} -ProvisioningSchemeName "name" -ServiceOffering "XDHyp:\HostingUnits\Azure-Resources-1\serviceoffering.folder\Standard_DS2_v2.serviceoffering" -CustomProperties "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`"> <Property xsi:type=`"StringProperty`" Name=`"StorageType`" Value=`"Premium_LRS`" /> <Property xsi:type=`"StringProperty`" Name=`"StorageTypeAtShutdown`" Value=`"Standard_LRS`" /> <Property xsi:type=`"StringProperty`" Name=`"FailSafeStorageType`" Value=`"true`" /> </CustomProperties>" <!--NeedCopy-->
- 然后,创建计算机目录。有关如何使用 Remote PowerShell SDK 创建目录的信息,请参阅 https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/creating-a-catalog/。
更新现有计算机目录以包含自定义属性 FailSafeStorageType
。此更新不影响现有 VM。
- 更新
Set-ProvScheme
命令中的自定义属性。例如:
Set-ProvScheme -ProvisioningSchemeName <String> -CustomProperties "
<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`">
<Property xsi:type=`"StringProperty`" Name=`"StorageType`" Value=`"Premium_LRS`" />
<Property xsi:type=`"StringProperty`" Name=`"IdentityDiskStorageType`" Value=`"Premium_LRS`" />
<Property xsi:type=`"StringProperty`" Name=`"FailSafeStorageType`" Value=`"false`" />
</CustomProperties>"
<!--NeedCopy-->
要将在 Set-ProvScheme 中所做的更改应用到现有 VM,请运行带 -StartsNow
和 -DurationInMinutes -1
参数的 Set-ProvVMUpdateTimeWindow
命令。
-
运行带
-StartsNow
和-DurationInMinutes -1
参数的Set-ProvVMUpdateTimeWindow
命令。例如:Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName my-catalog -VMName <List-Of-Vm-Names> -StartsNow -DurationInMinutes -1 <!--NeedCopy-->
-
重新启动 VM。
创建具有休眠功能的 VM
在 Azure 环境中,您可以创建支持休眠的 MCS 计算机目录。使用此功能,您可以挂起 VM,然后在用户再次登录时重新连接到 VM 的先前状态。
休眠功能适用于以下对象:
- 单会话操作系统
- 永久性和非永久性 VM
- 静态和随机(池)VDI 桌面
无论 VDI 桌面是静态还是随机,都可以在 VM 休眠后恢复到同一个会话。
在本部分内容中,请参阅以下内容:
使用休眠的必备条件
要使用休眠,请务必完成以下任务:
- 在 Windows 和 Linux 的主映像上安装 Azure VM Agent。Windows 映像的页面文件可以位于临时磁盘上。在计算机目录上启用了休眠时,MCS 会将页面文件位置设置为基础磁盘中的 C: 驱动器。
- MCS 自动为生成的资源设置休眠属性。您无需配置主资源的属性即可支持休眠。
- 在订阅中使用支持休眠的 VM 大小。
-
创建具有休眠功能的计算机配置文件(VM 或模板规范),以便 VM 继承休眠功能。要创建 VM,请参阅 Getting started with hibernation(开始休眠)。
注意:
根据 Microsoft 的说法,您可以从操作系统磁盘部署启用了休眠的 VM。目前,某些区域支持此功能,并将很快在所有区域推出。有关详细信息,请参阅“从操作系统磁盘部署启用了休眠的 VM”。
要创建模板规范,请执行以下操作:
- 打开 Azure 门户。选择要在模板中使用其配置的 VM。在左侧窗格中选择导出模板。
- 清除 Include parameters(包括参数)复选框。复制上下文并将其另存为 JSON 文件,例如
VMExportTemplate.json
。 - 确保参数
hibernationEnabled
在模板上设置为true
。如果该参数未设置未true
,请检查您使用的 VM 配置。可以在模板文件中指定支持的 VM 大小。但是,也可以在创建目录时指定计算机大小。 - 将网络接口资源的模板添加到 JSON 文件
VMExportTemplate.json
中。因此,您有一个包含两个资源的 ARM 模板文件。 - 选择 Azure Portal (Azure 门户)> Template specs(模板规范)> Import template(导入模板)> Choose local template file(选择本地模板文件),将此模板文件作为 ARM 模板规范导入。
- 创建 ARM 模板规范后,可以将其用作计算机配置文件。
注意:
同步到 Citrix Studio 可能需要几分钟时间。
有关详细信息,请参阅 Microsoft 文档 Prerequisites to use hibernation(使用休眠的必备条件)。
限制
- 仅支持单会话操作系统计算机目录(永久性和非永久性)。
- 临时操作系统磁盘和 MCS I/O 功能不支持 Azure 休眠。
- 在 Windows 自动更新过程中,休眠可能会失败。
有关详细信息,请参阅 Microsoft 文档。
创建和管理具有休眠功能的计算机目录
要创建具有休眠功能的 VM,您可以使用以下方法创建和管理具有休眠功能的计算机目录:
使用 Web Studio 创建目录
- 选择创建计算机目录。目录创建向导将打开。
- 在计算机类型页面上,为此目录选择单会话操作系统计算机类型。
-
在计算机管理页面上,请按如下所示选择设置:
- 选择进行电源管理的计算机(例如,虚拟机或刀片式 PC)。
- 选择 Citrix Machine Creation Services (MCS)。
- 在桌面体验页面上,根据需要选择随机或静态桌面体验。
- 在映像页面上,选择一个主映像。选中使用计算机配置文件复选框,然后选择支持休眠功能的计算机配置文件。单击工具提示以了解计算机配置文件是否支持休眠。
- 在存储和许可证类型页面上,选择用于此目录的存储和许可证。
-
在虚拟机页面上,选择 VM 数量、VM 大小和可用性区域。
注意:
显示支持休眠功能的计算机大小仅供您进行选择。
- 在 NIC 页面上,添加您希望 VM 使用的 NIC。
- 在磁盘设置页面上,选择回写式缓存磁盘的存储类型和大小。
- 在资源组页面上,选择要预配 VM 的资源组。
- 在计算机标识页面上,选择创建新的 Active Directory 帐户。然后,请指定帐户命名方案。
- 在域凭据页面上,单击输入凭据。输入您的域凭据,以便在目标 Active Directory 域中执行帐户创建操作。
- 在摘要页面上,输入计算机目录的名称,然后单击完成。
MCS 计算机目录创建完成后,在目录列表中找到该目录,然后单击模板属性选项卡。Hibernation(休眠)参数的值必须设置为 Supported(受支持)。
如果要编辑计算机目录,请注意以下限制:
- 如果当前计算机目录支持休眠,您将无法:
- 将 VM 大小更改为不支持休眠功能的 VM 大小。
- 将计算机配置文件更改为不支持休眠功能的配置文件。
- 如果当前计算机目录不支持休眠,您将无法:
- 当前,使用 Web Studio 将计算机配置文件更改为具有休眠功能的配置文件。但是,您可以使用 PowerShell 命令来执行此操作。请参阅在现有的 MCS 预配的 VM 上启用休眠。
创建计算机目录来管理现有的具有休眠功能的 VM
如果您已经拥有具有休眠功能的 VM 并希望将其挂起并恢复,请创建计算机目录以导入这些 VM 进行电源管理。
注意:
可以创建包含具有休眠功能和不支持休眠功能的 VM 的计算机目录。但是,如果您想要与休眠相关的功能,则必须创建仅包含具有休眠功能的 VM 的计算机目录。
要使用 Web Studio 为具有休眠功能的现有 VM 创建目录,请按照屏幕上的说明完成步骤并注意以下关键设置:
- 在 Machine Management(计算机管理)页面上,选择 Machines that are power managed(进行电源管理的计算机),然后选择 Other service or technology(其他服务或技术)作为部署计算机的方法。
- 在虚拟机页面上,仅添加或导入具有休眠功能的 VM。
使用 PowerShell 命令创建计算机目录
满足使用休眠的所有要求后,您可以使用 New-ProvScheme
命令创建具有休眠功能的计算机目录。有关如何使用 Remote PowerShell SDK 创建目录的信息,请参阅 New-ProvScheme。
创建目录时,可以使用以下 PowerShell 命令检查 VM 大小和计算机配置文件是否支持休眠:
-
对于 VM 大小,请运行以下命令并检查属性
supportsHibernation
是否设置为 True。例如,Get-ChildItem -AdminAddress "MyDDC.MyDomain.local" -LiteralPath @("XDHyp:\HostingUnits\ <VirtualNetwork> \serviceoffering.folder") | select Name, AdditionalData | ConvertTo-Json <!--NeedCopy-->
-
对于计算机配置文件,请运行以下命令并检查属性
supportsHibernation
是否设置为 True。例如,Get-ChildItem -AdminAddress "MyDDC.MyDomain.local" -LiteralPath @("XDHyp:\HostingUnits\ <VirtualNetwork> \machineprofile.folder\abc.resourcegroup")|select Name, AdditionalData|ConvertTo-Json <!--NeedCopy-->
如果要编辑计算机目录,请注意以下限制:
- 如果当前计算机目录支持休眠,您将无法:
- 将 VM 大小更改为不支持休眠功能的 VM 大小
- 将计算机配置文件更改为不支持休眠功能的配置文件
- 如果当前计算机目录不支持休眠,您将无法:
- 当前,使用 Web Studio 将计算机配置文件更改为具有休眠功能的配置文件。但是,您可以使用 PowerShell 命令来执行此操作。请参阅在现有的 MCS 预配的 VM 上启用休眠。
有关如何使用 Remote PowerShell SDK 修改目录的 VM 大小和计算机配置文件的信息,请参阅 https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/MachineCreation/Set-ProvScheme/。
在现有的 MCS 预配的 VM 上启用休眠
可以在现有的以下设备上启用 Azure 休眠:
- 不使用临时磁盘创建的计算机目录的 Windows MCS 预配的 VM。
- 使用和不使用临时磁盘创建的计算机目录的 Linux MCS 预配的 VM。
注意:
- 现有的 MCS 预配的 VM 必须安装 Azure VM Agent。
- 当前,您只能使用 PowerShell 命令来启用此功能。
为此,您需要:
- 打开 PowerShell 窗口。
- 运行
asnp citrix*
以加载 Citrix 特定的 PowerShell 模块。 -
检查现有计算机的配置。例如:
Get-ProvScheme | select ProvisioningSchemeName, ProvisioningSchemeVersion <!--NeedCopy-->
-
使用
Set-ProvScheme
命令在此计算机目录上启用休眠。例如:Set-ProvScheme -provisioningSchemeName xxxx -machineprofile <path-to-machineprofile-with-hibernation-enabled> -serviceoffering "XDHyp:\HostingUnits\msc-dev\serviceoffering.folder\Standard_D4as_v5.serviceoffering" <!--NeedCopy-->
-
请求更新计算机目录中的现有 VM。
Set-ProvVMUpdateTimeWindow -ProvisioningSchemeUid xxxx -VMName <String[] <!--NeedCopy-->
-
重新启动 VM 以触发现有 VM 上的更新。例如:
New-BrokerHostingPowerAction -machinename "<name>" -Action Restart <!--NeedCopy-->
检查休眠属性
可以使用 PowerShell 命令检查计算机目录、VM 和 Broker 计算机的休眠属性:
-
要检查预配方案的休眠属性,请运行以下 PowerShell 命令。
HibernationEnabled
参数必须为True
。(Get-ProvScheme -provisioningSchemeName <YourSchemeName>).VMMetadata -join "" | ConvertFrom-Json | Select HibernationEnabled <!--NeedCopy-->
-
要检查预配 VM 的休眠属性,请运行以下 PowerShell 命令。
SupportsHibernation
参数必须为True
。(Get-ProvVM -VMName <YourVMName>).CustomVmData | ConvertFrom-Json | Select SupportsHibernation <!--NeedCopy-->
-
要检查 Broker 计算机的休眠容量,请运行以下 PowerShell 命令。挂起和恢复电源操作表示具有休眠功能。
(Get-BrokerMachine -MachineName <YourMachineName>).SupportedPowerActions <!--NeedCopy-->
具有休眠功能的 VM 的电源管理
可以在具有休眠功能的 VM 上执行以下电源管理操作:
- 将 VM 从运行状态挂起
- 将 VM 从挂起状态恢复
- 从已挂起状态强制关闭 VM
- 从已挂起状态强制重新启动 VM
有关详细信息,请参阅以下内容:
挂起
可以使用以下方法之一挂起 VM:
- 手动使用 Web Studio
- 自动使用超时策略:有关详细信息,请参阅其他设置。
要手动挂起 VM,请执行以下操作:
-
右键单击 VM,然后选择挂起。单击是确认操作。电源状态从正在挂起更改为已挂起。
可以在 Azure 门户中检查 VM 的状态。
继续
要恢复休眠的 VM,请使用以下方法之一:
-
手动:
-
管理员可以使用 Web Studio 恢复 VM。
-
最终用户单击桌面图标后,即可使用 Citrix Workspace 菜单启动 VM。
-
-
自动:
-
如果您正确配置了高峰时间,AutoScale 可以自动打开休眠计算机的电源。可以通过单击时间表每隔 30 分钟设置一次高峰时间。每个蓝框代表一个标记为高峰时间的时段。高峰时段可以有连续和非连续的时段。
-
连续时段
-
非连续时段
-
-
注意:
在管理 AutoScale > 基于负载的设置中,如果将操作配置为挂起,则请确保该交付组中的所有 VM 都具有休眠功能。否则,无法休眠的 VM 将继续运行。
更多信息
有关 Citrix Azure 休眠的详细信息,请参阅 Citrix Tech Zone 一文。