Citrix Virtual Apps and Desktops

创建 Microsoft Azure 目录

创建计算机目录介绍了用于创建计算机目录的向导。以下信息涵盖了特定于 Microsoft Azure Resource Manager 云环境的详细信息。

注意:

在创建 Microsoft Azure 目录之前,您需要完成创建与 Microsoft Azure 的连接。请参阅与 Microsoft Azure 的连接

创建计算机目录

可以通过两种方式创建计算机目录:

在 Web Studio 中使用 Azure Resource Manager 映像创建计算机目录

映像可以是磁盘、快照或 Azure Compute Gallery 中用于在计算机目录中创建 VM 的映像定义的映像版本。创建计算机目录之前,请在 Azure Resource Manager 中创建一个映像。有关映像的常规信息,请参阅创建计算机目录

注意:

不支持使用与在主机连接中配置的区域不同的主映像。使用 Azure Compute Gallery 将主映像复制到所需区域。

在映像准备期间,将在原始 VM 的基础上创建准备 VM。此准备 VM 已与网络断开连接。为了断开网络与准备 VM 的连接,需要创建一个网络安全组以拒绝所有入站和出站流量。将为每个目录自动创建一次网络安全组。网络安全组的名称为 Citrix-Deny-All-a3pgu-GUID,其中 GUID 是随机生成的。例如,Citrix-Deny-All-a3pgu-3f161981-28e2-4223-b797-88b04d336dd1

在计算机目录创建向导中,执行以下操作:

  • 计算机类型计算机管理页面不包含 Azure 特定的信息。请按照创建计算机目录一文中的指导进行操作。

  • 主映像页面上,选择要用作目录中的所有计算机的主映像的映像。此时将出现选择映像向导。

    1. (仅适用于使用租户内或租户之间的共享映像配置的连接)选择映像所在的订阅。
    2. 选择资源组。
    3. 导航到 Azure VHD、Azure Compute Gallery 或 Azure 映像版本。如果需要,请为所选映像添加备注。

    选择映像时,请注意以下事项:

    • 验证映像上是否安装了 Citrix VDA。
    • 如果您选择连接到某个 VM 的 VHD,则必须先关闭该 VM,然后才能继续执行下一步操作。

    注意:

    • 与在目录中创建计算机的连接(主机)对应的订阅用绿点表示。其他订阅是指那些与该订阅共享了 Azure Compute Gallery 的订阅。在这些订阅中,仅显示共享映像。有关如何配置共享订阅的信息,请参阅在租户内(跨订阅)共享映像在租户之间共享映像
    • 选择启用了受信任启动的映像或快照时,必须使用安全类型设置为“受信任启动”的计算机配置文件。然后,您可以通过在计算机配置文件中指定其值来启用或禁用 SecureBoot 和 vTPM。共享映像库不支持受信任启动。有关 Azure 可信启动的信息,请参阅 https://docs.microsoft.com/en-us/azure/virtual-machines/trusted-launch
    • 您可以在 Windows 上使用具有受信任启动功能的临时操作系统磁盘创建预配方案。当您选择具有受信任启动功能的映像时,必须选择启用了 vTPM 的具有受信任启动功能的计算机配置文件。要使用临时操作系统磁盘创建计算机目录,请参阅如何使用临时操作系统磁盘创建计算机
    • 当映像复制正在进行时,您可以继续选择映像作为主映像并完成设置。但是,在复制映像时创建目录可能需要更长时间才能完成。MCS 要求复制在目录创建开始的一小时内完成。如果复制超时,目录创建将失败。您可以在 Azure 中验证复制状态。请在复制仍处于挂起状态或在复制完成后重试。
    • 在 Azure 中为计算机目录选择主映像时,MCS 会根据您选择的主映像和计算机配置文件识别操作系统类型。如果 MCS 无法识别该类型,请选择与主映像匹配的操作系统类型。
    • 您可以使用 Gen2 映像来预配 Gen2 VM 目录,以缩短启动时间。但是,不支持使用 Gen1 映像创建 Gen2 计算机目录。同样,也不支持使用 Gen2 映像创建 Gen1 计算机目录。此外,没有版本信息的任何旧映像都是 Gen1 映像。

    选择是否希望目录中的 VM 继承计算机配置文件中的配置。默认情况下,使用计算机配置文件(对于 Azure Active Directory 是必需的) 复选框处于选中状态。单击选择计算机配置文件,从资源组列表中浏览到 VM 或 ARM 模板规范。

    验证 ARM 模板规范,确保其是否能够用作计算机配置文件来创建计算机目录。有两种方法可以验证 ARM 模板规范:

    • 从资源组列表中选择 ARM 模板规范后,单击下一步。如果 ARM 模板规范有错误,则会出现错误消息。
    • 运行以下 PowerShell 命令之一:
      • Test-ProvInventoryItem -HostingUnitName <string> -InventoryPath <string>
      • Test-ProvInventoryItem -HostingUnitUid <Guid> -InventoryPath <string>

    VM 可以从计算机配置文件中继承的配置示例包括:

    • 加速的网络连接
    • 启动诊断
    • 主机磁盘缓存(与操作系统 和 MCSIO 磁盘有关)
    • 计算机大小(除非另有说明)
    • 置于 VM 上的标记

    创建目录后,可以查看映像从计算机配置文件继承的配置。在计算机目录节点上,选择目录以在下方的窗格中查看其详细信息。然后,单击模板属性选项卡以查看计算机配置文件属性。标记部分最多显示三个标记。要查看放置在 VM 上的所有标记,请单击查看全部

    如果您希望 MCS 在 Azure 专用主机上预配 VM,请启用使用专用主机组复选框,然后从列表中选择一个主机组。主机组是表示专用主机的集合的资源。专用主机是指提供托管一个或多个 VM 的物理服务器的服务。您的服务器专用于您的 Azure 订阅,不与其他订阅者共享。使用专用主机时,Azure 会确保您的 VM 是该主机上唯一运行的计算机。此功能适用于必须满足法规或内部安全要求的场景。要了解有关主机组及其使用注意事项的详细信息,请参阅 Azure 专用主机

    重要提示:

    • 仅显示启用了 Azure 自动放置功能的主机组。
    • 使用主机组会更改向导中后面提供的虚拟机页面。该页面上仅显示选定主机组包含的计算机大小。此外,可用性区域是自动选择的,不可供选择。
  • 只有当您使用 Azure Resource Manager 映像时,才会显示存储和许可证类型页面。

    “存储和许可证类型”页面

    可以将以下存储类型用于计算机目录:

    • Premium SSD。提供适用于具有 I/O 密集型工作负载的 VM 的高性能、低延迟磁盘存储方案。
    • 标准 SSD。提供经济高效的存储方案,该方案适用于在较低的 IOPS 级别需要性能一致的工作负载。
    • 标准 HDD。提供适用于运行延迟不敏感的工作负载的 VM 的可靠、低成本的磁盘存储方案。
    • Azure 临时操作系统磁盘。提供经济高效的、重复使用 VM 的本地磁盘来托管操作系统磁盘的存储方案。或者,您可以使用 PowerShell 创建使用临时操作系统磁盘的计算机。有关详细信息,请参阅 Azure 临时磁盘。使用临时操作系统磁盘时,请注意以下事项:
      • 无法同时启用 Azure 临时操作系统磁盘和 MCS I/O。
      • 必须选择大小不超过 VM 的缓存磁盘或临时磁盘大小的映像,才能更新使用临时操作系统磁盘的计算机。
      • 您无法使用稍后在向导中提供的电源重启期间保留 VM 和系统磁盘选项。

    注意:

    无论您选择哪种存储类型,身份磁盘始终使用标准 SSD 创建。

    该存储类型决定在向导的虚拟机页面上提供哪些计算机大小。MCS 将高级磁盘和标准磁盘配置为使用本地冗余存储 (LRS)。LRS 在单个数据中心中创建您的磁盘数据的多个同步副本。Azure 临时操作系统磁盘使用 VM 的本地磁盘来存储操作系统。有关 Azure 存储类型和存储复制的详细信息,请参阅以下内容:

    选择是否使用现有的 Windows 许可证或 Linux 许可证。

    • Windows 许可证:通过将 Windows 许可证和 Windows 映像(Azure 平台支持映像或自定义映像)结合使用,您可以在 Azure 中以更低的成本运行 Windows VM。许可证有两种类型:

      • Windows Server 许可证。支持使用 Windows Server 许可证或 Azure Windows Server 许可证,以允许使用 Azure Hybrid Benefits。有关详细信息,请参阅 https://azure.microsoft.com/en-us/pricing/hybrid-benefit/。Azure Hybrid Benefits 将在 Azure 中运行 VM 的成本降低到基本计算费率,从而免除了源自 Azure 库的额外 Windows Server 许可证的费用。

      • Windows 客户端许可证。支持在 Azure 中使用 Windows 10 和 Windows 11 许可证,以允许您在 Azure 中运行 Windows 10 和 Windows 11 VM,而无需额外的许可证。有关详细信息,请参阅客户端访问许可证和管理许可证

    您可以通过运行以下 PowerShell 命令来验证已预配的 VM 是否正在利用许可权益: Get-AzVM -ResourceGroup MyResourceGroup -Name MyVM

    或者,您可以使用 Get-Provscheme PowerShell SDK 来执行验证。例如:Get-Provscheme -ProvisioningSchemeName "My Azure Catalog"。有关此 cmdlet 的详细信息,请参阅https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/MachineCreation/Get-ProvScheme/

    • Linux 许可证:使用自带订阅 (BYOS) Linux 许可证,您无需为软件付费。BYOS 费用仅包括计算硬件费用。许可证有两种类型:

      • RHEL_BYOS:要成功使用 RHEL_BYOS 类型,请在您的 Azure 订阅中启用 Red Hat Cloud Access。
      • SLES_BYOS:SLES 的 BYOS 版本包括 SUSE 提供的支持。

      可以在 New-ProvSchemeSet-ProvScheme 处将 LicenseType 值设置为 Linux 选项。

      New-ProvScheme 处将 LicenseType 设置为 RHEL_BYOS 的示例:

      New-ProvScheme -CleanOnBoot -ProvisioningSchemeName "azureCatalog" -RunAsynchronously -Scope @() -SecurityGroup @() -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="StorageAccountType" Value="StandardSSD_LRS" /><Property xsi:type="StringProperty" Name="ResourceGroups" Value="hu-dev-mcs" /><Property xsi:type="StringProperty" Name="OsType" Value="Linux" /><Property xsi:type="StringProperty" Name="LicenseType" Value="RHEL_BYOS" /></CustomProperties>'
      <!--NeedCopy-->
      

      Set-ProvScheme 处将 LicenseType 设置为 SLES_BYOS 的示例:

      Set-ProvScheme -ProvisioningSchemeName "azureCatalog" -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="StorageAccountType" Value="StandardSSD_LRS" /><Property xsi:type="StringProperty" Name="ResourceGroups" Value="hu-dev-mcs" /><Property xsi:type="StringProperty" Name="OsType" Value="Linux" /><Property xsi:type="StringProperty" Name="LicenseType" Value="SLES_BYOS" /></CustomProperties>'
      <!--NeedCopy-->
      

      注意:

      如果 LicenseType 值为空,则默认值为 Azure Windows Server 许可证或 Azure Linux 许可证,具体取决于 OsType 的值。

      将 LicenseType 设置为空的示例:

      Set-ProvScheme -ProvisioningSchemeName "azureCatalog" -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="StorageAccountType" Value="StandardSSD_LRS" /><Property xsi:type="StringProperty" Name="ResourceGroups" Value="hu-dev-mcs" /><Property xsi:type="StringProperty" Name="OsType" Value="Linux" /></CustomProperties>'
      <!--NeedCopy-->
      

    请参阅以下文档以了解许可证类型及其好处:

    Azure Compute Gallery(以前称为 Azure 共享映像库)是一个用于管理和共享映像的存储库。它可以让您在整个组织中使用映像。我们建议您在创建大型非持久性计算机目录时将映像存储在 SIG 中,因为这样做可以更快地重置 VDA 操作系统磁盘。选择将准备好的映像放置在 Azure Compute Gallery 中后,将显示 Azure Compute Gallery 设置部分,从而允许您指定更多 Azure Compute Gallery 设置:

    • 虚拟机与映像副本的比率。用于指定希望 Azure 保留的虚拟机与映像副本的比率。默认情况下,Azure 为每 40 个非持久性计算机保留一个映像副本。对于持久性计算机,该数字默认为 1000。

    • 最大副本计数。允许您指定希望 Azure 保留的最大映像副本数。默认值为 10。

  • 虚拟机页面上,指出要创建的 VM 数量。必须至少指定一个,然后选择计算机大小。创建目录后,可以通过编辑目录来更改计算机大小。

  • NIC 页面不包含 Azure 特定的信息。请按照创建计算机目录一文中的指导进行操作。

  • 磁盘设置页面上,选择是否启用回写式缓存。启用了 MCS 存储优化功能后,可以在创建目录时配置以下设置。这些设置适用于 Azure 和 GCP 环境。

    计算机目录设置 - 磁盘设置

    启用回写式缓存后,您可以执行以下操作:

    • 配置用于缓存临时数据的磁盘和 RAM 的大小。有关详细信息,请参阅配置临时数据的缓存

    • 选择回写式缓存磁盘的存储类型。以下存储选项可用于回写式缓存磁盘:

      • 高级 SSD
      • 标准 SSD
      • 标准 HDD
    • 选择是否要为已预配的 VM 保留回写式缓存磁盘。选择启用回写式缓存以使这些选项可用。默认情况下,选中使用非永久回写式缓存磁盘

    • 选择回写式缓存磁盘的类型。

      • 使用非永久回写式缓存磁盘。如果选中此选项,则会在电源重启期间删除回写式缓存磁盘。重定向到该磁盘的任何数据都将丢失。如果 VM 的临时磁盘有足够的空间,它将用于托管回写式缓存磁盘以降低成本。创建目录后,可以检查已预配的计算机是否使用临时磁盘。为此,请单击目录并验证模板属性选项卡上的信息。如果使用临时磁盘,您将看到非永久回写式缓存磁盘,其值为是(使用 VM 的临时磁盘)。否则,您将看到非永久回写式缓存磁盘,其值为否(不使用 VM 的临时磁盘)
      • 使用永久回写式缓存磁盘。如果选中此选项,回写式缓存磁盘将为已预配的 VM 保留。启用此选项会增加存储成本。
    • 选择是否在电源重启期间为 VDA 保留 VM 和系统磁盘。

      电源重启期间保留 VM 和系统磁盘。当您选择了启用回写式缓存时可用。默认情况下,VM 和系统磁盘在关机时删除,并在启动时重新创建。如果要缩短 VM 重新启动时间,请选择此选项。请记住,启用此选项还会增加存储成本。

    • 选择是否启用节省存储成本功能。如果已启用,则可以在 VM 关闭时将存储磁盘降级为标准 HDD,从而节省存储成本。VM 在重新启动时切换到其原始设置。该选项同时适用于存储和回写式缓存磁盘。或者,也可以使用 PowerShell。请参阅关闭 VM 时将存储类型更改为较低的层

      注意:

      在 VM 关闭期间,Microsoft 对更改存储类型施加了限制。Microsoft 将来也有可能会阻止更改存储类型。有关详细信息,请参阅这篇 Microsoft 文章

    • 选择是否对在目录中预配的计算机上的数据进行加密。通过使用客户管理的加密密钥的服务器端加密,您可以在托管磁盘级别管理加密,并保护目录中的计算机上的数据。有关详细信息,请参阅 Azure 服务器端加密

  • 资源组页面上,选择是创建资源组还是使用现有组。

    • 如果选择创建资源组,请选择下一步
    • 如果选择使用现有资源组,请从可用的预配资源组列表中选择组。谨记:请选择足够的组以容纳您要在目录中创建的计算机。如果选择太少,系统将显示一条消息。如果您计划以后向目录添加更多 VM,则您可能希望选择的数量多于所需的最低数量。创建目录后,无法向目录添加更多资源组。

    有关详细信息,请参阅 Azure 资源组

  • 计算机标识页面上,选择标识类型并为该目录中的计算机配置标识。如果您选择 VM 为已加入 Azure Active Directory,则可以将其添加到 Azure AD 安全组。详细步骤如下所示:

    1. 标识类型字段中,选择已加入 Azure Active Directory。此时将显示 Azure AD 安全组(可选) 选项。
    2. 单击 Azure AD 安全组: 新建
    3. 输入组名称,然后单击创建
    4. 请按照屏幕上的说明登录 Azure。 如果 Azure 中不存在组名称,则会出现绿色图标。否则,会出现一条错误消息,要求您输入新名称。
    5. 输入 VM 的计算机帐户命名方案。

    创建目录后,Citrix Virtual Apps and Desktops 代表您访问 Azure 并为该组创建安全组和动态成员身份规则。根据该规则,使用在此目录中指定的命名方案的 VM 将自动添加到安全组中。

    将使用不同命名方案的 VM 添加到此目录需要您登录 Azure。然后,Citrix Virtual Apps and Desktops 可以访问 Azure 并根据新命名方案创建动态成员身份规则。

    删除此目录时,从 Azure 中删除安全组还需要登录 Azure。

  • 域凭据摘要页面不包含 Azure 特定的信息。请按照创建计算机目录一文中的指导进行操作。

完成向导。

Azure 临时磁盘有资格使用回写式缓存磁盘的条件

仅当满足以下所有条件时,才能将 Azure 临时磁盘用作回写式缓存磁盘:

  • 回写式缓存磁盘必须非永久,因为 Azure 临时磁盘不适合静态数据。

  • 所选 Azure VM 大小必须包含临时磁盘。

  • 不需要启用临时操作系统磁盘。

  • 接受以将回写式缓存文件放置在 Azure 临时磁盘上。

  • Azure 临时磁盘大小必须大于(回写式缓存磁盘大小 + 页面文件的预留空间 + 1 GB 缓冲区空间)的总大小。

非永久回写式缓存磁盘场景

下表描述了在创建计算机目录时使用临时磁盘作为回写式缓存的三种不同场景。

场景 结果
使用临时磁盘进行回写式缓存的所有条件均已满足。 WBC 文件 mcsdif.vhdx 放置在临时磁盘上。
临时磁盘空间不足,无法使用回写式缓存。 将创建一个 VHD 磁盘 MCSWCDisk,并将 WBC 文件 mcsdif.vhdx 放置在此磁盘上。
临时磁盘有足够的空间用于回写式缓存,但 UseTempDiskForWBC 设置为 false 将创建一个 VHD 磁盘 MCSWCDisk,并将 WBC 文件 mcsdif.vhdx 放置在此磁盘上。

创建 Azure 模板规范

您可以在 Azure 门户中创建 Azure 模板规范,然后在 Web Studio 和 PowerShell 命令中用来创建或更新 MCS 计算机目录。

要为现有 VM 创建 Azure 模板规范,请执行以下操作:

  1. 转至 Azure 门户。选择一个资源组,然后选择 VM 和网络接口。在顶部的 菜单中,单击导出模板
  2. 如果要为目录预配创建模板规范,请清除包括参数复选框。
  3. 单击添加到库以便稍后修改模板规范。
  4. 导入模板页面上,输入所需信息,例如名称订阅资源组位置版本。单击下一步: 编辑模板
  5. 如果要预配目录,还需要将网络接口作为独立资源。因此,必须删除在模板规范中指定的任何 dependsOn。例如:

    "dependsOn": [
    "[resourceId('Microsoft.Network/networkInterfaces', 'tnic937')]"
    ],
    <!--NeedCopy-->
    
  6. 创建检查 + 创建并创建模板规范。
  7. 模板规范页面上,验证您刚刚创建的模板规范。单击模板规范。在左侧面板上,单击版本
  8. 可以通过单击创建新版本来创建新版本。指定新版本号,更改当前的模板规范,然后单击检查 + 创建以创建模板规范的新版本。

可以使用以下 PowerShell 命令获取有关模板规范和模板版本的信息:

  • 要获取有关模板规范的信息,请运行:

     get-item XDHyp:\HostingUnits\East\machineprofile.folder\abc.resourcegroup\bggTemplateSpec.templatespec
     <!--NeedCopy-->
    
  • 要获取有关模板规范版本的信息,请运行:

     get-item XDHyp:\HostingUnits\East\machineprofile.folder\abc.resourcegroup\bggTemplateSpec.templatespec\bgg1.0.templatespecversion
     <!--NeedCopy-->
    

在创建或更新目录时使用模板规范

可以使用模板规范作为计算机配置文件输入来创建或更新 MCS 计算机目录。为此,您可以使用 Web Studio 或 PowerShell 命令。

Azure 服务器端加密

Citrix Virtual Apps and Desktops 通过 Azure 密钥保管库支持 Azure 托管磁盘的客户托管加密密钥。通过此支持,您可以使用自己的加密密钥对计算机目录的托管磁盘进行加密,从而管理组织和合规性要求。有关详细信息,请参阅 Azure 磁盘存储的服务器端加密

对托管磁盘使用此功能时:

  • 要更改磁盘加密时使用的密钥,请更改 DiskEncryptionSet 中的当前密钥。与该 DiskEncryptionSet 关联的所有资源都将更改为使用新密钥加密。

  • 禁用或删除密钥时,任何具有使用该密钥的磁盘的 VM 都会自动关闭。关闭后,除非再次启用该密钥或分配新密钥,否则 VM 将无法使用。使用该密钥的任何目录都无法打开,也无法向其中添加 VM。

使用客户管理的加密密钥时的重要注意事项

使用此功能时请注意以下事项:

  • 与客户管理的密钥(Azure 密钥保管库、磁盘加密集、VM、磁盘和快照)相关的所有资源都必须位于同一订阅和区域中。

  • 启用客户管理的加密密钥后,以后无法将其禁用。如果要禁用或删除客户管理的加密密钥,请将所有数据复制到不使用客户管理的加密密钥的其他托管磁盘。

  • 使用服务器端加密和客户托管的密钥从加密的自定义映像创建的磁盘必须使用相同的客户管理的密钥进行加密。这些磁盘必须位于同一个订阅中。

  • 使用服务器端加密和客户管理的密钥加密的磁盘创建的快照必须使用相同的客户管理的密钥进行加密。

  • 使用客户管理的密钥加密的磁盘、快照和映像无法移动到其他资源组和订阅。

  • 当前或之前使用 Azure 磁盘加密进行加密的托管磁盘不能使用客户管理的密钥进行加密。

  • 有关每个区域的磁盘加密集的限制,请参阅 Microsoft 站点

