Citrix DaaS

对 Azure VM 进行电源管理

有关所需权限的信息,请参阅 所需的 Azure 权限

Azure 按需预配

使用 Azure 按需置备时,只有在置备完成后,Citrix DaaS 启动开机操作时才会创建 VM。

使用 MCS 在 Azure Resource Manager 中创建计算机目录时,Azure 按需预配功能:

  • 降低存储成本
  • 加快目录创建过程

创建 MCS 目录时,Azure 门户会显示资源组中的网络安全组、网络接口、基础映像和身份磁盘。

直到 Citrix DaaS 为虚拟机启动开机操作后,Azure 门户才会显示虚拟机。然后,VM 在“完整配置”界面中的状态更改为“开”。有两种类型的计算机,它们有以下区别:

  • 对于池计算机,仅当存在 VM 时才会有操作系统磁盘和写回缓存。在控制台中关闭池计算机时,该 VM 在 Azure 门户中不可见。如果您经常关闭计算机(例如,在工作时间以外),则可以节省大量的存储成本。
  • 对于专用计算机,在首次打开 VM 时创建操作系统磁盘。Azure 门户中的 VM 将保留在存储中,直到计算机标识被删除。在控制台中关闭专用计算机时,该 VM 仍在 Azure 门户中可见。

重启电源时保留已置备的虚拟机

选择在重启电源时是否保留预配的虚拟机。使用 PowerShell 参数 New-ProvScheme CustomProperties。此参数支持额外的属性 PersistVm,用于确定重启电源后预配的虚拟机是否仍然存在。将 PersistVm 属性设置为 true 以在关闭电源时保留虚拟机,或者将属性设置为 false 以确保在关闭电源时不保留虚拟机。

注意:

PersistVm 属性仅适用于启用了属性 CleanOnBootUseWriteBackCache 的预配方案。如果未为非持久虚拟机指定 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-ProvSchemeSet-ProvScheme 命令中指定该属性:

    • 开机后,虚拟机使用错误的存储类型开机。
    • 关闭时,VM 保持关闭状态,但存储类型不正确。
  • 如果您在 New-ProvSchemeSet-ProvScheme 命令中将自定义属性 FailSafeStorageType 配置为 false

    • 开机后,虚拟机仍处于关闭状态,存储类型不正确。
    • 关闭时,VM 保持关闭状态,但存储类型不正确。

要创建包含 FailSafeStorageType 自定义属性的计算机目录,请执行以下操作:

  1. 打开 PowerShell 窗口。
  2. 运行 asnp citrix* 以加载 Citrix 特定的 PowerShell 模块。
  3. 创建标识池(如果尚未创建)。
  4. 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-->
    
  5. 然后,创建计算机目录。有关如何使用远程 PowerShell SDK 创建目录的信息,请参阅 https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/creating-a-catalog/

更新现有计算机目录以包含自定义属性 FailSafeStorageType。此更新不影响现有 VM。

  1. 更新 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,请运行 Request-ProvVMUpdate 命令。

  1. 运行 Request-ProvVMUpdate 命令。例如:

    Request-ProvVMUpdate -ProvisioningSchemeName <String> -VMName <List-Of-Vm-Names>
    <!--NeedCopy-->
    
  2. 重新启动 VM。

创建支持休眠的 VM(预览版)

在 Azure 环境中,您可以创建支持休眠的 MCS 计算机目录。使用此功能,您可以暂停 VM,然后在用户再次登录时重新连接到 VM 的先前状态。

注意:

休眠功能仅适用于单会话操作系统(持久和非持久)计算机目录。

在本节中,请参阅以下内容:

使用休眠的必备条件

要使用休眠,请务必完成以下任务:

  • 为您的 Azure 订阅启用该功能。请参阅 为您的订阅启用休眠功能。
  • DaaS > 主页 > 预览功能中启用以下开关:

    • 配置可以在 Azure 中休眠的 VM
    • AutoScale 对休眠的支持

    在 DaaS 中切换 Azure 休眠功能

  • 在适用于 Windows 和 Linux 的主映像上安装 Azure 虚拟机代理。Windows 映像的页面文件可以在临时磁盘上。在计算机目录上启用休眠后,MCS 会将页面文件位置设置为基础磁盘中的 C: 驱动器。

  • MCS 会自动为生成的资源设置休眠属性。您无需配置主资源的属性即可支持休眠。

  • 在订阅中使用支持休眠的 VM 大小。
  • 创建支持休眠的计算机配置文件(虚拟机或模板规范),以便 VM 继承休眠功能。要创建 VM,请参阅 休眠入门

    注意:

    根据 Microsoft 的说法,您可以从操作系统磁盘部署支持休眠的 VM。目前,某些地区支持此功能,并将很快在所有地区推出。有关详细信息,请参见 从操作系统磁盘部署启用休眠的虚拟机

    要创建模板规范,请执行以下操作:

    1. 打开 Azure 门户。选择要在模板中使用其配置的 VM。在左侧窗格中选择 导出模板
    2. 清除“包含参数”复选框。复制上下文并将其另存为 JSON 文件,例如 VMExportTemplate.json
    3. 确保参数 hibernationEnabled 在模板上的 true 中。如果参数不是 true,请检查您使用的虚拟机配置。您可以在模板文件中指定支持的虚拟机大小。但是,您也可以在创建目录时指定计算机尺寸。
    4. 将网络接口资源的模板添加到 JSON 文件 VMExportTemplate.json 中。因此,您有一个包含两个资源的 ARM 模板文件。
    5. 选择 Azure 门户 > 模板规范 > 导入模板 > 选择本地模板文件 ,将此模板文件作为 ARM 模板规范导入。
    6. 创建 ARM 模板规范后,您可以将其用作计算机配置文件。

    注意:

    同步到 Citrix Studio 可能需要几分钟。

有关详细信息,请参阅 Microsoft 文档 使用休眠的必备条件

限制

  • 仅支持单会话操作系统计算机目录(永久和非持久)。
  • 临时操作系统磁盘和 MCS I/O 功能不支持 Azure 休眠。
  • 在 Windows 自动更新期间,休眠可能会失败。

有关详细信息,请参阅 Microsoft 文档

创建和管理支持休眠的计算机目录

要创建支持休眠的虚拟机,您可以使用以下方法创建和管理支持休眠的计算机目录:

使用完整配置界面创建目录

  1. 登录 Citrix Cloud。在左上角的菜单中,选择我的服务 > DaaS
  2. 管理 > 完整配置中,选择左窗格中的计算机目录
  3. 选择创建计算机目录。目录创建向导将打开。
  4. 在“计算机类型”页面上,为该目录选择 单会话操作系统 计算机类型。
  5. 计算机管理页面上,请按如下所示选择设置:

    1. 选择进行电源管理的计算机(例如,虚拟机或刀片式 PC)
    2. 选择 Citrix Machine Creation Services (MCS)
  6. 桌面体验 页面上,根据需要选择随机或静态桌面体验。
  7. 在“映像”页面上,选择主映像。选中“使用计算机配置文件”复选框,然后选择支持休眠的计算机配置文件。单击工具提示以了解计算机配置文件是否支持休眠。
  8. 存储和许可证类型 页面上,选择要用于此目录的存储和许可证。
  9. 虚拟机页面上,选择 VM 数量、VM 大小和可用性区域。

    注意:

    仅显示支持休眠的计算机尺寸供您选择。

  10. NIC 页面上,添加您希望 VM 使用的 NIC。
  11. 磁盘设置页面上,选择回写式缓存磁盘的存储类型和大小。
  12. 资源组页面上,选择要预配 VM 的资源组。
  13. 计算机标识页面上,选择创建新的 Active Directory 帐户。然后,指定帐户命名方案。
  14. 域凭据页面上,单击输入凭据。输入您的域凭据以在目标 Active Directory 域中创建帐户。
  15. 在“摘要”页面上,输入计算机目录的名称,然后单击“完成”。