注意:

有关配置 Azure 服务器端加密的信息,请参阅快速入门:使用 Azure 门户创建密钥保管库

Azure 客户管理的加密密钥

创建计算机目录时,可以选择是否加密在目录中预配的计算机上的数据。通过使用客户管理的加密密钥的服务器端加密,您可以在托管磁盘级别管理加密,并保护目录中的计算机上的数据。磁盘加密集 (Disk Encryption Set, DES) 表示客户管理的密钥。要使用此功能,必须首先在 Azure 中创建 DES。DES 采用以下格式:

  • /subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/Sample-RG/providers/Microsoft.Compute/diskEncryptionSets/SampleEncryptionSet

从列表中选择 DES。所选择的 DES 必须与您的资源位于相同的订阅和区域。如果使用 DES 加密了映像,请在创建计算机目录时使用相同的 DES。创建目录后无法更改 DES。

如果使用加密密钥创建目录,然后在 Azure 中禁用相应的 DES,则无法再打开目录中的计算机的电源或者向其中添加计算机。

请参阅使用客户管理的密钥创建计算机目录

Azure 磁盘主机加密

可以创建具有主机加密功能的 MCS 计算机目录。目前,MCS 仅支持面向此功能的计算机配置文件工作流程。您可以使用 VM 或模板规范作为计算机配置文件的输入。

此加密方法不会通过 Azure 存储对数据进行加密。托管 VM 的服务器对数据进行加密,加密的数据随后会流经 Azure 存储服务器。因此,这种加密方法会对数据进行端到端加密。

限制:

Azure 磁盘主机加密:

  • 并非所有 Azure 计算机大小都支持
  • 与 Azure 磁盘加密不兼容

要创建具有主机加密功能的计算机目录,请执行以下操作:

  1. 检查订阅是否启用了主机加密功能。为此,请参阅https://learn.microsoft.com/en-us/rest/api/resources/features/get?tabs=HTTP/。如果未启用,则必须为订阅启用该功能。有关为您的订阅启用该功能的信息,请参阅 https://learn.microsoft.com/en-us/azure/virtual-machines/disks-enable-host-based-encryption-portal?tabs=azure-powershell#prerequisites/
  2. 检查特定 Azure VM 大小是否支持主机加密。要执行此操作,请在 PowerShell 窗口中运行以下任一命令:

    PS XDHyp:\Connections<your connection>\east us.region\serviceoffering.folder>
    <!--NeedCopy-->
    
    PS XDHyp:\HostingUnits<your hosting unit>\serviceoffering.folder>
    <!--NeedCopy-->
    
  3. 在启用了主机加密功能的 Azure 门户中创建 VM 或模板规范,作为计算机配置文件的输入。

    • 如果要创建 VM,请选择支持主机加密功能的 VM 大小。创建 VM 后,VM 属性 Encryption at host(主机加密)处于启用状态。
    • 如果要使用模板规范,请在 securityProfile 内部将参数 Encryption at Host 指定为 true
  4. 通过选择 VM 或模板规范,使用计算机配置文件工作流程创建 MCS 计算机目录。

    • 操作系统磁盘/数据磁盘:通过客户管理的密钥和平台管理的密钥进行加密
    • 临时操作系统磁盘:仅通过平台管理的密钥进行加密
    • 缓存磁盘:通过客户管理的密钥和平台管理的密钥进行加密

    可以使用 Web Studio 或者运行 PowerShell 命令来创建计算机目录。

从计算机配置文件中检索主机加密信息

运行带有 AdditionalData 参数的 PowerShell 命令时,可以从计算机配置文件中检索主机加密信息。如果 EncryptionAtHost 参数设置为 True,则表示已为计算机配置文件启用主机加密。

例如:当计算机配置文件输入为 VM 时,请运行以下命令:

(get-item XDHyp:\HostingUnits\myAzureNetwork\machineprofile.folder\abc.resourcegroup\def.vm).AdditionalData
<!--NeedCopy-->

例如:当计算机配置文件输入为模板规范时,请运行以下命令:

(get-item XDHyp:\HostingUnits\myAzureNetwork\machineprofile.folder\abc.resourcegroup\def_templatespec.templatespec\EncryptionAtHost.templatespecversion).AdditionalData
<!--NeedCopy-->

托管磁盘上的双重加密

可以创建具有双重加密的计算机目录。使用此功能创建的任何目录都会同时使用平台和客户管理的密钥对所有磁盘服务器端进行加密。您拥有并维护 Azure Key Vault、加密密钥和磁盘加密集 (DES)。

双重加密是指平台端加密(默认)和客户管理的加密 (CMEK)。因此,如果您是高度安全敏感的客户,并且担心与任何加密算法、实现或密钥泄露相关的风险,则可以选择这种双重加密。永久操作系统和数据磁盘、快照和映像均使用双重加密进行静态加密。

注意:

  • 可以使用 Web Studio 和 PowerShell 命令创建和更新具有双重加密的计算机目录。有关 PowerShell 命令,请参阅使用双重加密创建计算机目录
  • 可以使用非基于计算机配置文件的工作流程或基于计算机配置文件的工作流程来创建或更新具有双重加密的计算机目录。
  • 如果您使用非基于计算机配置文件的工作流程来创建计算机目录,则可以重复使用存储的 DiskEncryptionSetId
  • 如果使用计算机配置文件,则可以使用 VM 或模板规范作为计算机配置文件输入。

限制:

  • 超级磁盘或 Premium SSD v2 磁盘不支持双重加密。
  • 非托管磁盘不支持双重加密。
  • 如果您禁用了与目录关联的 DiskEncryptionSet 键,该目录的 VM 将被禁用。
  • 与客户管理的密钥(Azure 密钥保管库、磁盘加密集、VM、磁盘和快照)相关的所有资源都必须位于同一订阅和区域中。
  • 每个订阅每个区域最多只能创建 50 个磁盘加密集。
  • 无法使用其他 DiskEncryptionSetId 更新已包含 DiskEncryptionSetId 的计算机目录。

Azure 资源组

Azure 预配资源组提供了一种预配向用户提供应用程序和桌面的 VM 的方法。您可以创建 MCS 计算机目录时添加现有的空 Azure 资源组,也可以创建新资源组。有关 Azure 资源组的信息,请参阅 Microsoft 文档

Azure 资源组使用情况

每个 Azure 资源组的虚拟机、托管磁盘、快照和映像数量都没有限制。(删除了每个 Azure 资源组每 800 个托管磁盘包含 240 个 VM 的限制。)

  • 使用完整作用域服务主体创建计算机目录时,MCS 仅创建一个 Azure 资源组,并为目录使用该资源组。
  • 使用窄作用域服务主体创建计算机目录时,必须为目录提供一个空的、预先创建的 Azure 资源组。

Azure 临时磁盘

Azure 临时磁盘允许您重新调整缓存磁盘或临时磁盘的用途,以便为启用了 Azure 的虚拟机存储操作系统磁盘。此功能对于需要的 SSD 磁盘的性能高于标准 HDD 磁盘的 Azure 环境非常有用。有关使用 Azure 临时磁盘创建目录的信息,请参阅使用 Azure 临时磁盘创建目录

注意:

永久目录不支持临时操作系统磁盘。

临时操作系统磁盘要求您的预配方案使用托管磁盘和共享映像库。

存储临时操作系统临时磁盘

您可以选择将临时操作系统磁盘存储在 VM 临时磁盘或资源磁盘上。通过此功能,您可以将临时操作系统磁盘用于没有缓存或缓存不足的 VM。此类 VM 具有用于存储临时操作系统磁盘的临时磁盘或资源磁盘,例如 Ddv4

请注意以下事项:

  • 临时磁盘存储在 VM 缓存磁盘或 VM 的临时(资源)磁盘中。除非缓存磁盘的大小不足以容纳操作系统磁盘的内容,否则缓存磁盘优先于临时磁盘。
  • 对于更新,如果新映像大于缓存磁盘但小于临时磁盘,则会导致将临时操作系统磁盘替换为 VM 的临时磁盘。

Azure 临时磁盘和 Machine Creation Services (MCS) 存储优化 (MCS I/O)

无法同时启用 Azure 临时操作系统磁盘和 MCS I/O。

重要注意事项如下:

  • 您无法创建同时启用了临时操作系统磁盘和 MCS I/O 的计算机目录。

  • 如果在 New-ProvSchemeSet-ProvScheme 中将 PowerShell 参数(UseWriteBackCacheUseEphemeralOsDisk)设置为 true,这些参数将失败并显示正确的错误消息。
  • 对于在启用了这两种功能的情况下创建的现有计算机目录,您仍然可以:
    • 更新计算机目录。
    • 添加或删除 VM。
    • 删除计算机目录。

将 Azure Compute Gallery(以前称为 Azure 共享映像库)用作 Azure 中 MCS 预配的计算机的已发布映像存储库。可以在该库中存储已发布的映像,以加快操作系统磁盘的创建和水化速度,从而缩短非持久 VM 的启动和应用程序启动时间。共享映像库包含以下三个元素:

  • :映像存储在此位置。MCS 为每个计算机目录创建一个库。
  • 库映像定义:此定义包括有关已发布的映像的信息(操作系统类型和状态、Azure 区域)。MCS 为目录创建的每个映像创建一个映像定义。
  • 库映像版本: 共享映像库中的每个映像可以有多个版本,每个版本可以在不同的区域中有多个副本。每个副本都是已发布的映像的完整副本。

注意:

共享映像库功能仅与托管磁盘兼容。它不适用于旧版计算机目录。

有关详细信息,请参阅 Azure Compute Gallery 概述

有关使用 PowerShell 通过 Azure Compute Gallery 映像创建或更新计算机目录的信息,请参阅使用 Azure Compute Gallery 映像创建或更新计算机目录

Azure 应用商店

Citrix Virtual Apps and Desktops 支持在 Azure 上使用包含计划信息的主映像来创建计算机目录。有关详细信息,请参阅 Microsoft Azure 应用商店

提示:

在 Azure 应用商店中找到的某些映像(例如标准 Windows Server 映像)不会附加计划信息。Citrix Virtual Apps and Desktops 功能适用于付费映像。

请确保在共享映像库中创建的映像包含 Azure 计划信息

请使用本部分中的过程在 Web Studio 中查看共享映像库映像。这些映像可以选择用于主映像。要将映像放入共享映像库,请在库中创建映像定义。

Azure 应用商店共享映像库

发布选项页面中,验证购买计划信息。

购买计划信息字段最初为空。请使用用于映像的购买计划信息填充这些字段。未能填充购买计划信息会导致计算机目录进程失败。

Azure 应用商店验证 VDA 发布选项

确认购买计划信息后,在定义中创建一个映像版本。这用作主映像。单击添加版本

Azure 应用商店添加 VDA 版本

版本详细信息部分中,选择映像快照或托管磁盘作为源:

Azure 应用商店选择 VDA 选项

使用 PowerShell 创建计算机目录

本部分内容详细介绍了如何使用 PowerShell 创建目录:

创建具有非永久回写式缓存磁盘的目录

要配置具有非永久回写式缓存磁盘的目录,请使用 PowerShell 参数 New-ProvScheme CustomProperties。自定义属性 UseTempDiskForWBC 指示您是否接受使用 Azure 临时存储来存储回写式缓存文件。如果要将临时磁盘用作回写式缓存磁盘,则必须在运行 New-ProvScheme 时将其配置为 true。如果未指定此属性,则默认情况下将参数设置为 False

例如,使用 CustomProperties 参数将 UseTempDiskForWBC 设置为 true

-CustomProperties '<CustomProperties xmlns=" http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"> `
<Property xsi:type="StringProperty" Name="PersistWBC" Value="false"/> `
<Property xsi:type="StringProperty" Name="PersistOsDisk" Value="false"/> `
<Property xsi:type="StringProperty" Name="PersistVm" Value="false"/> `
<Property xsi:type="StringProperty" Name="StorageAccountType" Value="Premium_LRS"/> `
<Property xsi:type="StringProperty" Name="WBCDiskStorageType" Value="Premium_LRS"/> `
<Property xsi:type="StringProperty" Name="LicenseType" Value="Windows_Client"/> `
<Property xsi:type="StringProperty" Name="UseTempDiskForWBC" Value="true"/> `
</CustomProperties>'
<!--NeedCopy-->

注意:

提交计算机目录以使用 Azure 本地临时存储作为回写式缓存文件后,以后无法更改为使用 VHD。

创建具有永久回写式缓存磁盘的目录

要配置具有永久回写式缓存磁盘的目录,请使用 PowerShell 参数 New-ProvScheme CustomProperties。此参数支持额外的属性 PersistWBC,用于确定 MCS 预配的计算机的回写式缓存磁盘如何保留。仅当指定了 UseWriteBackCache 参数时,并且当 WriteBackCacheDiskSize 参数设置为指示创建了磁盘时才使用 PersistWBC 属性。

在支持 PersistWBC 之前在 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="StorageAccountType" Value="Premium_LRS" />
<Property xsi:type="StringProperty" Name="ResourceGroups" Value="benvaldev5RG3" />
</CustomProperties>
<!--NeedCopy-->

使用这些属性时,如果在 CustomProperties 参数中省略这些属性,请考虑其包含默认值。PersistWBC 属性有两个可能的值:truefalse

如果将 PersistWBC 属性设置为 true,则当 Citrix Virtual Apps and Desktops 管理员使用 Web Studio 关闭计算机时,不会删除回写式缓存磁盘。

如果将 PersistWBC 属性设置为 false,则当 Citrix Virtual Apps and Desktops 管理员使用 Web Studio 关闭计算机时,将删除回写式缓存磁盘。

注意:

如果省略 PersistWBC 属性,则该属性默认设置为 false,并在使用 Web Studio 关闭计算机时删除回写式缓存。

例如,使用 CustomProperties 参数将 PersistWBC 设置为 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="StorageAccountType" Value="Premium_LRS" />
<Property xsi:type="StringProperty" Name="ResourceGroups" Value="benvaldev5RG3" />
<Property xsi:type="StringProperty" Name="PersistWBC" Value="true" />
</CustomProperties>
<!--NeedCopy-->

重要提示:

只能使用 New-ProvScheme PowerShell cmdlet 设置 PersistWBC 属性。在创建后尝试更改预配方案 CustomProperties 不会影响计算机目录以及计算机关闭时回写式缓存磁盘的持久性。

例如,设置 New-ProvScheme 以在将 PersistWBC 属性设置为 true 时使用回写式缓存:

New-ProvScheme
-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=`"StorageAccountType`" Value=`"Premium_LRS`" /><Property xsi:type=`"StringProperty`" Name=`"ResourceGroups`" Value=`"benvaldev5RG3`" /><Property xsi:type=`"StringProperty`" Name=`"PersistWBC`" Value=`"true`" /></CustomProperties>"
-HostingUnitName "adSubnetScale1"
-IdentityPoolName "BV-WBC1-CAT1"
-MasterImageVM "XDHyp:\HostingUnits\adSubnetScale1\image.folder\GoldImages.resourcegroup\W10MCSIO-01_OsDisk_1_a940e6f5bab349019d57ccef65d2c7e3.manageddisk"
-NetworkMapping @{"0"="XDHyp:\HostingUnits\adSubnetScale1\virtualprivatecloud.folder\CloudScale02.resourcegroup\adVNET.virtualprivatecloud\adSubnetScale1.network"}
-ProvisioningSchemeName "BV-WBC1-CAT1"
-ServiceOffering "XDHyp:\HostingUnits\adSubnetScale1\serviceoffering.folder\Standard_D2s_v3.serviceoffering"
-UseWriteBackCache
-WriteBackCacheDiskSize 127
-WriteBackCacheMemorySize 256
<!--NeedCopy-->

使用 MCSIO 提高启动性能

启用 MCSIO 后,可以提高 Azure 和 GCP 托管磁盘的引导性能。请使用 New-ProvScheme 命令中的 PowerShell PersistOSDisk 自定义属性配置此功能。与 New-ProvScheme 关联的选项包括:

<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="StorageAccountType" Value="Premium_LRS" />
<Property xsi:type="StringProperty" Name="Resource <!--NeedCopy-->
``````<!--NeedCopy-->
<!--NeedCopy-->
````````Groups" Value="benvaldev5RG3" />
<Property xsi:type="StringProperty" Name="PersistOsDisk" Value="true" />
</CustomProperties>
<!--NeedCopy-->

要启用此功能,请将 PersistOSDisk 自定义属性设置为 true。例如:

New-ProvScheme
-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=`"StorageAccountType`" Value=`"Premium_LRS`" /><Property xsi:type=`"StringProperty`" Name=`"ResourceGroups`" Value=`"benvaldev5RG3`" /><Property xsi:type=`"StringProperty`" Name=`"PersistOsDisk`" Value=`"true`" /></CustomProperties>"
-HostingUnitName "adSubnetScale1"
-IdentityPoolName "BV-WBC1-CAT1"
-MasterImageVM "XDHyp:\HostingUnits\adSubnetScale1\image.folder\GoldImages.resourcegroup\W10MCSIO-01_OsDisk_1_a940e6f5bab349019d57ccef65d2c7e3.manageddisk"
-NetworkMapping @{"0"="XDHyp:\HostingUnits\adSubnetScale1\virtualprivatecloud.folder\CloudScale02.resourcegroup\adVNET.virtualprivatecloud\adSubnetScale1.network"}
-ProvisioningSchemeName "BV-WBC1-CAT1"
-ServiceOffering "XDHyp:\HostingUnits\adSubnetScale1\serviceoffering.folder\Standard_D2s_v3.serviceoffering"
-UseWriteBackCache
-WriteBackCacheDiskSize 127
-WriteBackCacheMemorySize 256
<!--NeedCopy-->

使用 PowerShell 在创建或更新目录时使用模板规范

可以使用模板规范作为计算机配置文件输入来创建或更新 MCS 计算机目录。为此,您可以使用 Web Studio 或 PowerShell 命令。

对于 Web Studio,请参阅在 Web Studio 中使用 Azure Resource Manager 映像创建计算机目录

使用 PowerShell 命令:

  1. 打开 PowerShell 窗口。
  2. 运行 asnp citrix*
  3. 创建或更新目录。
    • 要创建目录,请执行以下操作:
      1. 对作为计算机配置文件输入的模板规范使用 New-ProvScheme 命令。例如:

        New-ProvScheme -MasterImageVM "XDHyp:/HostingUnits/azure/image.folder/fgthj.resourcegroup/nab-ws-vda_OsDisk_1_xxxxxxxxxxa.manageddisk"
        MachineProfile "XDHyp:/HostingUnits/azure/machineprofile.folder/fgthj.resourcegroup/test.templatespec/V1.templatespecversion"
        -ProvisioningSchemeName <String>
        -HostingUnitName <String>
        -IdentityPoolName <String>
        [-ServiceOffering <String>][-CustomProperties <String>
        [-LoggingId <Guid>]
        [-BearerToken <String>][-AdminAddress <String>]
        [<CommonParameters>]
        <!--NeedCopy-->
        
      2. 完成目录的创建。

    • 要更新目录,请对作为计算机配置文件输入的模板规范使用 Set-ProvScheme 命令。例如:

       Set-ProvScheme -MasterImageVm 'XDHyp://Connections/Azure/East Us.region/vm.folder/MasterDisk.vm'
       MachineProfile 'XDHyp:/HostingUnits/azure/machineprofile.folder/fgthj.resourcegroup/testing.templatespec/V1.templatespecversion'
       [-ProvisioningSchemeName] <String>
       [-CustomProperties <String>][-ServiceOffering <String>] [-PassThru]
       [-LoggingId <Guid>] [-BearerToken <String>][-AdminAddress <String>] [<CommonParameters>]
       <!--NeedCopy-->
      

支持受信任启动的计算机目录

要使用受信任启动成功创建计算机目录,请使用:

  • 具有受信任启动功能的计算机配置文件
  • 支持受信任启动的 VM 大小
  • 支持受信任启动的 Windows VM 版本。目前,Windows 10、Windows 11、2016、2019 和 2022 支持受信任启动。

重要提示:

MCS 支持使用启用了受信任启动的 VM 创建新目录。但是,要更新现有的永久目录和现有的 VM,必须使用 Azure 门户。无法更新非永久目录的受信任启动。有关详细信息,请参阅 Microsoft 文档 Enable Trusted launch on existing Azure VMs(在现有 Azure VM 上启用受信任启动)。

要查看 Citrix Virtual Apps and Desktops 产品清单项目,并确定 VM 大小是否支持受信任启动,请运行以下命令:

  1. 打开 PowerShell 窗口。
  2. 运行 asnp citrix* 以加载特定于 Citrix 的 PowerShell 模块。
  3. 运行以下命令:

    $s = (ls XDHyp:\HostingUnits<name of hosting unit>\serviceoffering.folder"<VM size>.serviceoffering)
    <!--NeedCopy-->
    
  4. 运行 $s | select -ExpandProperty Additionaldata
  5. 检查 SupportsTrustedLaunch 属性的值。

    • 如果 SupportsTrustedLaunch 设置为 True,则 VM 大小支持受信任启动。
    • 如果 SupportsTrustedLaunch 设置为 False,则 VM 大小不支持受信任启动。

根据 Azure 的 PowerShell,您可以使用以下命令来确定支持受信任启动的 VM 大小:

(Get-AzComputeResourceSku | where {$_.Locations.Contains($region) -and ($_.Name -eq "<VM size>") })[0].Capabilities
<!--NeedCopy-->

以下示例描述了运行 Azure PowerShell 命令后 VM 大小是否支持受信任启动。

  • 示例 1:如果 Azure VM 仅支持第 1 代,则该 VM 不支持受信任启动。因此,运行 Azure PowerShell 命令后不会显示 TrustedLaunchDisabled 功能。
  • 示例 2:如果 Azure VM 仅支持第 2 代,并且 TrustedLaunchDisabled 功能设置为 True,则受信任启动不支持第 2 代 VM 大小。
  • 示例 3:如果 Azure VM 仅支持第 2 代,并且在运行 PowerShell 命令后未显示 TrustedLaunchDisabled 功能,则受信任启动时支持第 2 代 VM 大小。

有关 Azure 虚拟机受信任启动的详细信息,请参阅 Microsoft 文档 Trusted launch for Azure virtual machines(Azure 虚拟机的受信任启动)。

使用受信任启动功能创建计算机目录

  1. 创建启用了受信任启动的主映像。请参阅 Microsoft 文档 Trusted launch VM Images(受信任启动 VM 映像)。
  2. 创建安全类型为受信任启动虚拟机的 VM 或模板规范。有关创建 VM 或模板规范的详细信息,请参阅 Microsoft 文档 Deploy a trusted launch VM(部署受信任启动 VM)。
  3. 使用“完整配置”界面或 PowerShell 创建计算机目录。

    • 如果要使用“完整配置”界面,请参阅在“完整配置”界面中使用 Azure Resource Manager 映像创建计算机目录
    • 如果要使用 PowerShell 命令,请使用带有 VM 或模板规范的 New-ProvScheme 命令作为计算机配置文件输入。有关创建目录的命令的完整列表,请参阅创建目录

      使用 VM 作为计算机配置文件输入的 New-ProvScheme 示例:

       New-ProvScheme -CleanOnBoot -HostingUnitName "name" -IdentityPoolName "name" -InitialBatchSizeHint 1
       -MasterImageVM "XDHyp:/HostingUnits/azure/image.folder/fgthj.resourcegroup/nab-ws-vda_OsDisk_1_xxxxxxxxxxa.manageddisk"
       -MachineProfile "XDHyp:\HostingUnits<adnet>\machineprofile.folder<def.resourcegroup><machine profile vm.vm>"
       -ProvisioningSchemeName <String>
       -HostingUnitName <String>
       -IdentityPoolName <String>
       [-ServiceOffering <String>][-CustomProperties <String>]
       [<CommonParameters>]
       <!--NeedCopy-->
      

      使用模板规范作为计算机配置文件输入的 New-ProvScheme 示例:

       New-ProvScheme -CleanOnBoot -HostingUnitName "name" -IdentityPoolName "name" -InitialBatchSizeHint 1
       -MasterImageVM "XDHyp:/HostingUnits/azure/image.folder/fgthj.resourcegroup/nab-ws-vda_OsDisk_1_xxxxxxxxxxa.manageddisk"
       MachineProfile "XDHyp:/HostingUnits/azure/machineprofile.folder/fgthj.resourcegroup/test.templatespec/V1.templatespecversion"
       -ProvisioningSchemeName <String>
       -HostingUnitName <String>
       -IdentityPoolName <String>
       [-ServiceOffering <String>][-CustomProperties <String>]
       [<CommonParameters>]
       <!--NeedCopy-->
      

使用受信任启动创建计算机目录时出错

在以下情况下使用受信任启动创建计算机目录时,您会遇到相应的错误:

场景 错误
如果您在创建非托管目录时选择了计算机配置文件 MachineProfileNotSupportedForUnmanagedCatalog
如果您在创建以非托管磁盘作为主映像的目录时选择支持受信任启动的计算机配置文件 SecurityTypeNotSupportedForUnmanagedDisk
如果您在使用以受信任启动作为安全类型的主映像源创建托管目录时未选择计算机配置文件 MachineProfileNotFoundForTrustedLaunchMasterImage
如果您选择安全类型与主映像的安全类型不同的计算机配置文件 SecurityTypeConflictBetweenMasterImageAndMachineProfile
如果您选择的 VM 大小不支持受信任启动,但在创建目录时使用支持受信任启动的主映像 MachineSizeNotSupportTrustedLaunch

使用计算机配置文件属性值

计算机目录使用在自定义属性中定义的以下属性:

  • 可用性区域
  • 专用主机组 ID
  • 磁盘加密集 ID
  • 操作系统类型
  • 许可证类型
  • 存储类型

如果未显式定义这些自定义属性,则从 ARM 模板规范或 VM(以用作计算机配置文件为准)中设置属性值。此外,如果未指定 ServiceOffering,则从计算机配置文件进行设置。

注意:

如果计算机配置文件中缺少某些属性,并且未在自定义属性中定义,则在适用的情况下将使用这些属性的默认值。

以下部分描述了 CustomProperties 从 MachineProfile 派生定义的所有属性或值时 New-ProvSchemeSet-ProvScheme 下的某些方案。

  • New-ProvScheme 方案

    • MachineProfile 具有所有属性,但未定义 CustomProperties。示例:

      New-ProvScheme -MachineProfile "XDHyp:\HostingUnits\azureunit\machineprofile.folder\azure.resourcegroup\mpA.vm"

      以下值被设置为目录的自定义属性:

       Get-ProvScheme | select CustomProperties
       <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <Property xsi:type="StringProperty" Name="StorageAccountType" Value="<mpA-value>"/>
       <Property xsi:type="StringProperty" Name="OSType" Value="<mpA-value>"/>
       <Property xsi:type="StringProperty" Name="LicenseType" Value="<mpA-value>"/>
       <Property xsi:type="StringProperty" Name="DiskEncryptionSetId" Value="<mpA-value>"/>
       <Property xsi:type="StringProperty" Name="DedicatedHostGroupId" Value="<mpA-value>"/>
       <Property xsi:type="StringProperty" Name="Zones" Value="<mpA-value>"/>
       </CustomProperties>
       <!--NeedCopy-->
      
    • MachineProfile 有一些属性,但未定义 CustomProperties。示例:MachineProfile 只有 LicenseType 和 OsType。

      New-ProvScheme -MachineProfile "XDHyp:\HostingUnits\azureunit\machineprofile.folder\azure.resourcegroup\mpA.vm"

      以下值被设置为目录的自定义属性:

       Get-ProvScheme | select CustomProperties
       <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <Property xsi:type="StringProperty" Name="OSType" Value="<mpA-value>"/>
       <Property xsi:type="StringProperty" Name="LicenseType" Value="<mpA-value>"/>
       </CustomProperties>
       <!--NeedCopy-->
      
    • MachineProfile 和 CustomProperties 定义了所有属性。示例:

      New-ProvScheme -MachineProfile "XDHyp:\HostingUnits\azureunit\machineprofile.folder\azure.resourcegroup\mpA.vm" -CustomProperties $CustomPropertiesA

      自定义属性优先。以下值被设置为目录的自定义属性:

       Get-ProvScheme | select CustomProperties
       <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <Property xsi:type="StringProperty" Name="StorageAccountType" Value="<CustomPropertiesA-value>"/>
       <Property xsi:type="StringProperty" Name="OSType" Value="<CustomPropertiesA-value>"/>
       <Property xsi:type="StringProperty" Name="LicenseType" Value="<CustomPropertiesA-value>"/>
       <Property xsi:type="StringProperty" Name="DiskEncryptionSetId" Value="<CustomPropertiesA-value>"/>
       <Property xsi:type="StringProperty" Name="DedicatedHostGroupId" Value="<CustomPropertiesA-value>"/>
       <Property xsi:type="StringProperty" Name="Zones" Value="<CustomPropertiesA-value>"/>
       </CustomProperties>
       <!--NeedCopy-->
      
    • 有些属性在 MachineProfile 中定义,有些属性在 CustomProperties 中定义。示例:
      • CustomProperties 定义 LicenseType 和 StorageAccountType
      • MachineProfile 定义 LicenseType、OsType 和区域

      New-ProvScheme -MachineProfile "XDHyp:\HostingUnits\azureunit\machineprofile.folder\azure.resourcegroup\mpA.vm" -CustomProperties $CustomPropertiesA

      以下值被设置为目录的自定义属性:

       Get-ProvScheme | select CustomProperties
       <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <Property xsi:type="StringProperty" Name="StorageAccountType" Value="<CustomPropertiesA-value>"/>
       <Property xsi:type="StringProperty" Name="OSType" Value="<mpA-value>"/>
       <Property xsi:type="StringProperty" Name="LicenseType" Value="<CustomPropertiesA-value>"/>
       <Property xsi:type="StringProperty" Name="Zones" Value="<mpA-value>"/>
       </CustomProperties>
       <!--NeedCopy-->
      
    • 有些属性在 MachineProfile 中定义,有些属性在 CustomProperties 中定义。此外,未定义 ServiceOffering。示例:

      • CustomProperties 定义 StorageType
      • MachineProfile 定义 LicenseType
       New-ProvScheme -MachineProfile "XDHyp:\HostingUnits\azureunit\machineprofile.folder\azure.resourcegroup\mp.vm"
       -ServiceOffering "XDHyp:\HostingUnits\azureunit\serviceoffering.folder<explicit-machine-size>.serviceoffering"
       <!--NeedCopy-->
      

      以下值被设置为目录的自定义属性:

       Get-ProvScheme | select ServiceOffering
       serviceoffering.folder<explicit-machine-size>.serviceoffering
      
       Get-ProvScheme | select CustomProperties
       <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <Property xsi:type="StringProperty" Name="StorageAccountType" Value="explicit-storage-type"/>
       <Property xsi:type="StringProperty" Name="LicenseType" Value="value-from-machineprofile"/>
       </CustomProperties>
       <!--NeedCopy-->
      
    • 如果 OsType 既不在 CustomProperties 中,也不在 MachineProfile 中,那么:
      • 该值将从主映像中读取。
      • 如果主映像是非托管磁盘,则 OsType 设置为 Windows。示例:

      New-ProvScheme -MachineProfile "XDHyp:\HostingUnits\azureunit\machineprofile.folder\azure.resourcegroup\mpA.vm" -MasterImageVM "XDHyp:\HostingUnits\azureunit\image.folder\linux-master-image.manageddisk"

      主映像中的值将写入自定义属性,在本例中为 Linux。

       Get-ProvScheme | select CustomProperties
       <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <Property xsi:type="StringProperty" Name="OSType" Value="Linux"/>
       </CustomProperties>
       <!--NeedCopy-->
      
  • Set-ProvScheme 方案

    • 包含以下对象的现有目录:

      • StorageAccountType和 OsType 的 CustomProperties
      • 用于定义区域的 MachineProfile mpA.vm
    • 更新:

      • 用于定义 StorageAccountType 的 MachineProfile mpB.vm
      • 用于定义 LicenseType 和 OsType 的一组新自定义属性 $CustomPropertiesB

      Set-ProvScheme -MachineProfile "XDHyp:\HostingUnits\azureunit\machineprofile.folder\azure.resourcegroup\mpB.vm" -CustomProperties $CustomPropertiesB

      以下值被设置为目录的自定义属性:

       Get-ProvScheme | select CustomProperties
       <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <Property xsi:type="StringProperty" Name="StorageAccountType" Value="<mpB-value>"/>
       <Property xsi:type="StringProperty" Name="OSType" Value="<CustomPropertiesB-value>"/>
       <Property xsi:type="StringProperty" Name="LicenseType" Value="<CustomPropertiesB-value>"/>
           </CustomProperties>
       <!--NeedCopy-->
      
    • 包含以下对象的现有目录:
      • StorageAccountType 和 OsType 的 CustomProperties
      • 用于定义 StorageAccountType 和 LicenseType 的 MachineProfile mpA.vm
    • 更新:
      • 用于定义 StorageAccountType 和 OsType 的一组新自定义属性 $CustomPropertiesB。

      Set-ProvScheme -CustomProperties $CustomPropertiesB

      以下值被设置为目录的自定义属性:

       Get-ProvScheme | select CustomProperties
       <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <Property xsi:type="StringProperty" Name="StorageAccountType" Value="<CustomPropertiesB-value>"/>
       <Property xsi:type="StringProperty" Name="OSType" Value="<CustomPropertiesB-value>"/>
       <Property xsi:type="StringProperty" Name="LicenseType" Value="<mp-A-value>"/>
       </CustomProperties>
       <!--NeedCopy-->
      
    • 包含以下对象的现有目录:
      • StorageAccountType和 OsType 的 CustomProperties
      • 用于定义区域的 MachineProfile mpA.vm
    • 更新:
      • 用于定义 StorageAccountType 和 LicenseType 的 MachineProfile mpB.vm
      • 未指定 ServiceOffering

      Set-ProvScheme -MachineProfile "XDHyp:\HostingUnits\azureunit\machineprofile.folder\azure.resourcegroup\mpB.vm"

      以下值被设置为目录的自定义属性:

       Get-ProvScheme | select ServiceOffering
       serviceoffering.folder<value-from-machineprofile>.serviceoffering
      
       Get-ProvScheme | select CustomProperties
       <CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <Property xsi:type="StringProperty" Name="StorageAccountType" Value="<mpB-value>"/>
       <Property xsi:type="StringProperty" Name="OSType" Value="<prior-CustomProperties-value>"/>
       <Property xsi:type="StringProperty" Name="LicenseType" Value="<mpB-value>"/>
       </CustomProperties>
       <!--NeedCopy-->
      

预配安装了 Azure Monitor 代理的目录 VM

Azure 监视是一项服务,可用于收集、分析和处理来自 Azure 和本地环境的遥测数据。

Azure Monitor 代理 (AMA) 从虚拟机等计算资源收集监视数据,并将数据交付给 Azure Monitor。它当前支持收集事件日志、syslog 和性能指标,并将其发送到 Azure Monitor 指标和 Azure Monitor 日志数据源。

要通过唯一标识监视数据中的 VM 来启用监视,您可以预配安装了 AMA 作为扩展程序的 MCS 计算机目录的 VM。

要求

  • 权限:请确保您拥有关于 Azure 权限中指定的最低 Azure 权限以及以下使用 Azure Monitor 的权限:

    • Microsoft.Compute/virtualMachines/extensions/read
    • Microsoft.Compute/virtualMachines/extensions/write
    • Microsoft.Insights/DataCollectionRuleAssociations/Read
    • Microsoft.Insights/dataCollectionRuleAssociations/write
    • Microsoft.Insights/DataCollectionRules/Read
  • 数据收集规则:在 Azure 门户中设置数据收集规则。有关设置 DCR 的信息,请参阅创建数据收集规则。DCR 是特定于平台的(Windows 或 Linux)。请务必根据所需平台创建 DCR。 AMA 使用数据收集规则 (DCR) 来管理 VM 等资源与数据源(例如 Azure Monitor 指标和 Azure Monitor 日志)之间的映射。
  • 默认工作区:在 Azure 门户中创建工作区。有关创建工作区的信息,请参阅创建日志分析工作区。当您收集日志和数据时,信息存储在工作区中。工作区具有唯一的工作区 ID 和资源 ID。对于给定的资源组,工作区名称必须唯一。创建工作区后,请配置数据源和解决方案以将其数据存储在工作区中。
  • 将 Monitor 扩展程序列入白名单:扩展程序 AzureMonitorWindowsAgentAzureMonitorLinuxAgent 是 Citrix 定义的白名单扩展程序。要查看列入白名单的扩展程序列表,请使用 PoSH 命令 Get-ProvMetadataConfiguration
  • 主映像:Microsoft 建议在使用现有计算机创建新计算机之前从现有计算机中删除扩展程序。如果不删除扩展程序,可能会导致出现剩余文件和意外行为。有关详细信息,请参阅如果从现有 VM 重新创建 VM

要预配启用了 AMA 的目录 VM,请执行以下操作:

  1. 设置计算机配置文件模板。

    • 如果您想使用 VM 作为计算机配置文件模板:

      1. 在 Azure 门户中创建 VM。
      2. 打开 VM 的电源。
      3. 将 VM 添加到资源下的数据收集规则中。这会调用模板 VM 上的代理安装。

    注意:

    如果必须创建 Linux 目录,请设置一台 Linux 计算机。

    • 如果您想使用模板规范作为计算机配置文件模板:

      1. 设置模板规范。
      2. 将以下扩展程序和数据收集规则关联添加到生成的模板规范中:

        {
        "type": "Microsoft.Compute/virtualMachines/extensions",
        "apiVersion": "2022-03-01",
        "name": "<vm-name>/AzureMonitorWindowsAgent",
        "dependsOn": [
            "Microsoft.Compute/virtualMachines/<vm-name>"
        ],
        "location": "<azure-region>",
        "properties": {
            "publisher": "Microsoft.Azure.Monitor",
            "type": "AzureMonitorWindowsAgent",
            "typeHandlerVersion": "1.0",
            "autoUpgradeMinorVersion": true,
            "enableAutomaticUpgrade": true
        }
        },
         {
            "type": "Microsoft.Insights/dataCollectionRuleAssociations",
            "apiVersion": "2021-11-01",
            "name": "<associatio-name>",
            "scope": "Microsoft.Compute/virtualMachines/<vm-name>",
            "dependsOn": [
             "Microsoft.Compute/virtualMachines/<vm-name>",
            "Microsoft.Compute/virtualMachines/<vm-name>/extensions/AzureMonitorWindowsAgent"
            ],
            "properties": {
               "description": "Association of data collection rule. Deleting this association will break the data collection for this Arc server.",
             "dataCollectionRuleId": "/subscriptions/<azure-subscription>/resourcegroups/<azure-resource-group>/providers/microsoft.insights/datacollectionrules/<azure-data-collection-rule>"
             }
            }
        <!--NeedCopy-->
        
  2. 创建或更新现有的 MCS 计算机目录。

    • 要创建新 MCS 目录,请执行以下操作:

      1. 在“完整配置”界面中选择该 VM 或模板规范作为计算机配置文件。
      2. 继续执行后续步骤以创建目录。
    • 要更新现有 MCS 目录,请使用以下 PoSH 命令:

      • 要让新 VM 获取更新后的计算机配置文件模板,请运行以下命令:

         Set-ProvScheme -ProvisioningSchemeName "name"
         -MachineProfile "XDHyp:\HostingUnits\Unit1\machineprofile.folder\abc.resourcegroup\ab-machine-profile.vm"
         <!--NeedCopy-->
        
      • 要使用更新后的计算机配置文件模板更新现有 VM,请执行以下操作:

         Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName my-catalog -StartsNow -DurationInMinutes -1
         <!--NeedCopy-->
        
  3. 打开目录 VM 的电源。
  4. 转至 Azure 门户,检查 VM 上是否安装了 Monitor 扩展程序以及 VM 是否显示在 DCR 的资源下。几分钟后,监视数据将显示在 Azure Monitor 上。

故障排除

有关 Azure Monitor 代理的故障排除指南中的信息,请参阅以下内容:

使用客户管理的加密密钥创建计算机目录

有关如何使用客户管理的加密密钥创建计算机目录的详细步骤如下:

  1. 打开 PowerShell 窗口。
  2. 运行 asnp citrix* 以加载 Citrix 特定的 PowerShell 模块。
  3. 输入 cd xdhyp:/
  4. 输入 cd .\HostingUnits\(your hosting unit)
  5. 输入 cd diskencryptionset.folder
  6. 输入 dir 以获取磁盘加密集列表。
  7. 复制磁盘加密集的 ID。
  8. 创建包含磁盘加密集的 ID 的自定义属性字符串。例如:

    $customProperties = "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`">
    <Property xsi:type=`"StringProperty`" Name=`"StorageAccountType`" Value=`"Standard_LRS`" />
    <Property xsi:type=`"StringProperty`" Name=`"persistWBC`" Value=`"False`" />
    <Property xsi:type=`"StringProperty`" Name=`"PersistOsDisk`" Value=`"false`" />
    <Property xsi:type=`"StringProperty`" Name=`"UseManagedDisks`" Value=`"true`" />
    <Property xsi:type=`"StringProperty`" Name=`"DiskEncryptionSetId`" Value=`"/subscriptions/0xxx4xxx-xxb-4bxx-xxxx-xxxxxxxx/resourceGroups/abc/providers/Microsoft.Compute/diskEncryptionSets/abc-des`"/>
    </CustomProperties>
    <!--NeedCopy-->
    
  9. 创建标识池(如果尚未创建)。例如:

    New-AcctIdentityPool -IdentityPoolName idPool -NamingScheme ms## -Domain def.local -NamingSchemeType Numeric
    <!--NeedCopy-->
    
  10. 运行 New-ProvScheme 命令:例如:

    New-ProvScheme -CleanOnBoot -HostingUnitName "name" -IdentityPoolName "name" -InitialBatchSizeHint 1
    -MasterImageVM "XDHyp:\HostingUnits\azure-res2\image.folder\def.resourcegroup\def.snapshot"
    -NetworkMapping @{"0"="XDHyp:\HostingUnits\azure-res2\virtualprivatecloud.folder\def.resourcegroup\def-vnet.virtualprivatecloud\subnet1.network"}
    -ProvisioningSchemeName "name"
    -ServiceOffering "XDHyp:\HostingUnits\azure-res2\serviceoffering.folder\Standard_DS2_v2.serviceoffering"
    -MachineProfile "XDHyp:\HostingUnits<adnet>\machineprofile.folder<def.resourcegroup><machine profile vm.vm>"
    -CustomProperties $customProperties
    <!--NeedCopy-->
    
  11. 完成计算机目录的创建。

使用双重加密创建计算机目录

可以使用 Web Studio 和 PowerShell 命令创建和更新具有双重加密的计算机目录。