MCS 计算机目录创建完成后,在目录列表中找到该目录,然后单击 模板属性 选项卡。必须支持参数“休眠”的值。

如果要编辑计算机目录,请注意以下限制:

  • 如果当前的计算机目录支持休眠,您将无法:
    • 将 VM 大小更改为不支持休眠的大小。
    • 将计算机配置文件更改为无法休眠的配置文件。
  • 如果当前的计算机目录不支持休眠,您将无法:
    • 目前,使用完整配置界面将计算机配置文件更改为支持休眠的配置文件。但是,您可以使用 PowerShell 命令来执行此操作。请参阅在现有 MCS 预配的 VM 上启用休眠

创建用于管理支持休眠的现有虚拟机的计算机目录

如果您已经拥有支持休眠的虚拟机并想要暂停和恢复它们,请创建计算机目录以导入这些虚拟机进行电源管理。

注意:

您可以创建包含支持休眠和不支持休眠的虚拟机的计算机目录。但是,如果您想要与休眠相关的功能,则必须创建仅包含支持休眠的虚拟机的计算机目录。

要使用完整配置界面为支持休眠的现有虚拟机创建目录,请按照屏幕上的说明完成这些步骤并注意以下关键设置:

  1. 计算机管理 页面上,选择 受电源管理的计算机,然后选择 其他服务或技术 作为部署计算机的方式。
  2. 虚拟机 页面上,仅添加或导入支持休眠的虚拟机。

使用 PowerShell 命令创建计算机目录

满足使用休眠的所有要求后,您可以使用 New-ProvScheme 命令创建支持休眠的计算机目录。有关如何使用远程 PowerShell SDK 创建目录的信息,请参阅 https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/creating-a-catalog/

在创建目录时,您可以使用以下 PowerShell 命令检查虚拟机大小和计算机配置文件是否支持休眠:

  • 对于虚拟机大小,运行以下命令并检查属性 supportsHibernation 是否为 True。例如,

     Get-ChildItem -AdminAddress "localhost:19097" -LiteralPath @("XDHyp:\HostingUnits\ <VirtualNetwork> \serviceoffering.folder") | select Name, AdditionalData | ConvertTo-Json
     <!--NeedCopy-->
    
  • 对于计算机配置文件,运行以下命令并检查属性 supportsHibernation 是否为 True。例如,

     Get-ChildItem -AdminAddress "localhost:19097" -LiteralPath @("XDHyp:\HostingUnits\ <VirtualNetwork> \machineprofile.folder\abc.resourcegroup")|select Name, AdditionalData|ConvertTo-Json
     <!--NeedCopy-->
    

如果要编辑计算机目录,请注意以下限制:

  • 如果当前的计算机目录支持休眠,您将无法:
    • 将 VM 大小更改为不支持休眠的大小
    • 将计算机配置文件更改为无法休眠的配置文件
  • 如果当前的计算机目录不支持休眠,您将无法:
    • 目前,使用完整配置界面将计算机配置文件更改为支持休眠的配置文件。但是,您可以使用 PowerShell 命令来执行此操作。请参阅在现有 MCS 预配的 VM 上启用休眠

有关如何使用远程 PowerShell SDK 修改目录的虚拟机大小和计算机配置文件的信息,请参阅 https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/MachineCreation/Set-ProvScheme/

在现有 MCS 配置的 VM 上启用休眠

您可以在现有设备上启用 Azure 休眠:

  • 在没有临时磁盘的情况下创建的计算机目录的 Windows MCS 配置虚拟机。
  • 使用和不使用临时磁盘创建的计算机目录的 Linux MCS 配置的虚拟机。