有关如何使用双重加密创建计算机目录的详细步骤如下:

  1. 使用平台管理的密钥和客户管理的密钥创建 Azure Key Vault 和 DES。有关如何创建 Azure Key Vault 和 DES 的信息,请参阅使用 Azure 门户为托管磁盘启用静态双重加密
  2. 要浏览托管连接中可用的 DiskEncryptionSets,请执行以下操作:
    1. 打开 PowerShell 窗口。
    2. 运行以下 PowerShell 命令:
      1. asnp citrix*
      2. cd xdhyp:
      3. cd HostingUnits
      4. cd YourHostingUnitName(例如 azure-east)
      5. cd diskencryptionset.folder
      6. dir

    可以使用 DiskEncryptionSet 的 ID 通过自定义属性创建或更新目录。

  3. 如果您想使用计算机配置文件工作流程,请创建 VM 或模板规范作为计算机配置文件输入。
    • 如果您想使用 VM 作为计算机配置文件输入:
      1. 在 Azure 门户中创建 VM。
      2. 导航到磁盘 > 密钥管理,直接使用任何 DiskEncryptionSetID 加密 VM。
    • 如果您想使用模板规范作为计算机配置文件输入:
      1. 在模板中的 properties>storageProfile>osDisk>managedDisk 下,添加 diskEncryptionSet 参数并添加双重加密 DES 的 ID。
  4. 然后,创建计算机目录。
    • 如果使用 Web Studio,则除了创建计算机目录中的步骤外,还请执行以下操作之一。
      • 如果您不使用基于计算机配置文件的工作流程,请在磁盘设置页面上,选择使用以下密钥在每台计算机上加密数据。然后,从下拉列表中选择您的双重加密 DES。继续创建目录。
      • 如果使用计算机配置文件工作流程,请在主映像页面上,选择主映像和计算机配置文件。确保计算机配置文件的属性中包含磁盘加密集 ID。

      在目录中创建的所有计算机均使用与您选择的 DES 关联的密钥进行双重加密。

    • 如果使用 PowerShell 命令,请执行以下操作之一:
      • 如果不使用基于计算机配置文件的工作流程,请在 New-ProvScheme 命令中添加自定义属性 DiskEncryptionSetId。例如:

         New-ProvScheme -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="StorageAccountType" Value="Premium_LRS" />
         <Property xsi:type="StringProperty" Name="DiskEncryptionSetId" Value="/subscriptions/12345678-xxxx-1234-1234-123456789012/resourceGroups/Sample-RG/providers/Microsoft.Compute/diskEncryptionSets/SampleEncryptionSet" />
         </CustomProperties>'
         -HostingUnitName "Redacted"
         -IdentityPoolName "Redacted"
         -InitialBatchSizeHint 1
         -MasterImageVM "Redacted"
         -NetworkMapping @{"0"="Redacted"}
         -ProvisioningSchemeName "Redacted"
         -ServiceOffering "Redacted"
         <!--NeedCopy-->
        
      • 如果使用基于计算机配置文件的工作流程,请在 New-ProvScheme 命令中使用计算机配置文件输入。例如:

         New-ProvScheme -CleanOnBoot
         -HostingUnitName azure-east
         -IdentityPoolName aio-ip
         -InitialBatchSizeHint 1
         -MasterImageVM XDHyp:\HostingUnits\azure-east\image.folder\abc.resourcegroup\fgb-vda-snapshot.snapshot
         -NetworkMapping @{"0"="XDHyp:\HostingUnits\azure-east\virtualprivatecloud.folder\apa-resourceGroup.resourcegroup\apa-resourceGroup-vnet.virtualprivatecloud\default.network"}
         -ProvisioningSchemeName aio-test
         -MachineProfile XDHyp:\HostingUnits\azure-east\machineprofile.folder\abc.resourcegroup\abx-mp.templatespec\1.0.0.templatespecversion
         <!--NeedCopy-->
        
  5. 使用 Remote PowerShell SDK 完成目录的创建。有关如何使用 Remote PowerShell SDK 创建目录的信息,请参阅 https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/creating-a-catalog/。在目录中创建的所有计算机均使用与您选择的 DES 关联的密钥进行双重加密。

将未加密的目录转换为使用双重加密

只有在计算机目录之前未加密的情况下,才能更新计算机目录的加密类型(使用自定义属性或计算机配置文件)。

  • 如果不使用基于计算机配置文件的工作流程,请在 Set-ProvScheme 命令中添加自定义属性 DiskEncryptionSetId。例如:

     Set-ProvScheme -ProvisioningSchemeName "SampleProvSchemeName"
     -CustomProperties '<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <Property xsi:type="StringProperty" Name="DiskEncryptionSetId" Value="/subscriptions/12345678-xxxx-1234-1234-123456789012/resourceGroups/Sample-RG/providers/Microsoft.Compute/diskEncryptionSets/SampleEncryptionSet" />
     </CustomProperties>'
     <!--NeedCopy-->
    
  • 如果使用基于计算机配置文件的工作流程,请在 Set-ProvScheme 命令中使用计算机配置文件输入。例如:

     Set-ProvScheme -ProvisioningSchemeName mxiao-test -MachineProfile XDHyp:\HostingUnits\azure-east\machineprofile.folder\aelx.resourcegroup\elx-mp.templatespec\1.0.0.templatespecversion
     <!--NeedCopy-->
    

成功后,您在目录中添加的所有新 VM 都将使用与您选择的 DES 关联的密钥进行双重加密。

验证目录是否经过双重加密

  • 在 Web Studio 中:

    1. 导航到计算机目录
    2. 选择要验证的目录。单击屏幕底部附近的模板属性选项卡。
    3. Azure 详细信息下,验证磁盘加密集中的磁盘加密集 ID。如果目录的 DES ID 为空,则目录未加密。
    4. 在 Azure 门户中,验证与 DES ID 关联的 DES 的加密类型是否为平台管理的密钥和客户管理的密钥。
  • 使用 PowerShell 命令:

    1. 打开 PowerShell 窗口。
    2. 运行 asnp citrix* 以加载 Citrix 特定的 PowerShell 模块。
    3. 使用 Get-ProvScheme 可获取您的计算机目录信息。例如:

      Get-ProvScheme -ProvisioningSchemeName "SampleProvSchemeName"
      <!--NeedCopy-->
      
    4. 检索计算机目录的 DES ID 自定义属性。例如:

      <Property xsi:type="StringProperty" Name="DiskEncryptionSetId" Value="/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/Sample-RG/providers/Microsoft.Compute/diskEncryptionSets/SampleEncryptionSet" />
      <!--NeedCopy-->
      
    5. 在 Azure 门户中,验证与 DES ID 关联的 DES 的加密类型是否为平台管理的密钥和客户管理的密钥。

使用 Azure 临时磁盘创建目录

要使用临时磁盘,必须在运行 New-ProvScheme 时将自定义属性 UseEphemeralOsDisk 设置为 true

注意:

如果自定义属性 UseEphemeralOsDisk 设置为 false 或未指定值,则所有预配的 VDA 将继续使用预配的操作系统磁盘。

下面是要在预配方案中使用的自定义属性的示例集:

"CustomProperties": [
            {
                "Name": "UseManagedDisks",
                "Value": "true"
            },
            {
                "Name": "StorageType",
                "Value": "Standard_LRS"
            },
            {
                "Name": "UseSharedImageGallery",
                "Value": "true"
            },
            {
                "Name": "SharedImageGalleryReplicaRatio",
                "Value": "40"
            },
            {
                "Name": "SharedImageGalleryReplicaMaximum",
                "Value": "10"
            },
            {
                "Name": "LicenseType",
                "Value": "Windows_Server"
            },
            {
                "Name": "UseEphemeralOsDisk",
                "Value": "true"
            }
        ],
<!--NeedCopy-->

为目录配置临时磁盘

要为目录配置 Azure 临时操作系统磁盘,请使用 Set-ProvScheme 中的 UseEphemeralOsDisk 参数。将 UseEphemeralOsDisk 参数的值设置为 true

注意:

要使用此功能,还必须启用参数 UseManagedDisksUseSharedImageGallery

例如:

Set-ProvScheme -ProvisioningSchemeName catalog-name -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="UseSharedImageGallery" Value="true" />
<Property xsi:type="StringProperty" Name="UseEphemeralOsDisk" Value="true" />
</CustomProperties>'
<!--NeedCopy-->

临时磁盘的重要注意事项

要使用 New-ProvScheme 预配临时操作系统磁盘,请注意以下限制:

  • 用于目录的 VM 大小必须支持临时操作系统磁盘。
  • 与 VM 大小关联的缓存磁盘或临时磁盘的大小必须大于或等于操作系统磁盘的大小。
  • 临时磁盘大小必须大于缓存磁盘大小。

还要注意以下情况下的问题:

  • 创建预配方案。
  • 修改预配方案。
  • 更新映像。

Azure 专用主机

可以使用 MCS 在 Azure 专用主机上预配 VM。在 Azure 专用主机上预配 VM 之前:

  • 创建主机组。
  • 在该主机组中创建主机。
  • 确保有足够的主机容量用于创建目录和虚拟机。

可以创建具有通过以下 PowerShell 脚本定义的主机租赁的计算机目录:

New-ProvScheme <otherParameters> -CustomProperties '<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <Property xsi:type="StringProperty" Name="HostGroupId" Value="myResourceGroup/myHostGroup" />
 ...other Custom Properties...
 </CustomProperties>
<!--NeedCopy-->

使用 MCS 在 Azure 专用主机上预配虚拟机时,请注意:

  • 专用主机是目录属性,一旦创建了目录,则无法进行更改。Azure 当前不支持专用租赁。
  • 使用 HostGroupId 参数时,需要在托管单元所在区域中预配置的 Azure 主机组。
  • Azure 自动放置是必需的。此功能请求加载与主机组关联的订阅。有关详细信息,请参阅在 Azure 专用主机上设置 VM 规模 - 公共预览版。如果未启用自动放置,MCS 在目录创建过程中会引发错误。

选择用于创建计算机目录的映像时,可以选择在 Azure Compute Gallery 中创建的映像。

要显示这些图片,您必须:

  1. 配置 Citrix Virtual Apps and Desktops 站点。
  2. 连接到 Azure Resource Manager。
  3. 在 Azure 门户中,创建资源组。有关详细信息,请参阅使用门户创建 Azure Compute Gallery
  4. 在资源组中,创建 Azure Compute Gallery。
  5. 在 Azure Compute Gallery 中,创建映像定义。
  6. 在映像定义中,创建映像版本。

使用以下 PowerShell 命令通过 Azure Compute Gallery 中的映像创建或更新计算机目录:

  1. 打开 PowerShell 窗口。
  2. 运行 asnp citrix* 以加载 Citrix 特定的 PowerShell 模块。
  3. 选择一个资源组,然后列出该资源组的所有库。

    Get-ChildItem -LiteralPath @("XDHyp:\HostingUnits\testresource\image.folder\sharedImageGalleryTest.resourcegroup")
    <!--NeedCopy-->
    
  4. 选择一个库,然后列出该库的所有映像定义。

    Get-ChildItem -LiteralPath @("XDHyp:\HostingUnits\testresource\image.folder\sharedImageGalleryTest.resourcegroup\sharedImageGallery.sharedimagegallery")
    <!--NeedCopy-->
    
  5. 选择一个映像定义,然后列出该映像定义的所有映像版本。

    Get-ChildItem -LiteralPath @("XDHyp:\HostingUnits\testresource\image.folder\sharedImageGalleryTest.resourcegroup\sharedImageGallery.sharedimagegallery\sigtestimage.imagedefinition")
    <!--NeedCopy-->
    
  6. 使用以下元素创建和更新 MCS 目录:
    • 资源组
    • 库映像定义
    • 库映像版本

    有关如何使用 Remote PowerShell SDK 创建目录的信息,请参阅 https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/creating-a-catalog/

配置共享映像库

使用 New-ProvScheme 命令可在支持共享映像库的情况下创建预配方案。使用 Set-ProvScheme 命令为预配方案启用或禁用此功能,并更改副本比率和副本最大值。

在预配方案中添加了三个自定义属性以支持共享映像库功能:

UseSharedImageGallery

  • 定义是否使用共享映像库存储已发布的映像。如果设置为 True,则映像将存储为共享映像库映像,否则映像将存储为快照。
  • 有效值为 TrueFalse
  • 如果未定义属性,则默认值为 False

SharedImageGalleryReplicaRatio

  • 定义计算机与库映像版本副本的比率。
  • 有效值为大于 0 的整数。
  • 如果未定义该属性,则将使用默认值。永久操作系统磁盘的默认值为 1000,非永久操作系统磁盘的默认值为 40。

SharedImageGalleryReplicaMaximum

  • 定义每个库映像版本的最大副本数。
  • 有效值为大于 0 的整数。
  • 如果未定义该属性,则默认值为 10。
  • Azure 当前支持多达 10 个库映像单个版本的副本。如果将属性设置为大于 Azure 支持的值,MCS 将尝试使用指定值。Azure 将生成一个错误,MCS 日志之后将当前副本计数保持不变。

提示:

使用共享映像库为 MCS 预配的目录存储已发布的映像时,MCS 会根据目录中的计算机数、副本比率和副本最大值来设置库映像版本副本计数。副本计数的计算方法如下:将目录中的计算机数除以副本比率(四舍五入到最接近的整数值),然后将该值最高限定到最大副本计数。例如,副本比率为 20,最大值为 5,0—20 台计算机将 创建 1 个副本,21—40 台将创建 2 个副本,41-60 台将创建 3 个副本,61—80 台将创建 4 个副本,81 台以上将创建 5 个副本。

用例:更新共享映像库副本比率和副本最大值

现有计算机目录使用共享映像库。使用 Set-ProvScheme 命令更新目录中的所有现有计算机以及将来任何计算机的自定义属性:

Set-ProvScheme -ProvisioningSchemeName catalog-name -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="Standard_LRS"/> <Property xsi:type="StringProperty" Name="UseManagedDisks" Value="True"/> <Property xsi:type="StringProperty" Name="UseSharedImageGallery" Value="True"/> <Property xsi:type="IntProperty" Name="SharedImageGalleryReplicaRatio" Value="30"/> <Property xsi:type="IntProperty" Name="SharedImageGalleryReplicaMaximum" Value="20"/></CustomProperties>'
<!--NeedCopy-->

用例:将快照目录转换为共享映像库目录

对于此用例:

  1. UseSharedImageGallery 标志设置为 True 的情况下运行 Set-ProvScheme。(可选)包括 SharedImageGalleryReplicaRatioSharedImageGalleryReplicaMaximum 属性。
  2. 更新目录。
  3. 关闭并打开计算机电源以强制更新。

例如:

Set-ProvScheme -ProvisioningSchemeName catalog-name -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="Standard_LRS"/> <Property xsi:type="StringProperty" Name="UseManagedDisks" Value="True"/> <Property xsi:type="StringProperty" Name="UseSharedImageGallery" Value="True"/> <Property xsi:type="IntProperty" Name="SharedImageGalleryReplicaRatio" Value="30"/> <Property xsi:type="IntProperty" Name="SharedImageGalleryReplicaMaximum" Value="20"/></CustomProperties>'
<!--NeedCopy-->

提示:

参数 SharedImageGalleryReplicaRatioSharedImageGalleryReplicaMaximum 不是必需的。Set-ProvScheme 命令完成后,尚未创建共享映像库映像。将目录配置为使用库后,下一个目录更新操作会将已发布的映像存储在库中。目录更新命令创建库、库映像和映像版本。关闭并打开计算机会对其进行更新,此时副本计数将在适当的情况下更新。自此以后,所有现有的非持久计算机都将使用共享映像库映像重置,并使用该映像创建所有新预配的计算机。旧快照会在几个小时内自动清理。

用例:将共享映像库目录转换为快照目录

对于此用例:

  1. UseSharedImageGallery 标志设置为 False 或未定义的情况下运行 Set-ProvScheme
  2. 更新目录。
  3. 关闭并打开计算机电源以强制更新。

例如:

Set-ProvScheme -ProvisioningSchemeName catalog-name -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="Standard_LRS"/> <Property xsi:type="StringProperty" Name="UseManagedDisks" Value="True"/> <Property xsi:type="StringProperty" Name="UseSharedImageGallery" Value="False"/></CustomProperties>'
<!--NeedCopy-->

提示:

与从快照更新到共享映像库目录不同,每台计算机的自定义数据都尚未更新以反映新的自定义属性。运行以下命令以查看原始的共享映像库自定义属性:Get-ProvVm -ProvisioningSchemeName catalog-nameSet-ProvScheme 命令完成后,尚未创建映像快照。将目录配置为不使用库后,下一个目录更新操作将已发布的映像存储为快照。自此以后,所有现有的非持久计算机都将使用快照重置,并且所有新预配的计算机都是基于该快照创建的。关闭并打开计算机会对其进行更新,此时自定义计算机数据将更新以反映 UseSharedImageGallery 设置为 False。旧的共享映像库资产(库、映像和版本)将在几个小时内自动清理。

将计算机预配到指定的可用性区域中

可以将计算机预配到 Azure 环境中的特定可用性区域中。可以使用 PowerShell 来实现。

注意:

如果未指定任何区域,MCS 将允许 Azure 将计算机放置在区域内。如果指定了多个区域,MCS 会在这些区域之间随机分配计算机。

通过 PowerShell 配置可用性区域

使用 PowerShell,您可以使用 Get-Item 查看产品清单项目。例如,要查看美国东部地区 Standard_B1ls服务产品,请执行以下操作:

$serviceOffering = Get-Item -path "XDHyp:\Connections\my-connection-name\East US.region\serviceoffering.folder\Standard_B1ls.serviceoffering"
<!--NeedCopy-->

要查看区域,请使用该项目的 AdditionalData 参数:

$serviceOffering.AdditionalData

如果未指定可用性区域,计算机的预配方式没有任何变化。

要通过 PowerShell 配置可用性区域,请使用随 New-ProvScheme 操作提供的区域自定义属性。区域属性定义了要在其中预配计算机的可用性区域列表。这些区域可以包括一个或多个可用性区域。例如,<Property xsi:type="StringProperty" Name="Zones" Value="1, 3"/> 对于区域 1 和 3。

使用 Set-ProvScheme 命令可更新预配方案的区域。

如果提供的区域无效,则不会更新预配方案,并且会显示一条错误消息,提供有关如何修复无效命令的说明。

提示:

如果指定了无效的自定义属性,则不会更新预配方案,并显示相关的错误消息。

存储类型

为 Azure 环境中使用 MCS 的虚拟机选择不同的存储类型。对于目标 VM,MCS 支持:

  • 操作系统磁盘:高级 SSD、SSD 或 HDD
  • 回写式缓存磁盘:高级 SSD、SSD 或 HDD

使用这些存储类型时,请注意以下事项:

  • 确保您的 VM 支持选定的存储类型。
  • 如果您的配置使用 Azure 临时磁盘,则无法获得回写式缓存磁盘设置的选项。

提示:

StorageType 已针对操作系统类型和存储帐户进行了配置。WBCDiskStorageType 已针对写回式缓存存储类型进行了配置。对于常见目录,StorageType 是必需的。如果未配置 WBCDiskStorageType,则会将 StorageType 用作 WBCDiskStorageType 的默认值。

如果未配置 WBCDiskStorageType,则会将 StorageType 用作 WBCDiskStorageType 的默认值

配置存储类型

要配置 VM 的存储类型,请使用 New-ProvScheme 中的 StorageType 参数。将 StorageType 参数的值设置为受支持的存储类型之一。

下面是预配方案中的一组示例 CustomProperties 参数:

Set-ProvScheme -ProvisioningSchemeName catalog-name -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="Premium_LRS" />
<Property xsi:type="StringProperty" Name="LicenseType" Value="Windows_Client" />
</CustomProperties>'
<!--NeedCopy-->

启用区域冗余存储

在创建目录期间,您可以选择区域冗余存储。它跨多个可用性区域同步复制您的 Azure 托管磁盘,这允许您利用其他区域中的冗余从一个区域中的故障中恢复。

可以在存储类型自定义属性中指定 Premium_ZRSStandardSSD_ZRS。ZRS 存储可以使用现有的自定义属性或者通过 MachineProfile 模板进行设置。带 -StartsNow-DurationInMinutes -1 参数的 Set-ProvVMUpdateTimeWindow 命令还支持 ZRS 存储,您可以将现有计算机从 LRS 存储更改为 ZRS 存储。

限制:

  • 仅支持托管磁盘
  • 仅支持高级和标准固态驱动器 (SSD)
  • 不支持 StorageTypeAtShutdown
  • 仅在某些地区可用。
  • 大规模创建 ZRS 磁盘时,Azure 的性能会下降。因此,首次打开电源时,请小批量打开计算机(一次少于 300 台计算机)

将区域冗余存储设置为磁盘存储类型

您可以在初始目录创建期间选择区域冗余存储,也可以更新现有目录中的存储类型。

使用 PowerShell 命令选择区域冗余存储

使用 New-ProvScheme PowerShell 命令在 Azure 中创建新目录时,请使用 Standard_ZRS 作为 StorageAccountType 中的值。 例如:

<Property xsi:type="StringProperty" Name="StorageAccountType" Value="StandardSSD_ZRS" />
<!--NeedCopy-->

设置此值时,它将由动态 API 进行验证,以确定该值是否可以正确使用。如果 ZRS 的使用对您的目录无效,则可能会出现以下异常:

  • StorageTypeAtShutdownNotSupportedForZrsDisks:StorageTypeAtShutdown 自定义属性不能用于 ZRS 存储。
  • StorageAccountTypeNotSupportedInRegion:如果您尝试在不支持 ZRS 的 Azure 区域中使用 ZRS 存储,则会出现此异常
  • ZrsRequiresManagedDisks:区域冗余存储只能用于托管磁盘。

可以使用以下自定义属性设置磁盘存储类型:

  • StorageType
  • WBCDiskStorageType
  • IdentityDiskStorageType

注意:

在创建目录期间,如果未设置自定义属性,则将使用计算机配置文件的操作系统磁盘 StorageType

从计算机配置文件中捕获 VM 和 NIC 上的诊断设置

在创建计算机目录、更新现有计算机目录和更新现有 VM 过程中,可以从计算机配置文件中捕获 VM 和 NIC 上的诊断设置。

可以创建 VM 或模板规范作为计算机配置文件来源。

关键步骤

  1. 在 Azure 中设置所需的 ID。必须在模板规范中提供这些 ID。

    • 存储帐户
    • 日志分析工作区
    • 采用标准分层定价的事件中心命名空间
  2. 创建计算机配置文件源。
  3. 创建新计算机目录、更新现有目录或更新现有 VM。

在 Azure 中设置所需的 ID

在 Azure 中设置以下选项之一:

  • 存储帐户
  • 日志分析工作区
  • 采用标准分层定价的事件中心命名空间

设置存储帐户

在 Azure 中创建标准存储帐户。在模板规范中,将存储帐户的完整资源 ID 指定为 storageAccountId

将 VM 设置为将数据记录到存储帐户后,可以在 insights-metrics-pt1m 容器下找到数据。

设置日志分析工作区

创建日志分析工作区。在模板规范中,将日志分析工作区的完整资源 ID 作为工作区 ID。

将 VM 设置为将数据记录到工作区后,即可在 Azure 中的“Logs”(日志)下查询数据。可以在 Azure 中的“Logs”(日志)下运行以下命令,以显示资源记录的所有指标的计数:

`AzureMetrics | summarize Count=count() by ResourceId# 创建 Microsoft Azure 目录

创建计算机目录介绍了用于创建计算机目录的向导。以下信息涵盖了特定于 Microsoft Azure Resource Manager 云环境的详细信息。

注意:

在创建 Microsoft Azure 目录之前,您需要完成创建与 Microsoft Azure 的连接。请参阅与 Microsoft Azure 的连接

创建计算机目录

可以通过两种方式创建计算机目录:

在 Web Studio 中使用 Azure Resource Manager 映像创建计算机目录

映像可以是磁盘、快照或 Azure Compute Gallery 中用于在计算机目录中创建 VM 的映像定义的映像版本。创建计算机目录之前,请在 Azure Resource Manager 中创建一个映像。有关映像的常规信息,请参阅创建计算机目录

注意:

不支持使用与在主机连接中配置的区域不同的主映像。使用 Azure Compute Gallery 将主映像复制到所需区域。

在映像准备期间,将在原始 VM 的基础上创建准备 VM。此准备 VM 已与网络断开连接。为了断开网络与准备 VM 的连接,需要创建一个网络安全组以拒绝所有入站和出站流量。将为每个目录自动创建一次网络安全组。网络安全组的名称为 <!JEKYLL@5300@0>,其中 GUID 是随机生成的。例如,<!JEKYLL@5300@1>。

在计算机目录创建向导中,执行以下操作:

  • 计算机类型计算机管理页面不包含 Azure 特定的信息。请按照创建计算机目录一文中的指导进行操作。

  • 主映像页面上,选择要用作目录中的所有计算机的主映像的映像。此时将出现选择映像向导。

    1. (仅适用于使用租户内或租户之间的共享映像配置的连接)选择映像所在的订阅。
    2. 选择资源组。
    3. 导航到 Azure VHD、Azure Compute Gallery 或 Azure 映像版本。如果需要,请为所选映像添加备注。

    选择映像时,请注意以下事项:

    • 验证映像上是否安装了 Citrix VDA。
    • 如果您选择连接到某个 VM 的 VHD,则必须先关闭该 VM,然后才能继续执行下一步操作。

    注意:

    • 与在目录中创建计算机的连接(主机)对应的订阅用绿点表示。其他订阅是指那些与该订阅共享了 Azure Compute Gallery 的订阅。在这些订阅中,仅显示共享映像。有关如何配置共享订阅的信息,请参阅在租户内(跨订阅)共享映像在租户之间共享映像
    • 选择启用了受信任启动的映像或快照时,必须使用安全类型设置为“受信任启动”的计算机配置文件。然后,您可以通过在计算机配置文件中指定其值来启用或禁用 SecureBoot 和 vTPM。共享映像库不支持受信任启动。有关 Azure 可信启动的信息,请参阅 https://docs.microsoft.com/en-us/azure/virtual-machines/trusted-launch
    • 您可以在 Windows 上使用具有受信任启动功能的临时操作系统磁盘创建预配方案。当您选择具有受信任启动功能的映像时,必须选择启用了 vTPM 的具有受信任启动功能的计算机配置文件。要使用临时操作系统磁盘创建计算机目录,请参阅如何使用临时操作系统磁盘创建计算机
    • 当映像复制正在进行时,您可以继续选择映像作为主映像并完成设置。但是,在复制映像时创建目录可能需要更长时间才能完成。MCS 要求复制在目录创建开始的一小时内完成。如果复制超时,目录创建将失败。您可以在 Azure 中验证复制状态。请在复制仍处于挂起状态或在复制完成后重试。
    • 在 Azure 中为计算机目录选择主映像时,MCS 会根据您选择的主映像和计算机配置文件识别操作系统类型。如果 MCS 无法识别该类型,请选择与主映像匹配的操作系统类型。
    • 您可以使用 Gen2 映像来预配 Gen2 VM 目录,以缩短启动时间。但是,不支持使用 Gen1 映像创建 Gen2 计算机目录。同样,也不支持使用 Gen2 映像创建 Gen1 计算机目录。此外,没有版本信息的任何旧映像都是 Gen1 映像。

    选择是否希望目录中的 VM 继承计算机配置文件中的配置。默认情况下,使用计算机配置文件(对于 Azure Active Directory 是必需的) 复选框处于选中状态。单击选择计算机配置文件,从资源组列表中浏览到 VM 或 ARM 模板规范。

    验证 ARM 模板规范,确保其是否能够用作计算机配置文件来创建计算机目录。有两种方法可以验证 ARM 模板规范:

    • 从资源组列表中选择 ARM 模板规范后,单击下一步。如果 ARM 模板规范有错误,则会出现错误消息。
    • 运行以下 PowerShell 命令之一:
      • <!JEKYLL@5300@2>
      • <!JEKYLL@5300@3>

    VM 可以从计算机配置文件中继承的配置示例包括:

    • 加速的网络连接
    • 启动诊断
    • 主机磁盘缓存(与操作系统 和 MCSIO 磁盘有关)
    • 计算机大小(除非另有说明)
    • 置于 VM 上的标记

    创建目录后,可以查看映像从计算机配置文件继承的配置。在计算机目录节点上,选择目录以在下方的窗格中查看其详细信息。然后,单击模板属性选项卡以查看计算机配置文件属性。标记部分最多显示三个标记。要查看放置在 VM 上的所有标记,请单击查看全部

    如果您希望 MCS 在 Azure 专用主机上预配 VM,请启用使用专用主机组复选框,然后从列表中选择一个主机组。主机组是表示专用主机的集合的资源。专用主机是指提供托管一个或多个 VM 的物理服务器的服务。您的服务器专用于您的 Azure 订阅,不与其他订阅者共享。使用专用主机时,Azure 会确保您的 VM 是该主机上唯一运行的计算机。此功能适用于必须满足法规或内部安全要求的场景。要了解有关主机组及其使用注意事项的详细信息,请参阅 Azure 专用主机

    重要提示:

    • 仅显示启用了 Azure 自动放置功能的主机组。
    • 使用主机组会更改向导中后面提供的虚拟机页面。该页面上仅显示选定主机组包含的计算机大小。此外,可用性区域是自动选择的,不可供选择。
  • 只有当您使用 Azure Resource Manager 映像时,才会显示存储和许可证类型页面。

    “存储和许可证类型”页面

    可以将以下存储类型用于计算机目录:

    • Premium SSD。提供适用于具有 I/O 密集型工作负载的 VM 的高性能、低延迟磁盘存储方案。
    • 标准 SSD。提供经济高效的存储方案,该方案适用于在较低的 IOPS 级别需要性能一致的工作负载。
    • 标准 HDD。提供适用于运行延迟不敏感的工作负载的 VM 的可靠、低成本的磁盘存储方案。
    • Azure 临时操作系统磁盘。提供经济高效的、重复使用 VM 的本地磁盘来托管操作系统磁盘的存储方案。或者,您可以使用 PowerShell 创建使用临时操作系统磁盘的计算机。有关详细信息,请参阅 Azure 临时磁盘。使用临时操作系统磁盘时,请注意以下事项:
      • 无法同时启用 Azure 临时操作系统磁盘和 MCS I/O。
      • 必须选择大小不超过 VM 的缓存磁盘或临时磁盘大小的映像,才能更新使用临时操作系统磁盘的计算机。
      • 您无法使用稍后在向导中提供的电源重启期间保留 VM 和系统磁盘选项。

    注意:

    无论您选择哪种存储类型,身份磁盘始终使用标准 SSD 创建。

    该存储类型决定在向导的虚拟机页面上提供哪些计算机大小。MCS 将高级磁盘和标准磁盘配置为使用本地冗余存储 (LRS)。LRS 在单个数据中心中创建您的磁盘数据的多个同步副本。Azure 临时操作系统磁盘使用 VM 的本地磁盘来存储操作系统。有关 Azure 存储类型和存储复制的详细信息,请参阅以下内容:

    选择是否使用现有的 Windows 许可证或 Linux 许可证。

    • Windows 许可证:通过将 Windows 许可证和 Windows 映像(Azure 平台支持映像或自定义映像)结合使用,您可以在 Azure 中以更低的成本运行 Windows VM。许可证有两种类型:

      • Windows Server 许可证。支持使用 Windows Server 许可证或 Azure Windows Server 许可证,以允许使用 Azure Hybrid Benefits。有关详细信息,请参阅 https://azure.microsoft.com/en-us/pricing/hybrid-benefit/。Azure Hybrid Benefits 将在 Azure 中运行 VM 的成本降低到基本计算费率,从而免除了源自 Azure 库的额外 Windows Server 许可证的费用。

      • Windows 客户端许可证。支持在 Azure 中使用 Windows 10 和 Windows 11 许可证,以允许您在 Azure 中运行 Windows 10 和 Windows 11 VM,而无需额外的许可证。有关详细信息,请参阅客户端访问许可证和管理许可证

    您可以通过运行以下 PowerShell 命令来验证已预配的 VM 是否正在利用许可权益: <!JEKYLL@5300@4>。

    或者,您可以使用 <!JEKYLL@5300@5> PowerShell SDK 来执行验证。例如:<!JEKYLL@5300@6>。有关此 cmdlet 的详细信息,请参阅https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/MachineCreation/Get-ProvScheme/

    • Linux 许可证:使用自带订阅 (BYOS) Linux 许可证,您无需为软件付费。BYOS 费用仅包括计算硬件费用。许可证有两种类型:

      • RHEL_BYOS:要成功使用 RHEL_BYOS 类型,请在您的 Azure 订阅中启用 Red Hat Cloud Access。
      • SLES_BYOS:SLES 的 BYOS 版本包括 SUSE 提供的支持。

      可以在 <!JEKYLL@5300@7> 和 <!JEKYLL@5300@8> 处将 LicenseType 值设置为 Linux 选项。

      在 <!JEKYLL@5300@9> 处将 LicenseType 设置为 RHEL_BYOS 的示例:

      <!JEKYLL@5300@10>

      在 <!JEKYLL@5300@11> 处将 LicenseType 设置为 SLES_BYOS 的示例:

      <!JEKYLL@5300@12>

      注意:

      如果 <!JEKYLL@5300@13> 值为空,则默认值为 Azure Windows Server 许可证或 Azure Linux 许可证,具体取决于 OsType 的值。

      将 LicenseType 设置为空的示例:

      <!JEKYLL@5300@14>

    请参阅以下文档以了解许可证类型及其好处:

    Azure Compute Gallery(以前称为 Azure 共享映像库)是一个用于管理和共享映像的存储库。它可以让您在整个组织中使用映像。我们建议您在创建大型非持久性计算机目录时将映像存储在 SIG 中,因为这样做可以更快地重置 VDA 操作系统磁盘。选择将准备好的映像放置在 Azure Compute Gallery 中后,将显示 Azure Compute Gallery 设置部分,从而允许您指定更多 Azure Compute Gallery 设置:

    • 虚拟机与映像副本的比率。用于指定希望 Azure 保留的虚拟机与映像副本的比率。默认情况下,Azure 为每 40 个非持久性计算机保留一个映像副本。对于持久性计算机,该数字默认为 1000。

    • 最大副本计数。允许您指定希望 Azure 保留的最大映像副本数。默认值为 10。

  • 虚拟机页面上,指出要创建的 VM 数量。必须至少指定一个,然后选择计算机大小。创建目录后,可以通过编辑目录来更改计算机大小。

  • NIC 页面不包含 Azure 特定的信息。请按照创建计算机目录一文中的指导进行操作。

  • 磁盘设置页面上,选择是否启用回写式缓存。启用了 MCS 存储优化功能后,可以在创建目录时配置以下设置。这些设置适用于 Azure 和 GCP 环境。

    计算机目录设置 - 磁盘设置

    启用回写式缓存后,您可以执行以下操作:

    • 配置用于缓存临时数据的磁盘和 RAM 的大小。有关详细信息,请参阅配置临时数据的缓存

    • 选择回写式缓存磁盘的存储类型。以下存储选项可用于回写式缓存磁盘:

      • 高级 SSD
      • 标准 SSD
      • 标准 HDD
    • 选择是否要为已预配的 VM 保留回写式缓存磁盘。选择启用回写式缓存以使这些选项可用。默认情况下,选中使用非永久回写式缓存磁盘

    • 选择回写式缓存磁盘的类型。

      • 使用非永久回写式缓存磁盘。如果选中此选项,则会在电源重启期间删除回写式缓存磁盘。重定向到该磁盘的任何数据都将丢失。如果 VM 的临时磁盘有足够的空间,它将用于托管回写式缓存磁盘以降低成本。创建目录后,可以检查已预配的计算机是否使用临时磁盘。为此,请单击目录并验证模板属性选项卡上的信息。如果使用临时磁盘,您将看到非永久回写式缓存磁盘,其值为是(使用 VM 的临时磁盘)。否则,您将看到非永久回写式缓存磁盘,其值为否(不使用 VM 的临时磁盘)
      • 使用永久回写式缓存磁盘。如果选中此选项,回写式缓存磁盘将为已预配的 VM 保留。启用此选项会增加存储成本。
    • 选择是否在电源重启期间为 VDA 保留 VM 和系统磁盘。

      电源重启期间保留 VM 和系统磁盘。当您选择了启用回写式缓存时可用。默认情况下,VM 和系统磁盘在关机时删除,并在启动时重新创建。如果要缩短 VM 重新启动时间,请选择此选项。请记住,启用此选项还会增加存储成本。

    • 选择是否启用节省存储成本功能。如果已启用,则可以在 VM 关闭时将存储磁盘降级为标准 HDD,从而节省存储成本。VM 在重新启动时切换到其原始设置。该选项同时适用于存储和回写式缓存磁盘。或者,也可以使用 PowerShell。请参阅关闭 VM 时将存储类型更改为较低的层

      注意:

      在 VM 关闭期间,Microsoft 对更改存储类型施加了限制。Microsoft 将来也有可能会阻止更改存储类型。有关详细信息,请参阅这篇 Microsoft 文章

    • 选择是否对在目录中预配的计算机上的数据进行加密。通过使用客户管理的加密密钥的服务器端加密,您可以在托管磁盘级别管理加密,并保护目录中的计算机上的数据。有关详细信息,请参阅 Azure 服务器端加密

  • 资源组页面上,选择是创建资源组还是使用现有组。

    • 如果选择创建资源组,请选择下一步
    • 如果选择使用现有资源组,请从可用的预配资源组列表中选择组。谨记:请选择足够的组以容纳您要在目录中创建的计算机。如果选择太少,系统将显示一条消息。如果您计划以后向目录添加更多 VM,则您可能希望选择的数量多于所需的最低数量。创建目录后,无法向目录添加更多资源组。

    有关详细信息,请参阅 Azure 资源组

  • 计算机标识页面上,选择标识类型并为该目录中的计算机配置标识。如果您选择 VM 为已加入 Azure Active Directory,则可以将其添加到 Azure AD 安全组。详细步骤如下所示:

    1. 标识类型字段中,选择已加入 Azure Active Directory。此时将显示 Azure AD 安全组(可选) 选项。
    2. 单击 Azure AD 安全组: 新建
    3. 输入组名称,然后单击创建
    4. 请按照屏幕上的说明登录 Azure。 如果 Azure 中不存在组名称,则会出现绿色图标。否则,会出现一条错误消息,要求您输入新名称。
    5. 输入 VM 的计算机帐户命名方案。

    创建目录后,Citrix Virtual Apps and Desktops 代表您访问 Azure 并为该组创建安全组和动态成员身份规则。根据该规则,使用在此目录中指定的命名方案的 VM 将自动添加到安全组中。

    将使用不同命名方案的 VM 添加到此目录需要您登录 Azure。然后,Citrix Virtual Apps and Desktops 可以访问 Azure 并根据新命名方案创建动态成员身份规则。

    删除此目录时,从 Azure 中删除安全组还需要登录 Azure。

  • 域凭据摘要页面不包含 Azure 特定的信息。请按照创建计算机目录一文中的指导进行操作。

完成向导。

Azure 临时磁盘有资格使用回写式缓存磁盘的条件

仅当满足以下所有条件时,才能将 Azure 临时磁盘用作回写式缓存磁盘:

  • 回写式缓存磁盘必须非永久,因为 Azure 临时磁盘不适合静态数据。

  • 所选 Azure VM 大小必须包含临时磁盘。

  • 不需要启用临时操作系统磁盘。

  • 接受以将回写式缓存文件放置在 Azure 临时磁盘上。

  • Azure 临时磁盘大小必须大于(回写式缓存磁盘大小 + 页面文件的预留空间 + 1 GB 缓冲区空间)的总大小。

非永久回写式缓存磁盘场景

下表描述了在创建计算机目录时使用临时磁盘作为回写式缓存的三种不同场景。

场景 结果
使用临时磁盘进行回写式缓存的所有条件均已满足。 WBC 文件 <!JEKYLL@5300@15> 放置在临时磁盘上。
临时磁盘空间不足,无法使用回写式缓存。 将创建一个 VHD 磁盘 <!JEKYLL@5300@16>,并将 WBC 文件 <!JEKYLL@5300@17> 放置在此磁盘上。
临时磁盘有足够的空间用于回写式缓存,但 <!JEKYLL@5300@18> 设置为 false 将创建一个 VHD 磁盘 <!JEKYLL@5300@19>,并将 WBC 文件 <!JEKYLL@5300@20> 放置在此磁盘上。

创建 Azure 模板规范

您可以在 Azure 门户中创建 Azure 模板规范,然后在 Web Studio 和 PowerShell 命令中用来创建或更新 MCS 计算机目录。

要为现有 VM 创建 Azure 模板规范,请执行以下操作:

  1. 转至 Azure 门户。选择一个资源组,然后选择 VM 和网络接口。在顶部的 菜单中,单击导出模板
  2. 如果要为目录预配创建模板规范,请清除包括参数复选框。
  3. 单击添加到库以便稍后修改模板规范。
  4. 导入模板页面上,输入所需信息,例如名称订阅资源组位置版本。单击下一步: 编辑模板
  5. 如果要预配目录,还需要将网络接口作为独立资源。因此,必须删除在模板规范中指定的任何 <!JEKYLL@5300@21>。例如:

    <!JEKYLL@5300@22>

  6. 创建检查 + 创建并创建模板规范。
  7. 模板规范页面上,验证您刚刚创建的模板规范。单击模板规范。在左侧面板上,单击版本
  8. 可以通过单击创建新版本来创建新版本。指定新版本号,更改当前的模板规范,然后单击检查 + 创建以创建模板规范的新版本。

可以使用以下 PowerShell 命令获取有关模板规范和模板版本的信息:

  • 要获取有关模板规范的信息,请运行:

    <!JEKYLL@5300@23>

  • 要获取有关模板规范版本的信息,请运行:

    <!JEKYLL@5300@24>

在创建或更新目录时使用模板规范

可以使用模板规范作为计算机配置文件输入来创建或更新 MCS 计算机目录。为此,您可以使用 Web Studio 或 PowerShell 命令。

Azure 服务器端加密

Citrix Virtual Apps and Desktops 通过 Azure 密钥保管库支持 Azure 托管磁盘的客户托管加密密钥。通过此支持,您可以使用自己的加密密钥对计算机目录的托管磁盘进行加密,从而管理组织和合规性要求。有关详细信息,请参阅 Azure 磁盘存储的服务器端加密

对托管磁盘使用此功能时:

  • 要更改磁盘加密时使用的密钥,请更改 <!JEKYLL@5300@25> 中的当前密钥。与该 <!JEKYLL@5300@26> 关联的所有资源都将更改为使用新密钥加密。

  • 禁用或删除密钥时,任何具有使用该密钥的磁盘的 VM 都会自动关闭。关闭后,除非再次启用该密钥或分配新密钥,否则 VM 将无法使用。使用该密钥的任何目录都无法打开,也无法向其中添加 VM。

使用客户管理的加密密钥时的重要注意事项

使用此功能时请注意以下事项:

  • 与客户管理的密钥(Azure 密钥保管库、磁盘加密集、VM、磁盘和快照)相关的所有资源都必须位于同一订阅和区域中。

  • 启用客户管理的加密密钥后,以后无法将其禁用。如果要禁用或删除客户管理的加密密钥,请将所有数据复制到不使用客户管理的加密密钥的其他托管磁盘。

  • 使用服务器端加密和客户托管的密钥从加密的自定义映像创建的磁盘必须使用相同的客户管理的密钥进行加密。这些磁盘必须位于同一个订阅中。

  • 使用服务器端加密和客户管理的密钥加密的磁盘创建的快照必须使用相同的客户管理的密钥进行加密。

  • 使用客户管理的密钥加密的磁盘、快照和映像无法移动到其他资源组和订阅。

  • 当前或之前使用 Azure 磁盘加密进行加密的托管磁盘不能使用客户管理的密钥进行加密。

  • 有关每个区域的磁盘加密集的限制,请参阅 Microsoft 站点

注意:

有关配置 Azure 服务器端加密的信息,请参阅快速入门:使用 Azure 门户创建密钥保管库

Azure 客户管理的加密密钥

创建计算机目录时,可以选择是否加密在目录中预配的计算机上的数据。通过使用客户管理的加密密钥的服务器端加密,您可以在托管磁盘级别管理加密,并保护目录中的计算机上的数据。磁盘加密集 (Disk Encryption Set, DES) 表示客户管理的密钥。要使用此功能,必须首先在 Azure 中创建 DES。DES 采用以下格式:

  • <!JEKYLL@5300@27>

从列表中选择 DES。所选择的 DES 必须与您的资源位于相同的订阅和区域。如果使用 DES 加密了映像,请在创建计算机目录时使用相同的 DES。创建目录后无法更改 DES。

如果使用加密密钥创建目录,然后在 Azure 中禁用相应的 DES,则无法再打开目录中的计算机的电源或者向其中添加计算机。

请参阅使用客户管理的密钥创建计算机目录

Azure 磁盘主机加密

可以创建具有主机加密功能的 MCS 计算机目录。目前,MCS 仅支持面向此功能的计算机配置文件工作流程。您可以使用 VM 或模板规范作为计算机配置文件的输入。

此加密方法不会通过 Azure 存储对数据进行加密。托管 VM 的服务器对数据进行加密,加密的数据随后会流经 Azure 存储服务器。因此,这种加密方法会对数据进行端到端加密。

限制:

Azure 磁盘主机加密:

  • 并非所有 Azure 计算机大小都支持
  • 与 Azure 磁盘加密不兼容

要创建具有主机加密功能的计算机目录,请执行以下操作:

  1. 检查订阅是否启用了主机加密功能。为此,请参阅https://learn.microsoft.com/en-us/rest/api/resources/features/get?tabs=HTTP/。如果未启用,则必须为订阅启用该功能。有关为您的订阅启用该功能的信息,请参阅 https://learn.microsoft.com/en-us/azure/virtual-machines/disks-enable-host-based-encryption-portal?tabs=azure-powershell#prerequisites/
  2. 检查特定 Azure VM 大小是否支持主机加密。要执行此操作,请在 PowerShell 窗口中运行以下任一命令:

    <!JEKYLL@5300@28>

    <!JEKYLL@5300@29>

  3. 在启用了主机加密功能的 Azure 门户中创建 VM 或模板规范,作为计算机配置文件的输入。

    • 如果要创建 VM,请选择支持主机加密功能的 VM 大小。创建 VM 后,VM 属性 Encryption at host(主机加密)处于启用状态。
    • 如果要使用模板规范,请在 <!JEKYLL@5300@30> 内部将参数 <!JEKYLL@5300@31> 指定为 true
  4. 通过选择 VM 或模板规范,使用计算机配置文件工作流程创建 MCS 计算机目录。

    • 操作系统磁盘/数据磁盘:通过客户管理的密钥和平台管理的密钥进行加密
    • 临时操作系统磁盘:仅通过平台管理的密钥进行加密
    • 缓存磁盘:通过客户管理的密钥和平台管理的密钥进行加密

    可以使用 Web Studio 或者运行 PowerShell 命令来创建计算机目录。

从计算机配置文件中检索主机加密信息

运行带有 <!JEKYLL@5300@32> 参数的 PowerShell 命令时,可以从计算机配置文件中检索主机加密信息。如果 <!JEKYLL@5300@33> 参数设置为 True,则表示已为计算机配置文件启用主机加密。

例如:当计算机配置文件输入为 VM 时,请运行以下命令:

<!JEKYLL@5300@34>

例如:当计算机配置文件输入为模板规范时,请运行以下命令:

<!JEKYLL@5300@35>

托管磁盘上的双重加密

可以创建具有双重加密的计算机目录。使用此功能创建的任何目录都会同时使用平台和客户管理的密钥对所有磁盘服务器端进行加密。您拥有并维护 Azure Key Vault、加密密钥和磁盘加密集 (DES)。

双重加密是指平台端加密(默认)和客户管理的加密 (CMEK)。因此,如果您是高度安全敏感的客户,并且担心与任何加密算法、实现或密钥泄露相关的风险,则可以选择这种双重加密。永久操作系统和数据磁盘、快照和映像均使用双重加密进行静态加密。

注意:

  • 可以使用 Web Studio 和 PowerShell 命令创建和更新具有双重加密的计算机目录。有关 PowerShell 命令,请参阅使用双重加密创建计算机目录
  • 可以使用非基于计算机配置文件的工作流程或基于计算机配置文件的工作流程来创建或更新具有双重加密的计算机目录。
  • 如果您使用非基于计算机配置文件的工作流程来创建计算机目录,则可以重复使用存储的 <!JEKYLL@5300@36>。
  • 如果使用计算机配置文件,则可以使用 VM 或模板规范作为计算机配置文件输入。

限制:

  • 超级磁盘或 Premium SSD v2 磁盘不支持双重加密。
  • 非托管磁盘不支持双重加密。
  • 如果您禁用了与目录关联的 DiskEncryptionSet 键,该目录的 VM 将被禁用。
  • 与客户管理的密钥(Azure 密钥保管库、磁盘加密集、VM、磁盘和快照)相关的所有资源都必须位于同一订阅和区域中。
  • 每个订阅每个区域最多只能创建 50 个磁盘加密集。
  • 无法使用其他 <!JEKYLL@5300@37> 更新已包含 <!JEKYLL@5300@38> 的计算机目录。

Azure 资源组

Azure 预配资源组提供了一种预配向用户提供应用程序和桌面的 VM 的方法。您可以创建 MCS 计算机目录时添加现有的空 Azure 资源组,也可以创建新资源组。有关 Azure 资源组的信息,请参阅 Microsoft 文档

Azure 资源组使用情况

每个 Azure 资源组的虚拟机、托管磁盘、快照和映像数量都没有限制。(删除了每个 Azure 资源组每 800 个托管磁盘包含 240 个 VM 的限制。)

  • 使用完整作用域服务主体创建计算机目录时,MCS 仅创建一个 Azure 资源组,并为目录使用该资源组。
  • 使用窄作用域服务主体创建计算机目录时,必须为目录提供一个空的、预先创建的 Azure 资源组。

Azure 临时磁盘

Azure 临时磁盘允许您重新调整缓存磁盘或临时磁盘的用途,以便为启用了 Azure 的虚拟机存储操作系统磁盘。此功能对于需要的 SSD 磁盘的性能高于标准 HDD 磁盘的 Azure 环境非常有用。有关使用 Azure 临时磁盘创建目录的信息,请参阅使用 Azure 临时磁盘创建目录

注意:

永久目录不支持临时操作系统磁盘。

临时操作系统磁盘要求您的预配方案使用托管磁盘和共享映像库。

存储临时操作系统临时磁盘

您可以选择将临时操作系统磁盘存储在 VM 临时磁盘或资源磁盘上。通过此功能,您可以将临时操作系统磁盘用于没有缓存或缓存不足的 VM。此类 VM 具有用于存储临时操作系统磁盘的临时磁盘或资源磁盘,例如 <!JEKYLL@5300@39>。

请注意以下事项:

  • 临时磁盘存储在 VM 缓存磁盘或 VM 的临时(资源)磁盘中。除非缓存磁盘的大小不足以容纳操作系统磁盘的内容,否则缓存磁盘优先于临时磁盘。
  • 对于更新,如果新映像大于缓存磁盘但小于临时磁盘,则会导致将临时操作系统磁盘替换为 VM 的临时磁盘。

Azure 临时磁盘和 Machine Creation Services (MCS) 存储优化 (MCS I/O)

无法同时启用 Azure 临时操作系统磁盘和 MCS I/O。

重要注意事项如下:

  • 您无法创建同时启用了临时操作系统磁盘和 MCS I/O 的计算机目录。

  • 如果在 <!JEKYLL@5300@40> 或 <!JEKYLL@5300@41> 中将 PowerShell 参数(<!JEKYLL@5300@42> 和 <!JEKYLL@5300@43>)设置为 true,这些参数将失败并显示正确的错误消息。
  • 对于在启用了这两种功能的情况下创建的现有计算机目录,您仍然可以:
    • 更新计算机目录。
    • 添加或删除 VM。
    • 删除计算机目录。

将 Azure Compute Gallery(以前称为 Azure 共享映像库)用作 Azure 中 MCS 预配的计算机的已发布映像存储库。可以在该库中存储已发布的映像,以加快操作系统磁盘的创建和水化速度,从而缩短非持久 VM 的启动和应用程序启动时间。共享映像库包含以下三个元素:

  • :映像存储在此位置。MCS 为每个计算机目录创建一个库。
  • 库映像定义:此定义包括有关已发布的映像的信息(操作系统类型和状态、Azure 区域)。MCS 为目录创建的每个映像创建一个映像定义。
  • 库映像版本: 共享映像库中的每个映像可以有多个版本,每个版本可以在不同的区域中有多个副本。每个副本都是已发布的映像的完整副本。

注意:

共享映像库功能仅与托管磁盘兼容。它不适用于旧版计算机目录。

有关详细信息,请参阅 Azure Compute Gallery 概述

有关使用 PowerShell 通过 Azure Compute Gallery 映像创建或更新计算机目录的信息,请参阅使用 Azure Compute Gallery 映像创建或更新计算机目录

Azure 应用商店

Citrix Virtual Apps and Desktops 支持在 Azure 上使用包含计划信息的主映像来创建计算机目录。有关详细信息,请参阅 Microsoft Azure 应用商店

提示:

在 Azure 应用商店中找到的某些映像(例如标准 Windows Server 映像)不会附加计划信息。Citrix Virtual Apps and Desktops 功能适用于付费映像。

请确保在共享映像库中创建的映像包含 Azure 计划信息

请使用本部分中的过程在 Web Studio 中查看共享映像库映像。这些映像可以选择用于主映像。要将映像放入共享映像库,请在库中创建映像定义。

Azure 应用商店共享映像库

发布选项页面中,验证购买计划信息。

购买计划信息字段最初为空。请使用用于映像的购买计划信息填充这些字段。未能填充购买计划信息会导致计算机目录进程失败。

Azure 应用商店验证 VDA 发布选项

确认购买计划信息后,在定义中创建一个映像版本。这用作主映像。单击添加版本

Azure 应用商店添加 VDA 版本

版本详细信息部分中,选择映像快照或托管磁盘作为源:

Azure 应用商店选择 VDA 选项

使用 PowerShell 创建计算机目录

本部分内容详细介绍了如何使用 PowerShell 创建目录:

创建具有非永久回写式缓存磁盘的目录

要配置具有非永久回写式缓存磁盘的目录,请使用 PowerShell 参数 <!JEKYLL@5300@44>。自定义属性 <!JEKYLL@5300@45> 指示您是否接受使用 Azure 临时存储来存储回写式缓存文件。如果要将临时磁盘用作回写式缓存磁盘,则必须在运行 <!JEKYLL@5300@46> 时将其配置为 true。如果未指定此属性,则默认情况下将参数设置为 False

例如,使用 <!JEKYLL@5300@47> 参数将 <!JEKYLL@5300@48> 设置为 true

<!JEKYLL@5300@49>

注意:

提交计算机目录以使用 Azure 本地临时存储作为回写式缓存文件后,以后无法更改为使用 VHD。

创建具有永久回写式缓存磁盘的目录

要配置具有永久回写式缓存磁盘的目录,请使用 PowerShell 参数 <!JEKYLL@5300@50>。此参数支持额外的属性 <!JEKYLL@5300@51>,用于确定 MCS 预配的计算机的回写式缓存磁盘如何保留。仅当指定了 <!JEKYLL@5300@52> 参数时,并且当 <!JEKYLL@5300@53> 参数设置为指示创建了磁盘时才使用 <!JEKYLL@5300@54> 属性。

在支持 <!JEKYLL@5300@55> 之前在 <!JEKYLL@5300@56> 参数中找到的属性示例包括:

<!JEKYLL@5300@57>

使用这些属性时,如果在 <!JEKYLL@5300@58> 参数中省略这些属性,请考虑其包含默认值。<!JEKYLL@5300@59> 属性有两个可能的值:truefalse

如果将 <!JEKYLL@5300@60> 属性设置为 true,则当 Citrix Virtual Apps and Desktops 管理员使用 Web Studio 关闭计算机时,不会删除回写式缓存磁盘。

如果将 <!JEKYLL@5300@61> 属性设置为 false,则当 Citrix Virtual Apps and Desktops 管理员使用 Web Studio 关闭计算机时,将删除回写式缓存磁盘。

注意:

如果省略 <!JEKYLL@5300@62> 属性,则该属性默认设置为 false,并在使用 Web Studio 关闭计算机时删除回写式缓存。

例如,使用 <!JEKYLL@5300@63> 参数将 <!JEKYLL@5300@64> 设置为 true:

<!JEKYLL@5300@65>

重要提示:

只能使用 <!JEKYLL@5300@66> PowerShell cmdlet 设置 <!JEKYLL@5300@67> 属性。在创建后尝试更改预配方案 <!JEKYLL@5300@68> 不会影响计算机目录以及计算机关闭时回写式缓存磁盘的持久性。

例如,设置 <!JEKYLL@5300@69> 以在将 <!JEKYLL@5300@70> 属性设置为 true 时使用回写式缓存:

<!JEKYLL@5300@71>

使用 MCSIO 提高启动性能

启用 MCSIO 后,可以提高 Azure 和 GCP 托管磁盘的引导性能。请使用 <!JEKYLL@5300@72> 命令中的 PowerShell <!JEKYLL@5300@73> 自定义属性配置此功能。与 <!JEKYLL@5300@74> 关联的选项包括:

<!JEKYLL@5300@75><!JEKYLL@5300@76><!JEKYLL@5300@77>

要启用此功能,请将 <!JEKYLL@5300@78> 自定义属性设置为 <!JEKYLL@5300@79>。例如:

<!JEKYLL@5300@80>

使用 PowerShell 在创建或更新目录时使用模板规范

可以使用模板规范作为计算机配置文件输入来创建或更新 MCS 计算机目录。为此,您可以使用 Web Studio 或 PowerShell 命令。

对于 Web Studio,请参阅在 Web Studio 中使用 Azure Resource Manager 映像创建计算机目录

使用 PowerShell 命令:

  1. 打开 PowerShell 窗口。
  2. 运行 <!JEKYLL@5300@81>。
  3. 创建或更新目录。
    • 要创建目录,请执行以下操作:
      1. 对作为计算机配置文件输入的模板规范使用 <!JEKYLL@5300@82> 命令。例如:

        <!JEKYLL@5300@83>

      2. 完成目录的创建。

    • 要更新目录,请对作为计算机配置文件输入的模板规范使用 <!JEKYLL@5300@84> 命令。例如:

      <!JEKYLL@5300@85>

支持受信任启动的计算机目录

要使用受信任启动成功创建计算机目录,请使用:

  • 具有受信任启动功能的计算机配置文件
  • 支持受信任启动的 VM 大小
  • 支持受信任启动的 Windows VM 版本。目前,Windows 10、Windows 11、2016、2019 和 2022 支持受信任启动。

重要提示:

MCS 支持使用启用了受信任启动的 VM 创建新目录。但是,要更新现有的永久目录和现有的 VM,必须使用 Azure 门户。无法更新非永久目录的受信任启动。有关详细信息,请参阅 Microsoft 文档 Enable Trusted launch on existing Azure VMs(在现有 Azure VM 上启用受信任启动)。

要查看 Citrix Virtual Apps and Desktops 产品清单项目,并确定 VM 大小是否支持受信任启动,请运行以下命令:

  1. 打开 PowerShell 窗口。
  2. 运行 asnp citrix* 以加载特定于 Citrix 的 PowerShell 模块。
  3. 运行以下命令:

    <!JEKYLL@5300@86>

  4. 运行 <!JEKYLL@5300@87>
  5. 检查 <!JEKYLL@5300@88> 属性的值。

    • 如果 <!JEKYLL@5300@89> 设置为 True,则 VM 大小支持受信任启动。
    • 如果 <!JEKYLL@5300@90> 设置为 False,则 VM 大小不支持受信任启动。

根据 Azure 的 PowerShell,您可以使用以下命令来确定支持受信任启动的 VM 大小:

<!JEKYLL@5300@91>

以下示例描述了运行 Azure PowerShell 命令后 VM 大小是否支持受信任启动。

  • 示例 1:如果 Azure VM 仅支持第 1 代,则该 VM 不支持受信任启动。因此,运行 Azure PowerShell 命令后不会显示 <!JEKYLL@5300@92> 功能。
  • 示例 2:如果 Azure VM 仅支持第 2 代,并且 <!JEKYLL@5300@93> 功能设置为 True,则受信任启动不支持第 2 代 VM 大小。
  • 示例 3:如果 Azure VM 仅支持第 2 代,并且在运行 PowerShell 命令后未显示 <!JEKYLL@5300@94> 功能,则受信任启动时支持第 2 代 VM 大小。

有关 Azure 虚拟机受信任启动的详细信息,请参阅 Microsoft 文档 Trusted launch for Azure virtual machines(Azure 虚拟机的受信任启动)。

使用受信任启动功能创建计算机目录

  1. 创建启用了受信任启动的主映像。请参阅 Microsoft 文档 Trusted launch VM Images(受信任启动 VM 映像)。
  2. 创建安全类型为受信任启动虚拟机的 VM 或模板规范。有关创建 VM 或模板规范的详细信息,请参阅 Microsoft 文档 Deploy a trusted launch VM(部署受信任启动 VM)。
  3. 使用“完整配置”界面或 PowerShell 创建计算机目录。

    • 如果要使用“完整配置”界面,请参阅在“完整配置”界面中使用 Azure Resource Manager 映像创建计算机目录
    • 如果要使用 PowerShell 命令,请使用带有 VM 或模板规范的 <!JEKYLL@5300@95> 命令作为计算机配置文件输入。有关创建目录的命令的完整列表,请参阅创建目录

      使用 VM 作为计算机配置文件输入的 <!JEKYLL@5300@96> 示例:

      <!JEKYLL@5300@97>

      使用模板规范作为计算机配置文件输入的 <!JEKYLL@5300@98> 示例:

      <!JEKYLL@5300@99>

使用受信任启动创建计算机目录时出错

在以下情况下使用受信任启动创建计算机目录时,您会遇到相应的错误:

场景 错误
如果您在创建非托管目录时选择了计算机配置文件 <!JEKYLL@5300@100>
如果您在创建以非托管磁盘作为主映像的目录时选择支持受信任启动的计算机配置文件 <!JEKYLL@5300@101>
如果您在使用以受信任启动作为安全类型的主映像源创建托管目录时未选择计算机配置文件 <!JEKYLL@5300@102>
如果您选择安全类型与主映像的安全类型不同的计算机配置文件 <!JEKYLL@5300@103>
如果您选择的 VM 大小不支持受信任启动,但在创建目录时使用支持受信任启动的主映像 <!JEKYLL@5300@104>

使用计算机配置文件属性值

计算机目录使用在自定义属性中定义的以下属性:

  • 可用性区域
  • 专用主机组 ID
  • 磁盘加密集 ID
  • 操作系统类型
  • 许可证类型
  • 存储类型

如果未显式定义这些自定义属性,则从 ARM 模板规范或 VM(以用作计算机配置文件为准)中设置属性值。此外,如果未指定 <!JEKYLL@5300@105>,则从计算机配置文件进行设置。

注意:

如果计算机配置文件中缺少某些属性,并且未在自定义属性中定义,则在适用的情况下将使用这些属性的默认值。

以下部分描述了 <!JEKYLL@5300@106> 从 MachineProfile 派生定义的所有属性或值时 <!JEKYLL@5300@107> 和 <!JEKYLL@5300@108> 下的某些方案。

  • New-ProvScheme 方案

    • MachineProfile 具有所有属性,但未定义 CustomProperties。示例:

      <!JEKYLL@5300@109>

      以下值被设置为目录的自定义属性:

      <!JEKYLL@5300@110>

    • MachineProfile 有一些属性,但未定义 CustomProperties。示例:MachineProfile 只有 LicenseType 和 OsType。

      <!JEKYLL@5300@111>

      以下值被设置为目录的自定义属性:

      <!JEKYLL@5300@112>

    • MachineProfile 和 CustomProperties 定义了所有属性。示例:

      <!JEKYLL@5300@113>

      自定义属性优先。以下值被设置为目录的自定义属性:

      <!JEKYLL@5300@114>

    • 有些属性在 MachineProfile 中定义,有些属性在 CustomProperties 中定义。示例:
      • CustomProperties 定义 LicenseType 和 StorageAccountType
      • MachineProfile 定义 LicenseType、OsType 和区域

      <!JEKYLL@5300@115>

      以下值被设置为目录的自定义属性:

      <!JEKYLL@5300@116>

    • 有些属性在 MachineProfile 中定义,有些属性在 CustomProperties 中定义。此外,未定义 ServiceOffering。示例:

      • CustomProperties 定义 StorageType
      • MachineProfile 定义 LicenseType

      <!JEKYLL@5300@117>

      以下值被设置为目录的自定义属性:

      <!JEKYLL@5300@118>

    • 如果 OsType 既不在 CustomProperties 中,也不在 MachineProfile 中,那么:
      • 该值将从主映像中读取。
      • 如果主映像是非托管磁盘,则 OsType 设置为 Windows。示例:

      <!JEKYLL@5300@119>

      主映像中的值将写入自定义属性,在本例中为 Linux。

      <!JEKYLL@5300@120>

  • Set-ProvScheme 方案

    • 包含以下对象的现有目录:

      • <!JEKYLL@5300@121>和 OsType 的 CustomProperties
      • 用于定义区域的 MachineProfile <!JEKYLL@5300@122>
    • 更新:

      • 用于定义 StorageAccountType 的 MachineProfile mpB.vm
      • 用于定义 LicenseType 和 OsType 的一组新自定义属性 $CustomPropertiesB

      <!JEKYLL@5300@123>

      以下值被设置为目录的自定义属性:

      <!JEKYLL@5300@124>

    • 包含以下对象的现有目录:
      • S<!JEKYLL@5300@125> 和 OsType 的 CustomProperties
      • 用于定义 StorageAccountType 和 LicenseType 的 MachineProfile <!JEKYLL@5300@126>
    • 更新:
      • 用于定义 StorageAccountType 和 OsType 的一组新自定义属性 $CustomPropertiesB。

      <!JEKYLL@5300@127>

      以下值被设置为目录的自定义属性:

      <!JEKYLL@5300@128>

    • 包含以下对象的现有目录:
      • <!JEKYLL@5300@129>和 OsType 的 CustomProperties
      • 用于定义区域的 MachineProfile <!JEKYLL@5300@130>
    • 更新:
      • 用于定义 StorageAccountType 和 LicenseType 的 MachineProfile mpB.vm
      • 未指定 <!JEKYLL@5300@131>

      <!JEKYLL@5300@132>

      以下值被设置为目录的自定义属性:

      <!JEKYLL@5300@133>

预配安装了 Azure Monitor 代理的目录 VM

Azure 监视是一项服务,可用于收集、分析和处理来自 Azure 和本地环境的遥测数据。

Azure Monitor 代理 (AMA) 从虚拟机等计算资源收集监视数据,并将数据交付给 Azure Monitor。它当前支持收集事件日志、syslog 和性能指标,并将其发送到 Azure Monitor 指标和 Azure Monitor 日志数据源。

要通过唯一标识监视数据中的 VM 来启用监视,您可以预配安装了 AMA 作为扩展程序的 MCS 计算机目录的 VM。

要求

  • 权限:请确保您拥有关于 Azure 权限中指定的最低 Azure 权限以及以下使用 Azure Monitor 的权限:

    • <!JEKYLL@5300@134>
    • <!JEKYLL@5300@135>
    • <!JEKYLL@5300@136>
    • <!JEKYLL@5300@137>
    • <!JEKYLL@5300@138>
  • 数据收集规则:在 Azure 门户中设置数据收集规则。有关设置 DCR 的信息,请参阅创建数据收集规则。DCR 是特定于平台的(Windows 或 Linux)。请务必根据所需平台创建 DCR。 AMA 使用数据收集规则 (DCR) 来管理 VM 等资源与数据源(例如 Azure Monitor 指标和 Azure Monitor 日志)之间的映射。
  • 默认工作区:在 Azure 门户中创建工作区。有关创建工作区的信息,请参阅创建日志分析工作区。当您收集日志和数据时,信息存储在工作区中。工作区具有唯一的工作区 ID 和资源 ID。对于给定的资源组,工作区名称必须唯一。创建工作区后,请配置数据源和解决方案以将其数据存储在工作区中。
  • 将 Monitor 扩展程序列入白名单:扩展程序 <!JEKYLL@5300@139> 和 <!JEKYLL@5300@140> 是 Citrix 定义的白名单扩展程序。要查看列入白名单的扩展程序列表,请使用 PoSH 命令 <!JEKYLL@5300@141>。
  • 主映像:Microsoft 建议在使用现有计算机创建新计算机之前从现有计算机中删除扩展程序。如果不删除扩展程序,可能会导致出现剩余文件和意外行为。有关详细信息,请参阅如果从现有 VM 重新创建 VM

要预配启用了 AMA 的目录 VM,请执行以下操作:

  1. 设置计算机配置文件模板。

    • 如果您想使用 VM 作为计算机配置文件模板:

      1. 在 Azure 门户中创建 VM。
      2. 打开 VM 的电源。
      3. 将 VM 添加到资源下的数据收集规则中。这会调用模板 VM 上的代理安装。

    注意:

    如果必须创建 Linux 目录,请设置一台 Linux 计算机。

    • 如果您想使用模板规范作为计算机配置文件模板:

      1. 设置模板规范。
      2. 将以下扩展程序和数据收集规则关联添加到生成的模板规范中:

        <!JEKYLL@5300@142>

  2. 创建或更新现有的 MCS 计算机目录。

    • 要创建新 MCS 目录,请执行以下操作:

      1. 在“完整配置”界面中选择该 VM 或模板规范作为计算机配置文件。
      2. 继续执行后续步骤以创建目录。
    • 要更新现有 MCS 目录,请使用以下 PoSH 命令:

      • 要让新 VM 获取更新后的计算机配置文件模板,请运行以下命令:

        <!JEKYLL@5300@143>

      • 要使用更新后的计算机配置文件模板更新现有 VM,请执行以下操作:

        <!JEKYLL@5300@144>

  3. 打开目录 VM 的电源。
  4. 转至 Azure 门户,检查 VM 上是否安装了 Monitor 扩展程序以及 VM 是否显示在 DCR 的资源下。几分钟后,监视数据将显示在 Azure Monitor 上。

故障排除

有关 Azure Monitor 代理的故障排除指南中的信息,请参阅以下内容:

使用客户管理的加密密钥创建计算机目录

有关如何使用客户管理的加密密钥创建计算机目录的详细步骤如下:

  1. 打开 PowerShell 窗口。
  2. 运行 <!JEKYLL@5300@145> 以加载 Citrix 特定的 PowerShell 模块。
  3. 输入 <!JEKYLL@5300@146>。
  4. 输入 <!JEKYLL@5300@147>。
  5. 输入 <!JEKYLL@5300@148>。
  6. 输入 <!JEKYLL@5300@149> 以获取磁盘加密集列表。
  7. 复制磁盘加密集的 ID。
  8. 创建包含磁盘加密集的 ID 的自定义属性字符串。例如:

    <!JEKYLL@5300@150>

  9. 创建标识池(如果尚未创建)。例如:

    <!JEKYLL@5300@151>

  10. 运行 New-ProvScheme 命令:例如:

    <!JEKYLL@5300@152>

  11. 完成计算机目录的创建。

使用双重加密创建计算机目录

可以使用 Web Studio 和 PowerShell 命令创建和更新具有双重加密的计算机目录。

有关如何使用双重加密创建计算机目录的详细步骤如下:

  1. 使用平台管理的密钥和客户管理的密钥创建 Azure Key Vault 和 DES。有关如何创建 Azure Key Vault 和 DES 的信息,请参阅使用 Azure 门户为托管磁盘启用静态双重加密
  2. 要浏览托管连接中可用的 DiskEncryptionSets,请执行以下操作:
    1. 打开 PowerShell 窗口。
    2. 运行以下 PowerShell 命令:
      1. <!JEKYLL@5300@153>
      2. <!JEKYLL@5300@154>
      3. <!JEKYLL@5300@155>
      4. <!JEKYLL@5300@156>(例如 azure-east)
      5. <!JEKYLL@5300@157>
      6. <!JEKYLL@5300@158>

    可以使用 <!JEKYLL@5300@159> 的 ID 通过自定义属性创建或更新目录。

  3. 如果您想使用计算机配置文件工作流程,请创建 VM 或模板规范作为计算机配置文件输入。
    • 如果您想使用 VM 作为计算机配置文件输入:
      1. 在 Azure 门户中创建 VM。
      2. 导航到磁盘 > 密钥管理,直接使用任何 <!JEKYLL@5300@160> 加密 VM。
    • 如果您想使用模板规范作为计算机配置文件输入:
      1. 在模板中的 <!JEKYLL@5300@161> 下,添加 <!JEKYLL@5300@162> 参数并添加双重加密 DES 的 ID。
  4. 然后,创建计算机目录。
    • 如果使用 Web Studio,则除了创建计算机目录中的步骤外,还请执行以下操作之一。
      • 如果您不使用基于计算机配置文件的工作流程,请在磁盘设置页面上,选择使用以下密钥在每台计算机上加密数据。然后,从下拉列表中选择您的双重加密 DES。继续创建目录。
      • 如果使用计算机配置文件工作流程,请在主映像页面上,选择主映像和计算机配置文件。确保计算机配置文件的属性中包含磁盘加密集 ID。

      在目录中创建的所有计算机均使用与您选择的 DES 关联的密钥进行双重加密。

    • 如果使用 PowerShell 命令,请执行以下操作之一:
      • 如果不使用基于计算机配置文件的工作流程,请在 <!JEKYLL@5300@163> 命令中添加自定义属性 <!JEKYLL@5300@164>。例如:

        <!JEKYLL@5300@165>

      • 如果使用基于计算机配置文件的工作流程,请在 <!JEKYLL@5300@166> 命令中使用计算机配置文件输入。例如:

        <!JEKYLL@5300@167>

  5. 使用 Remote PowerShell SDK 完成目录的创建。有关如何使用 Remote PowerShell SDK 创建目录的信息,请参阅 https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/creating-a-catalog/。在目录中创建的所有计算机均使用与您选择的 DES 关联的密钥进行双重加密。

将未加密的目录转换为使用双重加密

只有在计算机目录之前未加密的情况下,才能更新计算机目录的加密类型(使用自定义属性或计算机配置文件)。

  • 如果不使用基于计算机配置文件的工作流程,请在 <!JEKYLL@5300@168> 命令中添加自定义属性 DiskEncryptionSetId。例如:

    <!JEKYLL@5300@169>

  • 如果使用基于计算机配置文件的工作流程,请在 <!JEKYLL@5300@170> 命令中使用计算机配置文件输入。例如:

    <!JEKYLL@5300@171>

成功后,您在目录中添加的所有新 VM 都将使用与您选择的 DES 关联的密钥进行双重加密。

验证目录是否经过双重加密

  • 在 Web Studio 中:

    1. 导航到计算机目录
    2. 选择要验证的目录。单击屏幕底部附近的模板属性选项卡。
    3. Azure 详细信息下,验证磁盘加密集中的磁盘加密集 ID。如果目录的 DES ID 为空,则目录未加密。
    4. 在 Azure 门户中,验证与 DES ID 关联的 DES 的加密类型是否为平台管理的密钥和客户管理的密钥。
  • 使用 PowerShell 命令:

    1. 打开 PowerShell 窗口。
    2. 运行 <!JEKYLL@5300@172> 以加载 Citrix 特定的 PowerShell 模块。
    3. 使用 <!JEKYLL@5300@173> 可获取您的计算机目录信息。例如:

      <!JEKYLL@5300@174>

    4. 检索计算机目录的 DES ID 自定义属性。例如:

      <!JEKYLL@5300@175>

    5. 在 Azure 门户中,验证与 DES ID 关联的 DES 的加密类型是否为平台管理的密钥和客户管理的密钥。

使用 Azure 临时磁盘创建目录

要使用临时磁盘,必须在运行 <!JEKYLL@5300@176> 时将自定义属性 <!JEKYLL@5300@177> 设置为 true

注意:

如果自定义属性 <!JEKYLL@5300@178> 设置为 false 或未指定值,则所有预配的 VDA 将继续使用预配的操作系统磁盘。

下面是要在预配方案中使用的自定义属性的示例集:

<!JEKYLL@5300@179>

为目录配置临时磁盘

要为目录配置 Azure 临时操作系统磁盘,请使用 <!JEKYLL@5300@180> 中的 <!JEKYLL@5300@181> 参数。将 <!JEKYLL@5300@182> 参数的值设置为 true

注意:

要使用此功能,还必须启用参数 <!JEKYLL@5300@183> 和 <!JEKYLL@5300@184>。

例如:

<!JEKYLL@5300@185>

临时磁盘的重要注意事项

要使用 <!JEKYLL@5300@186> 预配临时操作系统磁盘,请注意以下限制:

  • 用于目录的 VM 大小必须支持临时操作系统磁盘。
  • 与 VM 大小关联的缓存磁盘或临时磁盘的大小必须大于或等于操作系统磁盘的大小。
  • 临时磁盘大小必须大于缓存磁盘大小。

还要注意以下情况下的问题:

  • 创建预配方案。
  • 修改预配方案。
  • 更新映像。

Azure 专用主机

可以使用 MCS 在 Azure 专用主机上预配 VM。在 Azure 专用主机上预配 VM 之前:

  • 创建主机组。
  • 在该主机组中创建主机。
  • 确保有足够的主机容量用于创建目录和虚拟机。

可以创建具有通过以下 PowerShell 脚本定义的主机租赁的计算机目录:

<!JEKYLL@5300@187>

使用 MCS 在 Azure 专用主机上预配虚拟机时,请注意:

  • 专用主机是目录属性,一旦创建了目录,则无法进行更改。Azure 当前不支持专用租赁。
  • 使用 <!JEKYLL@5300@188> 参数时,需要在托管单元所在区域中预配置的 Azure 主机组。
  • Azure 自动放置是必需的。此功能请求加载与主机组关联的订阅。有关详细信息,请参阅在 Azure 专用主机上设置 VM 规模 - 公共预览版。如果未启用自动放置,MCS 在目录创建过程中会引发错误。

选择用于创建计算机目录的映像时,可以选择在 Azure Compute Gallery 中创建的映像。

要显示这些图片,您必须:

  1. 配置 Citrix Virtual Apps and Desktops 站点。
  2. 连接到 Azure Resource Manager。
  3. 在 Azure 门户中,创建资源组。有关详细信息,请参阅使用门户创建 Azure Compute Gallery
  4. 在资源组中,创建 Azure Compute Gallery。
  5. 在 Azure Compute Gallery 中,创建映像定义。
  6. 在映像定义中,创建映像版本。

使用以下 PowerShell 命令通过 Azure Compute Gallery 中的映像创建或更新计算机目录:

  1. 打开 PowerShell 窗口。
  2. 运行 <!JEKYLL@5300@189> 以加载 Citrix 特定的 PowerShell 模块。
  3. 选择一个资源组,然后列出该资源组的所有库。

    <!JEKYLL@5300@190>

  4. 选择一个库,然后列出该库的所有映像定义。

    <!JEKYLL@5300@191>

  5. 选择一个映像定义,然后列出该映像定义的所有映像版本。

    <!JEKYLL@5300@192>

  6. 使用以下元素创建和更新 MCS 目录:
    • 资源组
    • 库映像定义
    • 库映像版本

    有关如何使用 Remote PowerShell SDK 创建目录的信息,请参阅 https://developer-docs.citrix.com/projects/citrix-virtual-apps-desktops-sdk/en/latest/creating-a-catalog/

配置共享映像库

使用 <!JEKYLL@5300@193> 命令可在支持共享映像库的情况下创建预配方案。使用 <!JEKYLL@5300@194> 命令为预配方案启用或禁用此功能,并更改副本比率和副本最大值。

在预配方案中添加了三个自定义属性以支持共享映像库功能:

<!JEKYLL@5300@195>

  • 定义是否使用共享映像库存储已发布的映像。如果设置为 True,则映像将存储为共享映像库映像,否则映像将存储为快照。
  • 有效值为 TrueFalse
  • 如果未定义属性,则默认值为 False

<!JEKYLL@5300@196>

  • 定义计算机与库映像版本副本的比率。
  • 有效值为大于 0 的整数。
  • 如果未定义该属性,则将使用默认值。永久操作系统磁盘的默认值为 1000,非永久操作系统磁盘的默认值为 40。

<!JEKYLL@5300@197>

  • 定义每个库映像版本的最大副本数。
  • 有效值为大于 0 的整数。
  • 如果未定义该属性,则默认值为 10。
  • Azure 当前支持多达 10 个库映像单个版本的副本。如果将属性设置为大于 Azure 支持的值,MCS 将尝试使用指定值。Azure 将生成一个错误,MCS 日志之后将当前副本计数保持不变。

提示:

使用共享映像库为 MCS 预配的目录存储已发布的映像时,MCS 会根据目录中的计算机数、副本比率和副本最大值来设置库映像版本副本计数。副本计数的计算方法如下:将目录中的计算机数除以副本比率(四舍五入到最接近的整数值),然后将该值最高限定到最大副本计数。例如,副本比率为 20,最大值为 5,0—20 台计算机将 创建 1 个副本,21—40 台将创建 2 个副本,41-60 台将创建 3 个副本,61—80 台将创建 4 个副本,81 台以上将创建 5 个副本。

用例:更新共享映像库副本比率和副本最大值

现有计算机目录使用共享映像库。使用 <!JEKYLL@5300@198> 命令更新目录中的所有现有计算机以及将来任何计算机的自定义属性:

<!JEKYLL@5300@199>

用例:将快照目录转换为共享映像库目录

对于此用例:

  1. 在 <!JEKYLL@5300@200> 标志设置为 True 的情况下运行 <!JEKYLL@5300@201>。(可选)包括 <!JEKYLL@5300@202> 和 <!JEKYLL@5300@203> 属性。
  2. 更新目录。
  3. 关闭并打开计算机电源以强制更新。

例如:

<!JEKYLL@5300@204>

提示:

参数 <!JEKYLL@5300@205> 和 <!JEKYLL@5300@206> 不是必需的。<!JEKYLL@5300@207> 命令完成后,尚未创建共享映像库映像。将目录配置为使用库后,下一个目录更新操作会将已发布的映像存储在库中。目录更新命令创建库、库映像和映像版本。关闭并打开计算机会对其进行更新,此时副本计数将在适当的情况下更新。自此以后,所有现有的非持久计算机都将使用共享映像库映像重置,并使用该映像创建所有新预配的计算机。旧快照会在几个小时内自动清理。

用例:将共享映像库目录转换为快照目录

对于此用例:

  1. 在 <!JEKYLL@5300@208> 标志设置为 False 或未定义的情况下运行 <!JEKYLL@5300@209>。
  2. 更新目录。
  3. 关闭并打开计算机电源以强制更新。

例如:

<!JEKYLL@5300@210>

提示:

与从快照更新到共享映像库目录不同,每台计算机的自定义数据都尚未更新以反映新的自定义属性。运行以下命令以查看原始的共享映像库自定义属性:<!JEKYLL@5300@211>。<!JEKYLL@5300@212> 命令完成后,尚未创建映像快照。将目录配置为不使用库后,下一个目录更新操作将已发布的映像存储为快照。自此以后,所有现有的非持久计算机都将使用快照重置,并且所有新预配的计算机都是基于该快照创建的。关闭并打开计算机会对其进行更新,此时自定义计算机数据将更新以反映 <!JEKYLL@5300@213> 设置为 False。旧的共享映像库资产(库、映像和版本)将在几个小时内自动清理。

将计算机预配到指定的可用性区域中

可以将计算机预配到 Azure 环境中的特定可用性区域中。可以使用 PowerShell 来实现。

注意:

如果未指定任何区域,MCS 将允许 Azure 将计算机放置在区域内。如果指定了多个区域,MCS 会在这些区域之间随机分配计算机。

通过 PowerShell 配置可用性区域

使用 PowerShell,您可以使用 <!JEKYLL@5300@214> 查看产品清单项目。例如,要查看美国东部地区 <!JEKYLL@5300@215>服务产品,请执行以下操作:

<!JEKYLL@5300@216>

要查看区域,请使用该项目的 <!JEKYLL@5300@217> 参数:

<!JEKYLL@5300@218>

如果未指定可用性区域,计算机的预配方式没有任何变化。

要通过 PowerShell 配置可用性区域,请使用随 <!JEKYLL@5300@219> 操作提供的区域自定义属性。区域属性定义了要在其中预配计算机的可用性区域列表。这些区域可以包括一个或多个可用性区域。例如,<!JEKYLL@5300@220> 对于区域 1 和 3。

使用 <!JEKYLL@5300@221> 命令可更新预配方案的区域。

如果提供的区域无效,则不会更新预配方案,并且会显示一条错误消息,提供有关如何修复无效命令的说明。

提示:

如果指定了无效的自定义属性,则不会更新预配方案,并显示相关的错误消息。

存储类型

为 Azure 环境中使用 MCS 的虚拟机选择不同的存储类型。对于目标 VM,MCS 支持:

  • 操作系统磁盘:高级 SSD、SSD 或 HDD
  • 回写式缓存磁盘:高级 SSD、SSD 或 HDD

使用这些存储类型时,请注意以下事项:

  • 确保您的 VM 支持选定的存储类型。
  • 如果您的配置使用 Azure 临时磁盘,则无法获得回写式缓存磁盘设置的选项。

提示:

<!JEKYLL@5300@222> 已针对操作系统类型和存储帐户进行了配置。<!JEKYLL@5300@223> 已针对写回式缓存存储类型进行了配置。对于常见目录,<!JEKYLL@5300@224> 是必需的。如果未配置 <!JEKYLL@5300@225>,则会将 <!JEKYLL@5300@226> 用作 <!JEKYLL@5300@227> 的默认值。

如果未配置 WBCDiskStorageType,则会将 StorageType 用作 WBCDiskStorageType 的默认值

配置存储类型

要配置 VM 的存储类型,请使用 <!JEKYLL@5300@228> 中的 <!JEKYLL@5300@229> 参数。将 <!JEKYLL@5300@230> 参数的值设置为受支持的存储类型之一。

下面是预配方案中的一组示例 <!JEKYLL@5300@231> 参数:

<!JEKYLL@5300@232>

启用区域冗余存储

在创建目录期间,您可以选择区域冗余存储。它跨多个可用性区域同步复制您的 Azure 托管磁盘,这允许您利用其他区域中的冗余从一个区域中的故障中恢复。

可以在存储类型自定义属性中指定 Premium_ZRSStandardSSD_ZRS。ZRS 存储可以使用现有的自定义属性或者通过 MachineProfile 模板进行设置。带 <!JEKYLL@5300@233> 和 <!JEKYLL@5300@234> 参数的 <!JEKYLL@5300@235> 命令还支持 ZRS 存储,您可以将现有计算机从 LRS 存储更改为 ZRS 存储。

限制:

  • 仅支持托管磁盘
  • 仅支持高级和标准固态驱动器 (SSD)
  • 不支持 <!JEKYLL@5300@236>
  • 仅在某些地区可用。
  • 大规模创建 ZRS 磁盘时,Azure 的性能会下降。因此,首次打开电源时,请小批量打开计算机(一次少于 300 台计算机)

将区域冗余存储设置为磁盘存储类型

您可以在初始目录创建期间选择区域冗余存储,也可以更新现有目录中的存储类型。

使用 PowerShell 命令选择区域冗余存储

使用 <!JEKYLL@5300@237> PowerShell 命令在 Azure 中创建新目录时,请使用 <!JEKYLL@5300@238> 作为 <!JEKYLL@5300@239> 中的值。 例如:

<!JEKYLL@5300@240>

设置此值时,它将由动态 API 进行验证,以确定该值是否可以正确使用。如果 ZRS 的使用对您的目录无效,则可能会出现以下异常:

  • StorageTypeAtShutdownNotSupportedForZrsDisks:StorageTypeAtShutdown 自定义属性不能用于 ZRS 存储。
  • StorageAccountTypeNotSupportedInRegion:如果您尝试在不支持 ZRS 的 Azure 区域中使用 ZRS 存储,则会出现此异常
  • ZrsRequiresManagedDisks:区域冗余存储只能用于托管磁盘。

可以使用以下自定义属性设置磁盘存储类型:

  • <!JEKYLL@5300@241>
  • <!JEKYLL@5300@242>
  • <!JEKYLL@5300@243>

注意:

在创建目录期间,如果未设置自定义属性,则将使用计算机配置文件的操作系统磁盘 <!JEKYLL@5300@244>。

从计算机配置文件中捕获 VM 和 NIC 上的诊断设置

在创建计算机目录、更新现有计算机目录和更新现有 VM 过程中,可以从计算机配置文件中捕获 VM 和 NIC 上的诊断设置。

可以创建 VM 或模板规范作为计算机配置文件来源。

关键步骤

  1. 在 Azure 中设置所需的 ID。必须在模板规范中提供这些 ID。

    • 存储帐户
    • 日志分析工作区
    • 采用标准分层定价的事件中心命名空间
  2. 创建计算机配置文件源。
  3. 创建新计算机目录、更新现有目录或更新现有 VM。

在 Azure 中设置所需的 ID

在 Azure 中设置以下选项之一:

  • 存储帐户
  • 日志分析工作区
  • 采用标准分层定价的事件中心命名空间

设置存储帐户

在 Azure 中创建标准存储帐户。在模板规范中,将存储帐户的完整资源 ID 指定为 <!JEKYLL@5300@245>。

将 VM 设置为将数据记录到存储帐户后,可以在 <!JEKYLL@5300@246> 容器下找到数据。

设置日志分析工作区

创建日志分析工作区。在模板规范中,将日志分析工作区的完整资源 ID 作为工作区 ID。

将 VM 设置为将数据记录到工作区后,即可在 Azure 中的“Logs”(日志)下查询数据。可以在 Azure 中的“Logs”(日志)下运行以下命令,以显示资源记录的所有指标的计数:

`AzureMetrics