注意:

  • 现有 MCS 配置的虚拟机必须安装了 Azure 虚拟机代理。
  • 目前,您只能使用 PowerShell 命令来启用此功能。

为此,您需要:

  1. 打开 PowerShell 窗口。
  2. 运行 asnp citrix* 以加载 Citrix 特定的 PowerShell 模块。
  3. 检查现有计算机的配置。例如:

    Get-ProvScheme | select ProvisioningSchemeName, ProvisioningSchemeVersion
    <!--NeedCopy-->
    
  4. 使用 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-->
    
  5. 请求更新计算机目录中的现有 VM。

    Set-ProvVMUpdateTimeWindow -ProvisioningSchemeUid xxxx -VMName <String[]
    <!--NeedCopy-->
    
  6. 重启虚拟机以触发现有 VM 的更新。例如:

    New-BrokerHostingPowerAction -machinename "<name>" -Action Restart
    <!--NeedCopy-->
    

检查休眠属性

您可以使用 PowerShell 命令检查计算机目录、虚拟机和代理计算机的休眠属性:

  • 要检查配置方案的休眠属性,请运行以下 PowerShell 命令。HibernationEnabled 参数必须是 True

     (Get-ProvScheme -provisioningSchemeName <YourSchemeName>).VMMetadata -join "" |  ConvertFrom-Json | Select HibernationEnabled
     <!--NeedCopy-->
    
  • 要检查配置虚拟机的休眠属性,请运行以下 PowerShell 命令。SupportsHibernation 参数必须是 True

     (Get-ProvVM -VMName <YourVMName>).CustomVmData | ConvertFrom-Json | Select SupportsHibernation
     <!--NeedCopy-->
    
  • 要检查代理计算机的休眠容量,请运行以下 PowerShell 命令。“暂停”和“恢复”电源操作表示有休眠能力。

     (Get-BrokerMachine -MachineName <YourMachineName>).SupportedPowerActions
     <!--NeedCopy-->
    

支持休眠的虚拟机的电源管理

您可以在支持休眠的虚拟机上执行以下电源管理操作:

  • 将虚拟机从运行状态中暂停
  • 将 VM 从暂停状态恢复
  • 强制将虚拟机从挂起状态关闭
  • 强制从暂停状态重启 虚拟机

有关详细信息,请参阅以下内容:

挂起

您可以使用以下方法之一暂停虚拟机:

  • 手动 使用完整配置界面
  • 自动 使用超时策略:有关详细信息,请参阅 其他设置

要手动暂停 VM,请执行以下操作:

  1. 右键单击 VM,然后选择“暂停”。单击“”确认操作。电源状态 从“暂停”变为“暂停”。

    暂停支持休眠的虚拟机

您可以在 Azure 门户中检查虚拟机的状态。

在 Azure 门户中检查虚拟机的状态

继续

要恢复休眠的虚拟机,请使用以下方法之一:

  • 手动

    • 管理员可以使用完整配置界面恢复虚拟机。

      使用完整配置界面恢复虚拟机

    • 最终用户单击桌面图标后,可以使用 Citrix Workspace 菜单启动虚拟机。

      管理基于 AutoScale 负载的设置

  • 自动

    • 如果您正确配置高峰时间,Autoscale 可以自动打开休眠计算机的电源。您可以通过单击时间表来设置以 30 分钟为间隔的高峰时间。每个蓝框代表一个标记为高峰时段的时段。高峰时段可以有连续和非连续的时段。

      • 连续时段

        连续的高峰时段

      • 非连续时段

        非连续的高峰时段

注意:

在“管理 AutoScale”>“基于负载的设置”中,如果将操作配置为“暂停”,则确保该交付组中的所有虚拟机都具有休眠功能。否则,无法休眠的虚拟机将继续运行。

管理基于 AutoScale 负载的设置

更多信息

有关 Citrix Azure 休眠的更多信息,请参阅 Citrix Tech Zone 文章。

对 Azure VM 进行电源管理