设置事件中心

要在 Azure 门户中设置事件中心,请执行以下操作:

  1. 使用标准分层定价创建事件中心命名空间。
  2. 在命名空间下创建事件中心。
  3. 导航到事件中心下的 Capture(捕获)。打开开关,使用 Avro 输出类型进行捕获。
  4. 在现有存储帐户中创建一个新容器来捕获日志。
  5. 在模板规范中,请按以下格式指定 eventHubAuthorizationRuleId/subscriptions/093f4c12-704b-4b1d-8339-f339e7557f60/resourcegroups/matspo/providers/Microsoft.EventHub/namespaces/matspoeventhub/authorizationrules/RootManageSharedAccessKey
  6. 指定事件中心的名称。

一旦 VM 设置为将数据记录到事件中心,数据就会捕获到配置的存储容器中。

创建计算机配置文件源

可以创建 VM 或模板规范作为计算机配置文件来源。

使用诊断设置创建基于 VM 的计算机配置文件

如果您想创建 VM 作为计算机配置文件,请先在模板 VM 自身中设置诊断设置。可以参考 Microsoft 文档 Diagnostic settings in Azure Monitor(Azure Monitor 中的诊断设置)中提供的详细说明。

可以运行以下命令来验证现在是否存在与 VM 或 NIC 关联的诊断设置:

az monitor diagnostic-settings list --resource-group matspo --resource matspo-tog-cc2659 --resource-type microsoft.network/networkInterfaces
<!--NeedCopy-->
az monitor diagnostic-settings list --resource-group matspo --resource matspo-tog-cc2 --resource-type microsoft.compute/virtualMachines
<!--NeedCopy-->

使用诊断设置创建基于模板规范的计算机配置文件

如果您想使用启用了诊断设置的 VM 并将其导出到 ARM 模板规范中,则这些设置不会自动包含在模板中。必须在 ARM 模板中手动添加或修改诊断设置。

但是,如果您想使用 VM 作为计算机配置文件,MCS 可确保准确捕获关键诊断设置并将其应用到 MCS 目录中的资源。

  1. 创建用于定义 VM 和 NIC 的标准模板规范。
  2. 根据规范添加其他资源来部署诊断设置:Microsoft.Insights diagnosticSettings。对于作用域,请按名称引用模板中带有部分 ID 的 VM 或 NIC。例如,要在模板规范中创建附加到名为 test-VM 的 VM 的诊断设置,请将作用域指定为:

    "scope": "microsoft.compute/virtualMachines/test-VM",
    <!--NeedCopy-->
    
  3. 使用模板规范作为计算机配置文件来源。

使用诊断设置创建或更新目录

创建计算机配置文件源后,您现在可以使用 New-ProvScheme 命令创建计算机目录,使用 Set-ProvScheme 命令更新现有计算机目录,使用 Request-ProvVMUpdate 命令更新现有 VM。

页面文件位置

在 Azure 环境中,页面文件在首次创建 VM 时设置到适当的位置。页面文件设置使用格式 <page file location>[min size] [max size] 进行配置(大小以 MB 为单位)。有关详细信息,请参阅 Microsoft 文档 How to determine the appropriate page file(如何确定适当的页面文件)。

在映像准备期间创建 ProvScheme 时,MCS 会根据特定规则确定页面文件的位置。在您创建 ProvScheme 后:

  • 如果传入的 VM 大小导致页面文件设置不同,则会阻止更改 VM 大小。
  • 如果由于计算机配置文件更新导致页面文件设置不同而更改了服务方案,则会阻止计算机配置文件更新。
  • 临时操作系统磁盘 (EOS) 和 MCSIO 属性无法更改。

页面文件位置确定

EOS 和 MCSIO 等功能有自己的预期页面文件位置,并且相互排斥。下表显示了每种功能的预期页面文件位置:

功能 预期页面文件位置
EOS 操作系统磁盘
MCSIO 先选择 Azure 临时磁盘,否则选择“回写式缓存磁盘”

注意:

即使映像准备与预配方案创建分离,MCS 也会正确地确定页面文件位置。默认页面文件位置位于操作系统磁盘上。

页面文件设置场景

下表描述了映像准备和预配方案更新期间页面文件设置的一些可能的情况:

场景 结果
映像准备 源映像页面文件在临时磁盘上设置,而在预配方案中指定的 VM 大小没有临时磁盘 页面文件放置在操作系统磁盘上
映像准备 源映像页面文件在操作系统磁盘上设置,而在预配方案中指定的 VM 大小具有临时磁盘。 页面文件放置在临时磁盘上
映像准备 源映像页面文件在临时磁盘上设置,但在预配方案中启用临时操作系统磁盘。 页面文件放置在操作系统磁盘上
预配方案更新 您尝试更新置备方案,原始 VM 大小具有临时磁盘,而目标 VM 没有临时磁盘。 拒绝带错误消息的更改
预配方案更新 您尝试更新预配方案,原始 VM 大小没有临时磁盘,目标 VM 有临时磁盘 拒绝带错误消息的更改

更新页面文件设置

您还可以使用 PowerShell 命令明确指定页面文件设置,包括位置和大小。这将覆盖 MCS 确定的值。可以通过运行 New-ProvScheme命令并包含以下自定义属性来实现此目的:

  • PageFileDiskDriveLetterOverride:页面文件位置磁盘驱动器盘符
  • InitialPageFileSizeInMB:初始页面文件大小,以 MB 为单位
  • MaxPageFileSizeInMB:最大页面文件大小,以 MB 为单位

使用自定义属性的示例:

-CustomProperties '<CustomProperties xmlns=" http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"> `
<Property xsi:type="StringProperty" Name="PersistOsDisk" Value="false"/> `
<Property xsi:type="StringProperty" Name="PersistVm" Value="false"/> `
<Property xsi:type="StringProperty" Name="PageFileDiskDriveLetterOverride" Value="d"/> `
<Property xsi:type="StringProperty" Name="InitialPageFileSizeInMB" Value="2048"/> `
<Property xsi:type="StringProperty" Name="MaxPageFileSizeInMB" Value="8196"/> `
<Property xsi:type="StringProperty" Name="StorageAccountType" Value="Premium_LRS"/> `
<Property xsi:type="StringProperty" Name="LicenseType" Value="Windows_Client"/> `
</CustomProperties>'
<!--NeedCopy-->

限制:

  • 只有在通过运行 New-ProvScheme 命令创建预配方案时才能更新页面文件设置,以后无法更改页面文件设置。
  • 在自定义属性中提供所有页面文件设置相对属性(PageFileDiskDriveLetterOverrideInitialPageFileSizeInMBMaxPageFileSizeInMB),或者不提供任何属性。
  • 初始页面文件大小必须介于 16 MB 到 16777216 MB 之间。
  • 最大页面文件大小必须大于或等于初始页面文件大小且小于 16777216 MB。
  • Web Studio 不支持此功能。

使用 Azure 现成 VM 创建目录

Azure 现成 VM 允许您利用 Azure 未使用的计算容量,从而节省大量成本。但是,分配 Azure 现成 VM 的能力取决于当前的容量和定价。因此,Azure 可能会逐出您的正在运行的 VM,无法创建 VM,或者无法按照 Eviction policy(逐出策略)打开 VM 的电源。因此,Azure 现成 VM 适用于某些非关键应用程序和桌面。有关详细信息,请参阅 Use Azure Spot Virtual Machines(使用 Azure 现成虚拟机)。

限制

  • Azure 现成 VM 不支持所有 VM 大小。有关详细信息,请参阅限制

    可以运行以下 PowerShell 命令来检查 VM 大小是否支持现成 VM。如果 VM 大小支持现成 VM,则 SupportsSpotVM 设置为 True

     (Get-Item "XDHyp:\HostingUnits\azure-res-conn2\serviceoffering.folder\Standard_D2ds_v4.serviceoffering"). AdditionalData
     <!--NeedCopy-->
    
  • 目前,Azure 现成 VM 不支持休眠。

要求

为 Azure 现成 VM 目录创建计算机配置文件源(VM 或模板规范)时,必须选择 Azure 现成实例(如果使用 VM)或者将 priority 设置为 Spot(如果使用模板规范)。

使用 Azure 现成 VM 创建目录的步骤

  1. 创建计算机配置文件源(VM 或启动模板)。

    • 要使用 Azure 门户创建 VM,请参阅 Deploy Azure Spot Virtual Machines using the Azure portal(使用 Azure 门户部署 Azure 现成虚拟机)。
    • 要创建模板规范,请在模板规范中的 resources > type: Microsoft.Compute/virtualMachines > properties 下添加以下属性。例如:

       "priority": "Spot",
       "evictionPolicy": "Deallocate",
       "billingProfile": {
       "maxPrice": 0.01
       }
       <!--NeedCopy-->
      

    注意:

    • 逐出策略可以是 Deallocate(取消分配)或 Delete(删除)。
      • 对于非永久 VM,MCS 始终将逐出策略设置为 Delete(删除)。如果 VM 已逐出,则会将其与所有非永久磁盘(例如,操作系统磁盘)一起删除。不会删除任何永久磁盘(例如,身份磁盘)。但是,如果目录类型为永久或者自定义属性 PersistOsDisk 设置为“True”,操作系统磁盘将具有永久。同样,如果将自定义属性 PersistWbc 设置为 True,WBC 磁盘将具有永久。
      • 对于永久 VM,MCS 始终将逐出策略设置为“Deallocate”(取消分配)。如果 VM 已逐出,它将被取消分配。未对磁盘进行任何更改。
    • 最高价格是指您愿意每小时支付的价格。如果您使用的是 Capacity Only(仅限容量),此值将为 -1。最高价格只能为 null、-1 或大于零的十进制数。有关详细信息,请参阅 Pricing(定价)。
  2. 可以运行以下 PowerShell 命令来检查计算机配置文件是否启用了 Azure 现成 VM。如果 SpotEnabled 参数设置为 TrueSpotEvictionPolicy 设置为 Deallocate(取消分配)或 Delete(删除),则计算机配置文件启用了 Azure 现成 VM。例如,

    • 如果计算机配置文件源为 VM,请运行以下命令:

       (Get-Item "XDHyp:\HostingUnits\azure-res-conn2\machineprofile.folder\fifthcolumn.resourcegroup\kb-spot-delete.vm"). AdditionalData
       <!--NeedCopy-->
      
    • 如果计算机配置文件源为模板规范,请运行以下命令:

       (Get-Item "XDHyp:\HostingUnits\azure-res-conn2\machineprofile.folder\fifthcolumn.resourcegroup\fc-aeh-templatespec.templatespec\14.0.0-spot-delete.templatespecversion").AdditionalData
       <!--NeedCopy-->
      
  3. 使用计算机配置文件通过 New-ProvScheme PowerShell 命令创建计算机目录。

可以使用 Set-ProvScheme 命令更新目录。也可以使用 PowerShell 命令 Set-ProvVmUpdateTimeWindow 更新现有 VM。计算机配置文件将在下次打开电源时更新。

正在运行的 Azure 现成 VM 上的逐出

如果计算容量不可用或者每小时价格高于配置的最高价格,Azure 会逐出正在运行的现成 VM。默认情况下,您不会收到逐出通知。VM 只会冻结并且 VM 会被逐出。Microsoft 建议使用计划事件来监视逐出。请参阅 Continuously monitor for eviction(持续监视逐出)。您还可以在 VM 内部运行脚本,以便在逐出之前收到通知。例如,Microsoft 在 Python ScheduledEvents.cs 中有一个投票脚本。

故障排除

  • 可以使用 Get-ProvVM 命令在预配的 VM 的 customMachineData 中查看现成 VM 属性。如果优先级字段设置为 Spot(现成虚拟机),则将使用现成虚拟机。
  • 可以在 Azure 门户中检查 VM 是否在使用现成虚拟机:

    1. 在 Azure 门户中查找 VM。
    2. 转到 Overview(概述)页面。
    3. 向下滚动到底部并找到 Azure Spot(Azure 现成虚拟机)部分。

      • 如果未使用现成虚拟机,则此字段为空。
      • 如果正在使用现成 VM,则会设置 Azure Spot(Azure 现成虚拟机)和 Azure Spot eviction policy(Azure 现成虚拟机逐出策略)字段。
  1. 可以在“配置”页面上查看 VM 的计费配置文件或每小时最高价格。

配置备份 VM 大小

公有云有时会耗尽特定 VM 大小的容量。此外,如果您使用 Azure 现成 VM,则会根据 Azure 的容量需求随时逐出 VM。在 Azure 容量不足或者现成 VM 打开电源失败的情况下,MCS 会回退到备份 VM 的大小。在创建或更新 MCS 计算机目录过程中,您可以使用自定义属性 BackupVmConfiguration 提供备份 VM 大小列表。MCS 尝试转而按照您在列表中提供的顺序依靠备份 VM 大小。

当 MCS 为 VM 使用特定的备份配置时,它会继续使用该配置,直到下次关闭。下次打开电源时,MCS 会尝试引导主 VM 配置。如果出现故障,MCS 将再次尝试按照列表引导备份 VM 大小配置。

以下目录支持此功能:

  • 使用计算机配置文件的目录
  • 永久和非永久 MCS 计算机目录
  • 当前 Azure 环境

重要注意事项

  • 可以在列表中提供多个备份 VM 大小。
  • 该列表必须唯一。
  • 可以为列表中的每个 VM 添加实例类型属性。类型为 Spot(现成虚拟机)或 Regular(常规虚拟机)。如果未指定类型,则 MCS 会将 VM 视为 Regular(常规)虚拟机。
  • 可以使用 PowerShell 命令 Set-ProvScheme 更改现有目录的备份 VM 大小列表。
  • 可以使用 Set-ProvVMUpdateTimeWindow 命令更新根据与目录关联的预配方案创建的现有 VM。
  • 可以使用 Set-ProvVM 命令为选定数量的现有 MCS VM 配置备份 VM 大小列表。但是,要应用更新,请使用 Set-ProvVMUpdateTimeWindow 为 VM 设置更新时间段,并在该时间段内启动 VM。如果在 VM 上使用 Set-ProvVm 命令,则即使预配方案中的列表稍后更新,VM 也会继续使用在该特定 VM 上设置的备份 VM 大小列表。可以将 Set-ProvVM-RevertToProvSchemeConfiguration 一起使用,让 VM 使用预配方案中的备份列表。

使用备份 VM 大小创建目录

  1. 打开 PowerShell 窗口。
  2. 运行 asnp citrix* 以加载 Citrix 特定的 PowerShell 模块。
  3. 创建 Broker 目录。此目录由即将创建的计算机进行填充。
  4. 创建标识池。标识池将用作为即将创建的计算机而创建的 AD 帐户的容器。
  5. 使用计算机配置文件创建预配方案。例如:

    • 如果您只想提供常规 VM 大小的列表,请运行以下命令:

       New-ProvScheme -ProvisioningSchemeName "azure-catalog" -MasterImageVM "XDHyp:\HostingUnits\azure-zones\image.folder\helenli.resourcegroup\helenli-master1-mcsio-snapshot.snapshot"
       -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=`"StorageAccountType`" Value=`"Premium_LRS`" />
       <Property xsi:type=`"StringProperty`" Name=`"LicenseType`" Value=`"Windows_Server`"/>
       <Property xsi:type=`"StringProperty`" Name=`"PersistWBC`" Value=`"true`"/>  <Property xsi:type=`"StringProperty`" Name=`"BackupVmConfiguration`" Value=`"['ServiceOffering': 'Standard_D2as_v4', 'ServiceOffering': 'Standard_D2s_v3', 'ServiceOffering': 'C']`"/>
       </CustomProperties>"
       <!--NeedCopy-->
      
    • 如果您想提供混合 VM 大小(常规 VM 和现成 VM)的列表,请运行以下命令:

       New-ProvScheme -ProvisioningSchemeName "azure-catalog" -MasterImageVM "XDHyp:\HostingUnits\azure-zones\image.folder\helenli.resourcegroup\helenli-master1-mcsio-snapshot.snapshot"
       -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=`"StorageAccountType`" Value=`"Premium_LRS`" />
       <Property xsi:type=`"StringProperty`" Name=`"LicenseType`" Value=`"Windows_Server`"/>
       <Property xsi:type=`"StringProperty`" Name=`"PersistWBC`" Value=`"true`"/>  <Property xsi:type=`"StringProperty`" Name=`"BackupVmConfiguration`" Value=`"[{'ServiceOffering': 'Standard_D2as_v4', 'Type': 'Spot'}, {'ServiceOffering': 'Standard_D2s_v3', 'Type': 'Regular'}, {'ServiceOffering': 'Standard_D2s_v3', 'Type': 'Spot'}]`"/>
       </CustomProperties>"
       <!--NeedCopy-->
      
  6. 通过预配方案的唯一 ID 更新 Broker 目录。
  7. 创建 VM 并将其添加到目录中。

更新现有目录

可以使用 Set-ProvScheme 命令更新预配方案。例如:

Set-ProvScheme -ProvisioningSchemeName "azure-catalog"
-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=`"StorageAccountType`" Value=`"Premium_LRS`" />
<Property xsi:type=`"StringProperty`" Name=`"LicenseType`" Value=`"Windows_Server`"/>
<Property xsi:type=`"StringProperty`" Name=`"PersistWBC`" Value=`"true`"/>
<Property xsi:type=`"StringProperty`" Name=`"BackupVmConfiguration`" Value=`"[{'ServiceOffering': 'Standard_D2as_v4', 'Type': 'Spot'}, {'ServiceOffering': 'Standard_D2s_v3', 'Type': 'Regular'}, {'ServiceOffering': 'Standard_D2s_v3', 'Type': 'Spot'}]`"/>
</CustomProperties>"
<!--NeedCopy-->

更新现有 VM

可以使用 Set-ProvVMUpdateTimeWindow PowerShell 命令更新目录中的现有 VM。 该命令会在给定时间段内下次打开电源时更新根据与目录关联的预配方案创建的 VM。例如:

  • Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName azure-catalog -StartTimeInUTC "3/12/2022 3am" -DurationInMinutes 60
  • Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName azure-catalog -StartsNow -DurationInMinutes 60

注意:

StartsNow 表示计划的开始时间。DurationInMinutes 是计划的时间段。

可以使用 Set-ProvVM 命令为选定数量的现有 MCS VM 配置备份 VM 大小列表。但是,要应用更新,请使用 Set-ProvVMUpdateTimeWindow 为 VM 设置更新时间段,并在该时间段内启动 VM。例如:

  1. 运行 Set-ProvVM 命令为选定的现有 MCS VM 配置备份 VM 大小列表。例如:

    Set-ProvVM -VMName "Vm-001"
    -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=`"StorageAccountType`" Value=`"Premium_LRS`" />
    <Property xsi:type=`"StringProperty`" Name=`"LicenseType`" Value=`"Windows_Server`"/>
    <Property xsi:type=`"StringProperty`" Name=`"PersistWBC`" Value=`"true`"/>
    <Property xsi:type=`"StringProperty`" Name=`"BackupVmConfiguration`" Value=`"[{'ServiceOffering': 'Standard_D2as_v4', 'Type': 'Spot'}, {'ServiceOffering': 'Standard_D2s_v3', 'Type': 'Regular'}, {'ServiceOffering': 'Standard_D2s_v3', 'Type': 'Spot'}]`"/>
    </CustomProperties>"
    <!--NeedCopy-->
    
  2. 运行 Set-ProvVMUpdateTimeWindow 命令以应用更新。例如:

    Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName azure-catalog -StartsNow -DurationInMinutes 60
    <!--NeedCopy-->
    

复制所有资源上的标记

可以将在计算机配置文件中指定的标记复制到所有资源,例如新 VM 或计算机目录中的现有 VM 的多个 NIC 和磁盘(操作系统磁盘、身份磁盘和回写式缓存磁盘)。计算机配置文件来源可以是 VM 或 ARM 模板规范。

注意:

必须在标记上添加策略(请参阅为标记合规性分配策略定义)或者在计算机配置文件源中添加标记以保留资源上的被标记。

必备条件

创建计算机配置文件源(VM 或 ARM 模板规范),以便在 VM、磁盘和该 VM 的 NIC 上添加标记。

  • 如果您想将 VM 作为计算机配置文件输入,请在 VM 和 Azure 门户中的所有资源上应用标记。请参阅 Apply tags with Azure portal(使用 Azure 门户应用标记)。
  • 如果您想将 ARM 模板规范作为计算机配置文件输入,请在每个资源下添加以下标记块。

      "tags": {
     "TagC": "Value3"
     },
     <!--NeedCopy-->
    

注意:

模板规范中最多可以有一个磁盘和至少一个 NIC。

将标记复制到新计算机目录中的 VM 的资源

  1. 使用 VM 或 ARM 模板规范作为计算机配置文件输入来创建非永久目录或永久目录。
  2. 将 VM 添加到目录中并打开电源。您必须看到在计算机配置文件中指定的标记复制到该 VM 的相应资源。

    注意:

    如果在计算机配置文件中提供的 NIC 数量与您希望 VM 使用的 NIC 数量不匹配,则会出现错误。

修改现有 VM 的资源上的标记

  1. 使用所有资源上的标记创建计算机配置文件。
  2. 使用更新后的计算机配置文件更新现有计算机目录。例如:

    Set-ProvScheme -ProvisioningSchemeName <YourCatalogName> -MachineProfile <PathToYourMachineProfile>
    <!--NeedCopy-->
    
  3. 关闭要对其应用更新的 VM。
  4. 请求对 VM 进行计划的更新。例如:

    Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName <YourCatalogName>  -VMName machine1 -StartsNow -DurationInMinutes -1
    <!--NeedCopy-->
    
  5. 打开 VM。
  6. 您必须看到在计算机配置文件中指定的标记复制到相应的资源。

注意:

如果在计算机配置文件中提供的 NIC 数量与在 Set-ProvScheme 中提供的 NIC 数量不匹配,则会出现错误。

下一步的去向

更多信息

创建 Microsoft Azure 目录

在本文中