Citrix DaaS™

创建 Microsoft Azure 目录

注意:

自 2023 年 7 月起,Microsoft 已将 Azure Active Directory (Azure AD) 更名为 Microsoft Entra ID。本文档中,任何对 Azure Active Directory、Azure AD 或 AAD 的引用现在均指 Microsoft Entra ID。

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

注意:

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

创建计算机目录

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

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

此信息是对创建计算机目录中指导的补充。

映像可以是磁盘、快照,也可以是 Azure Compute Gallery 中映像定义的映像版本,用于在计算机目录中创建虚拟机。

在创建计算机目录之前,请在 Azure Resource Manager 中创建映像。

注意:

  • 使用非托管磁盘预配虚拟机已弃用。
  • 不支持使用与主机连接中配置的区域不同的区域中的主映像。请使用 Azure Compute Gallery 将主映像复制到所需区域。

创建 MCS 计算机目录时,将根据原始虚拟机创建一个临时虚拟机,以执行 DHCP 启用和许可证重新武装等准备任务。此临时虚拟机称为准备虚拟机。此准备虚拟机的名称遵循 Preparati-84x9n 格式,其中最后五个字符是随机生成的,以避免重复。此准备虚拟机的命名约定是固定的,无法自定义。准备任务完成后,准备虚拟机将被销毁。

为了断开与准备虚拟机的网络连接,将创建一个网络安全组以拒绝所有入站和出站流量。网络安全组每个目录自动创建一次。网络安全组的名称为 Citrix-Deny-All-a3pgu-GUID,其中 GUID 是随机生成的。例如,Citrix-Deny-All-a3pgu-3f161981-28e2-4223-b797-88b04d336dd1

在计算机目录创建向导中:

  1. 计算机类型计算机管理页面不包含 Azure 特定的信息。请遵循创建计算机目录文章中的指导。

  2. 映像页面上,选择要用作目录中所有计算机的主映像的映像。选择映像向导随即出现。请按照以下步骤选择映像:

    1. (仅适用于在租户内部或跨租户配置了共享映像的连接)选择映像所在的订阅。
    2. 选择资源组。
    3. 导航到 Azure 托管磁盘、Azure Compute Gallery 或 Azure 映像版本。

    选择映像时,请考虑以下事项:

    • 验证映像上是否安装了 Citrix VDA。
    • 如果选择连接到虚拟机的磁盘,则必须在继续下一步之前关闭虚拟机。

    注意:

    • 与创建目录中计算机的连接(主机)对应的订阅用绿点表示。其他订阅是与该订阅共享 Azure Compute Gallery 的订阅。在这些订阅中,仅显示共享库。有关如何配置共享订阅的信息,请参阅在租户内(跨订阅)共享映像跨租户共享映像
    • 您可以使用 Windows 上的临时操作系统磁盘和可信启动创建预配方案。当您选择具有可信启动的映像时,必须选择具有启用 vTPM 的可信启动的计算机配置文件。要使用临时操作系统磁盘创建计算机目录,请参阅如何使用临时操作系统磁盘创建计算机
    • 当映像复制正在进行时,您可以继续选择映像作为主映像并完成设置。但是,在映像复制期间,目录创建可能需要更长时间才能完成。MCS 要求复制在目录创建后一小时内完成。如果复制超时,目录创建将失败。您可以在 Azure 中验证复制状态。如果复制仍在挂起或复制完成后,请重试。
    • 您可以使用 Gen2 映像预配 Gen2 虚拟机目录,以提高启动时间性能。但是,不支持使用 Gen1 映像创建 Gen2 计算机目录。同样,也不支持使用 Gen2 映像创建 Gen1 计算机目录。此外,任何没有生成信息的旧映像都是 Gen1 映像。

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

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

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

    注意:

    • 在 Azure 中为计算机目录选择主映像时,计算机配置文件将根据您选择的主映像进行筛选。例如,计算机配置文件将根据 Windows 操作系统、安全类型、休眠支持和主映像的磁盘加密集 ID 进行筛选。
    • 当您选择已启用可信启动的映像或快照时,使用安全类型为可信启动的计算机配置文件是强制性的。然后,您可以通过在计算机配置文件中指定其值来启用或禁用安全启动和 vTPM。有关 Azure 可信启动的信息,请参阅 https://docs.microsoft.com/en-us/azure/virtual-machines/trusted-launch

    验证 ARM 模板规范,以确保其可以用作计算机配置文件来创建计算机目录。有关创建 Azure 模板规范的信息,请参阅创建 Azure 模板规范

    有两种方法可以验证 ARM 模板规范:

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

      例如:

       Test-ProvInventoryItem -HostingUnitName "we-vdi0101-d-vnet" -InventoryPath machineprofile.folder/vdi01-d-rg.resourcegroup/VDD-templ-spec.templatespec/1.5.templatespecversion
       <!--NeedCopy-->
      

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

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

    重要:

    • 仅显示已启用 Azure 自动放置的主机组。
    • 使用主机组会更改向导后面提供的虚拟机页面。该页面上仅显示所选主机组包含的计算机大小。此外,可用性区域会自动选择,不可供选择。
  3. 存储和许可证类型页面仅在使用 Azure Resource Manager 映像时显示。

    您可以为计算机目录使用以下存储类型:

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

    注意:

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

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

    选择是使用现有 Windows 许可证还是 Linux 许可证:

    • Windows 许可证:将 Windows 许可证与 Windows 映像(Azure 平台支持映像或自定义映像)结合使用,可以降低在 Azure 中运行 Windows 虚拟机的成本。有两种类型的许可证:

      • Windows Server 许可证。允许您使用 Windows Server 或 Azure Windows Server 许可证,从而可以使用 Azure 混合权益。有关详细信息,请参阅 https://azure.microsoft.com/en-us/pricing/hybrid-benefit/。Azure 混合权益将 Azure 中运行虚拟机的成本降低到基本计算费率,免除了 Azure 库中额外 Windows Server 许可证的成本。

      • Windows 客户端许可证。允许您将 Windows 10 和 Windows 11 许可证带到 Azure,从而可以在 Azure 中运行 Windows 10 和 Windows 11 虚拟机,而无需额外许可证。有关详细信息,请参阅客户端访问许可证和管理许可证

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

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

    请参阅以下内容:

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

    Azure Compute Gallery 是用于管理和共享映像的存储库。它允许您在整个组织中提供映像。我们建议您在创建大型非持久性计算机目录时将映像存储在 Azure Compute Gallery 中,因为这样做可以加快 VDA 操作系统磁盘的重置和填充速度,从而缩短非持久性虚拟机的启动和应用程序启动时间。Azure Compute Gallery 包含以下三个元素:

    • 库:映像存储在此处。MCS 为每个计算机目录创建一个库。
    • 库映像定义:此定义包含有关已发布映像的信息(操作系统类型和状态、Azure 区域)。MCS 为为目录创建的每个映像创建一个映像定义。
    • 库映像版本:Azure Compute Gallery 中的每个映像可以有多个版本,每个版本可以在不同区域有多个副本。每个副本都是已发布映像的完整副本。Citrix DaaS 为每个映像创建一个 Standard_LRS 映像版本(版本 1.0.0),并在目录区域中包含适当数量的副本,具体取决于目录中的计算机数量、配置的副本比率和配置的最大副本数。

    注意:

    Azure Compute Gallery 功能仅与托管磁盘兼容。它不适用于旧版计算机目录。

    有关 Azure Compute Gallery 的详细信息,请参阅Azure 共享映像库概述

    注意:

    在 ACG 中创建了一个库来存储映像。此库仅供 MCS 用于虚拟机创建,不会显示在选择映像页面上。

  4. 虚拟机页面上,指示要创建的虚拟机数量和计算机大小。创建目录后,可以通过编辑目录来更改计算机大小。

    现在,当主计算机大小达到满容量时,您可以配置辅助虚拟机。要配置辅助虚拟机大小,请单击辅助大小(可选)

    1. 辅助计算机大小窗口中,列出的虚拟机同时具有 Spot 和常规虚拟机类型。您最多可以选择 10 个辅助计算机大小。一旦选择了 10 个虚拟机,则列出的其他虚拟机将禁用进一步选择。
    2. 单击下一步。在辅助计算机大小边栏选项卡中,您可以选择多个计算机大小并拖放以更改优先级顺序。单击完成。 所选的计算机大小将显示在辅助大小(可选)中。单击编辑图标以根据需要进行编辑。

    注意:

    • 如果为主虚拟机设置了临时磁盘大小属性,则仅列出设置了临时磁盘大小属性的辅助虚拟机。
    • 如果未为主虚拟机设置临时磁盘大小属性,则列出未设置临时磁盘大小属性的辅助虚拟机。
    • 如果修改主虚拟机,则必须重新配置辅助虚拟机。
    • 计算机配置文件对于辅助计算机大小是强制性的。
    • 仅当满足以下条件之一时,才显示不支持 Spot 的辅助虚拟机大小;否则,显示所有辅助虚拟机大小:
    • 主虚拟机大小不支持 Spot
    • 主虚拟机大小支持 Spot 但 MP 不支持 Spot
    • 计算机配置文件支持休眠
  5. NIC页面不包含 Azure 特定的信息。请遵循创建计算机目录文章中的指导。
  6. 磁盘设置页面上,选择是否启用回写缓存。启用 MCS 存储优化功能后,您可以在创建目录时配置以下设置。

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

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

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

      • 高级 SSD
      • 标准 SSD
      • 标准 HDD
    • 选择是否希望回写缓存磁盘对预配的虚拟机持久化。选择启用回写缓存以使选项可用。默认情况下,使用非持久性回写缓存磁盘处于选中状态。

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

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

      注意:

      如果满足以下所有条件,目录会自动将 Azure 临时磁盘用于 WBC 磁盘:

      • MCSIO 已启用。
      • WBC 磁盘是非持久性的。
      • 虚拟机大小足以容纳 WBC 磁盘的临时磁盘。
      • 未为 WBC 磁盘指定驱动器号。

      此功能适用于目录创建和编辑,有助于降低您的存储成本。

    • 选择是否在电源循环期间保留 VDA 的虚拟机和系统磁盘。

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

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

      注意:

      Microsoft 对虚拟机关闭时更改存储类型施加了限制。Microsoft 也可能在未来阻止存储类型更改。有关详细信息,请参阅此 Microsoft 文章

    • 选择是否加密此目录中计算机上的数据以及使用哪个加密密钥。使用客户管理的密钥 (CMK) 进行服务器端加密允许您在托管磁盘级别管理加密并保护目录中计算机上的数据。默认设置继承自计算机配置文件或主映像,配置文件具有优先级:

      • 如果您使用带有 CMK 的计算机配置文件,则使用以下密钥加密每台计算机上的数据选项会自动选中并默认为计算机配置文件中的密钥。
      • 如果您使用带有平台管理的密钥 (PMK) 的计算机配置文件,并且主映像是 CMK 加密的,则使用以下密钥加密每台计算机上的数据选项会自动选中并默认为主映像中的密钥。
      • 如果您使用计算机配置文件,并且主映像是 CMK 加密的,则使用以下密钥加密每台计算机上的数据选项会自动选中并默认为主映像中的密钥。

    有关详细信息,请参阅Azure 服务器端加密

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

    • 如果选择创建资源组,请选择下一步
    • 如果选择使用现有资源组,请从可用预配资源组列表中选择组。

    注意:

    选择足够的组以容纳您在目录中创建的计算机。如果您选择的组太少,则会显示一条消息。如果您计划稍后向目录添加更多虚拟机,您可能希望选择多于最低要求的组。目录创建后,您无法向目录添加更多资源组。

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

  8. 计算机标识页面上,选择标识类型并配置此目录中计算机的标识。如果选择虚拟机作为已加入 Azure Active Directory,则可以将其添加到 Azure AD 安全组。详细步骤如下:

    1. 标识类型字段中,选择已加入 Azure Active Directory
    2. 单击选择服务帐户并选择具有Azure AD 安全组管理功能的服务帐户。
    3. 单击Azure AD 安全组:新建

      注意:

      如果所选服务帐户缺少Azure AD 安全组管理功能,则新建将变灰。

    4. 输入组名称,然后单击创建

    5. 要将安全组添加到分配的安全组,请选择作为成员加入分配的安全组,然后单击选择组以选择要加入的分配组。
    6. 输入虚拟机的计算机帐户命名方案。

      创建目录后,Citrix DaaS™ 将使用您选择的服务帐户访问 Azure,并创建安全组和该组的动态成员资格规则。根据该规则,具有此目录中指定命名方案的虚拟机将自动添加到安全组。

      注意:

      要在目录创建后重命名 Azure AD 安全组,请编辑目录并从左侧导航转到Azure AD 安全组。Azure AD 安全组的名称不得包含以下字符:@ " \ / ; : # . * ? = < > | [ ] ( ) '

    7. 域凭据页面上,遵循创建计算机目录文章中的指导完成设置。
  9. 摘要页面上,查看您指定的设置,然后单击完成

    提示:

    您可以查看此计算机目录中虚拟机的估计每月成本。选择成本估算以查看详细信息。为了获得更准确的估算,请根据您的使用情况调整设置,例如每日开机时间、每周工作日和节省选项。

创建 Azure 模板规范

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

要为现有虚拟机创建 Azure 模板规范:

  1. 转到 Azure 门户。选择一个资源组,然后选择虚拟机和网络接口。从顶部的菜单中,单击导出模板
  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 计算机目录。为此,您可以:

将计算机配置文件导出到 JSON 文件

您可以将目录使用的计算机配置文件导出到 JSON 文件。此功能使您能够自定义配置文件并将其作为 ARM 模板规范导入到 Azure 中,以供将来预配。

  1. 计算机目录页面上,选择一个计算机目录以在下部窗格中查看详细信息。
  2. 单击模板属性选项卡以查看计算机配置文件属性,然后单击导出
  3. 在本地计算机上指定路径,将计算机配置文件保存为 JSON 文件。

将计算机配置文件作为 ARM 模板规范导入 Azure

  1. 在 Azure 门户中,选择模板规范并单击导入模板
  2. 浏览并导入保存在计算机上的计算机配置文件(JSON 格式)。
  3. 为导入模板提供名称订阅资源组位置版本,然后单击审查 + 创建。 模板已成功验证并导入。导入的模板列在模板规范中。

当您使用计算机配置文件创建计算机目录时,您可以在选择配置文件时看到此模板。有关详细信息,请参阅在创建或更新目录时使用模板规范

将虚拟机预配到指定的可用性区域

您可以将虚拟机预配到 Azure 环境中的特定可用性区域。您可以使用 Studio 或 PowerShell 实现此目的。

注意:

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

在 Studio 中配置可用性区域

创建计算机目录时,您可以指定要预配计算机的可用性区域。在虚拟机页面上,选择一个或多个要创建计算机的可用性区域。

没有可用性区域的两个原因:该区域没有可用性区域或所选计算机大小不可用。

有关使用 PowerShell 命令进行配置的信息,请参阅使用 PowerShell 配置可用性区域

Azure 临时磁盘

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

注意:

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

临时操作系统磁盘要求您的预配方案使用托管磁盘和 Azure Compute Gallery。有关详细信息,请参阅Azure 共享映像库

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

您可以选择将临时操作系统磁盘存储在虚拟机临时磁盘、资源磁盘或 NVMe 磁盘上。此功能使您能够将临时操作系统磁盘与没有缓存或缓存不足的虚拟机一起使用。此类虚拟机具有临时磁盘、资源磁盘或 NVMe 磁盘来存储临时操作系统磁盘,例如 Ddv4

请考虑以下事项:

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

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

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

重要注意事项如下:

  • 您不能同时创建启用临时操作系统磁盘和 MCS I/O 的计算机目录。
  • 计算机目录设置向导中,如果您在存储和许可证类型页面上选择Azure 临时操作系统磁盘,则在磁盘设置页面上不会获得回写缓存磁盘设置选项。

    Azure 临时操作系统磁盘已选择

    回写缓存磁盘设置不可用

  • New-ProvSchemeSet-ProvScheme 中将 PowerShell 参数 (UseWriteBackCacheUseEphemeralOsDisk) 设置为 true 将失败并显示适当的错误消息。
  • 对于已创建并启用了这两个功能的现有计算机目录,您仍然可以:
    • 更新计算机目录。
    • 添加或删除虚拟机。
    • 删除计算机目录。

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

  • 库:映像存储在此处。MCS 为每个计算机目录创建一个库。
  • 库映像定义:此定义包含有关已发布映像的信息(操作系统类型和状态、Azure 区域)。MCS 为为目录创建的每个映像创建一个映像定义。
  • 库映像版本:Azure Compute Gallery 中的每个映像可以有多个版本,每个版本可以在不同区域有多个副本。每个副本都是已发布映像的完整副本。Citrix DaaS 为每个映像创建一个 Standard_LRS 映像版本(版本 1.0.0),并在目录区域中包含适当数量的副本,具体取决于目录中的计算机数量、配置的副本比率和配置的最大副本数。

注意:

Azure Compute Gallery 功能仅与托管磁盘兼容。它不适用于旧版计算机目录。

有关详细信息,请参阅Azure 共享映像库概述

选择用于创建计算机目录的映像时,您可以选择在 Azure Compute Gallery 中创建的映像。这些映像显示在计算机目录设置向导的映像页面上的映像列表中。

要使这些映像显示,您必须:

  1. 设置 Citrix DaaS。
  2. 连接到 Azure Resource Manager
  3. 在 Azure 门户中,创建资源组。有关详细信息,请参阅使用门户创建 Azure 共享映像库
  4. 在资源组中,创建 Azure Compute Gallery。
  5. 在 Azure Compute Gallery 中,创建映像定义。
  6. 在映像定义中,创建映像版本。

有关配置 Azure Compute Gallery 的信息,请参阅配置 Azure Compute Gallery

Azure 临时磁盘符合回写缓存磁盘条件的条件

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

  • 回写缓存磁盘必须是非持久性的,因为 Azure 临时磁盘不适合持久性数据。
  • 所选的 Azure 虚拟机大小必须包含临时磁盘。
  • 不需要启用临时操作系统磁盘。
  • 接受将回写缓存文件放置在 Azure 临时磁盘上。
  • Azure 临时磁盘大小必须大于(回写缓存磁盘大小 + 页文件保留空间 + 1 GB 缓冲区空间)的总和。

非持久性回写缓存磁盘场景

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

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

请参阅以下 PowerShell 主题:

Azure 服务器端加密

Citrix DaaS 通过 Azure Key Vault 支持 Azure 托管磁盘的客户管理的加密密钥。通过此支持,您可以通过使用自己的加密密钥加密计算机目录的托管磁盘来管理您的组织和合规性要求。有关详细信息,请参阅Azure 磁盘存储的服务器端加密

将此功能用于托管磁盘时:

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

  • 当您禁用或删除密钥时,使用该密钥的任何虚拟机都会自动关闭。关闭后,除非重新启用密钥或分配新密钥,否则虚拟机将无法使用。使用该密钥的任何目录都无法开机,并且您无法向其添加虚拟机。

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

使用此功能时请考虑以下事项:

  • 与客户管理的密钥相关的所有资源(Azure Key Vault、磁盘加密集、虚拟机、磁盘和快照)必须位于同一订阅和区域中。
  • 使用客户管理的密钥加密的磁盘、快照和映像无法移动到其他资源组和订阅。
  • 有关每个区域的磁盘加密集限制,请参阅 Microsoft 站点

注意:

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

Azure 客户管理的加密密钥

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

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

从列表中选择一个 DES。您选择的 DES 必须与您的资源位于同一订阅和区域中。

如果您使用加密密钥创建目录,然后禁用 Azure 中相应的 DES,则您将无法再启动目录中的计算机或向其添加计算机。

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

Azure 主机加密

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

此加密方法不通过 Azure 存储加密数据。托管虚拟机的服务器加密数据,然后加密数据流经 Azure 存储服务器。因此,此加密方法对数据进行端到端加密。

限制:

Azure 主机加密:

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

有关详细信息,请参阅:

托管磁盘上的双重加密

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

双重加密是平台端加密(默认)和客户管理的加密 (CMEK)。因此,如果您是高度安全敏感的客户,担心任何加密算法、实现或受损密钥带来的风险,您可以选择此双重加密。持久性操作系统和数据磁盘、快照和映像都通过双重加密在静态时加密。

注意:

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

限制

  • Ultra 磁盘或 Premium SSD v2 磁盘不支持双重加密。
  • 非托管磁盘不支持双重加密。
  • 如果禁用与目录关联的磁盘加密集密钥,则目录中的虚拟机将被禁用。
  • 与客户管理的密钥相关的所有资源(Azure Key Vault、磁盘加密集、虚拟机、磁盘和快照)必须位于同一订阅和区域中。
  • 每个区域每个订阅最多只能创建 50 个磁盘加密集。

请参阅以下 PowerShell 主题:

Azure 资源组

Azure 预配资源组提供了一种预配向用户提供应用程序和桌面的虚拟机的方法。您可以创建资源组或使用现有资源组在 MCS 计算机目录中预配虚拟机。您可以在多个计算机目录中使用相同的资源组。有关 Azure 资源组的信息,请参阅 Microsoft 文档

Azure 资源组使用情况

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

  • 当使用全范围服务主体创建计算机目录时,MCS 仅创建一个 Azure 资源组并将其用于目录。
  • 当使用窄范围服务主体创建计算机目录时,您必须为目录提供一个空的、预先创建的 Azure 资源组。

Azure Marketplace

Citrix DaaS 支持使用 Azure 上包含计划信息的主映像来创建计算机目录。有关详细信息,请参阅 Microsoft Azure Marketplace

提示:

Azure Marketplace 上的一些映像(例如标准 Windows Server 映像)不附加计划信息。Citrix DaaS 功能适用于付费映像。

使用本节中的过程在 Studio 中查看 Azure Compute Gallery 映像。这些映像可以选择用作主映像。要将映像放入 Azure Compute Gallery,请在库中创建映像定义。

Azure Marketplace 共享映像库

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

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

Azure Marketplace 验证 VDA 发布选项

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

Azure Marketplace 添加 VDA 版本

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

Azure Marketplace 选择 VDA 选项

预配安装了 Azure Monitor 代理的目录虚拟机

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

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

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

要求

  • 权限:确保您具有关于 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) 来管理资源(例如虚拟机)和数据源(例如 Azure Monitor 指标和 Azure Monitor 日志)之间的映射。
  • 默认工作区:在 Azure 门户中创建工作区。有关创建工作区的信息,请参阅创建 Log Analytics 工作区。当您收集日志和数据时,信息将存储在工作区中。工作区具有唯一的工作区 ID 和资源 ID。工作区名称对于给定的资源组必须是唯一的。创建工作区后,配置数据源和解决方案以将其数据存储在工作区中。
  • 已列入白名单的监视扩展:AzureMonitorWindowsAgentAzureMonitorLinuxAgent 是 Citrix 定义的已列入白名单的扩展。要查看已列入白名单的扩展列表,请使用 PowerShell 命令 Get-ProvMetadataConfiguration
  • 主映像:Microsoft 建议在从现有计算机创建新计算机之前从现有计算机中删除扩展。如果未删除扩展,可能会导致文件残留和意外行为。有关详细信息,请参阅如果虚拟机是从现有虚拟机重新创建的

有关使用 PowerShell 启用 AMA 创建目录的信息,请参阅预配启用 AMA 的目录虚拟机

Azure 机密虚拟机

Azure 机密计算虚拟机可确保您的虚拟桌面在内存中加密并在使用中受到保护。

您可以使用 MCS 创建包含 Azure 机密虚拟机的目录。您必须使用计算机配置文件工作流来创建此类目录。您可以将虚拟机和 ARM 模板规范都用作计算机配置文件输入。

您还可以使用机密虚拟机类型 Azure 主映像和机密虚拟机类型 Azure 计算机配置文件来创建准备好的映像,然后使用此准备好的映像来创建 MCS 目录。

机密虚拟机的重要注意事项

支持的虚拟机大小和使用机密虚拟机创建计算机目录的重要注意事项如下:

  • 要检查机密虚拟机支持的虚拟机大小,请参阅大小

  • 创建包含机密虚拟机的计算机目录。

    • 您可以使用 Studio 和 PowerShell 命令创建包含 Azure 机密虚拟机的计算机目录。
    • 您必须使用基于计算机配置文件的工作流来创建包含 Azure 机密虚拟机的计算机目录。您可以使用虚拟机或模板规范作为计算机配置文件输入。
    • 主映像和计算机配置文件输入都必须启用相同的机密安全类型。不同的 Azure 资源使用不同的标签来指示机密虚拟机类型。

      对于 Azure 快照、托管磁盘或虚拟机,安全类型为:

      • ConfidentialVM_DiskEncryptedWithCustomerKey。
      • ConfidentialVM_DiskEncryptedWithPlatformKey。
      • ConfidentialVM_VMGuestStateOnlyEncryptedWithPlatformKey

      对于 Azure ARM 模板规范版本,安全类型为:

      • VMGuestStateOnly:仅虚拟机来宾状态加密的机密虚拟机
      • DiskWithVMGuestState:操作系统磁盘和虚拟机来宾状态都通过平台管理的密钥或客户管理的密钥加密的机密虚拟机。普通和临时操作系统磁盘都可以加密。
    • 您可以使用 AdditionalData 参数获取各种资源类型(例如托管磁盘、快照、Azure Compute Gallery 映像、虚拟机和 ARM 模板规范)的机密虚拟机信息。例如:

       PS C:\Users\username> (get-item XDHyp:\HostingUnits\mynetwork\image.folder\username-dev-testing-rg.resourcegroup\username-dev-tsvda.vm).AdditionalData
       <!--NeedCopy-->
      

      附加数据字段为:

    • DiskSecurityType
    • ConfidentialVMDiskEncryptionSetId
    • DiskSecurityProfiles

      要获取计算机大小的机密计算属性,请运行以下命令:(Get-Item -path "XDHyp:\Connections\my-connection-name\East US.region\serviceoffering.folder\abc.serviceoffering").AdditionalData

      附加数据字段为 ConfidentialComputingType

    • 您不能将主映像或计算机配置文件从机密安全类型更改为非机密安全类型,或从非机密安全类型更改为机密安全类型。
    • 对于任何不正确的配置,您都会收到适当的错误消息。

准备主映像和计算机配置文件

在创建一组机密虚拟机之前,请按照以下步骤准备它们的主映像和计算机配置文件:

  1. 在 Azure 门户中,使用特定设置创建机密虚拟机,例如:
    • 安全类型:机密虚拟机
    • 机密操作系统磁盘加密:已启用。
    • 密钥管理:使用平台管理的密钥进行机密磁盘加密 有关创建机密虚拟机的更多信息,请参阅此 Microsoft 文章
  2. 在创建的虚拟机上准备主映像。在创建的虚拟机上安装必要的应用程序和 VDA。

    注意:

    不支持使用 VHD 创建机密虚拟机。相反,请为此目的使用 Azure Compute Gallery、托管磁盘或快照。

  3. 通过以下任一方式创建计算机配置文件:

    • 如果现有虚拟机具有所需的计算机属性,则使用步骤 1 中创建的现有虚拟机。
    • 如果您选择 ARM 模板规范作为计算机配置文件,则根据需要创建模板规范。具体来说,配置满足您的机密虚拟机要求的参数,例如 SecurityEncryptionTypediskEncryptionSet(用于客户管理的密钥)。有关详细信息,请参阅创建 Azure 模板规范

      注意:

      • 确保主映像和计算机配置文件具有相同的安全密钥类型。
      • 要创建需要使用客户管理的密钥进行机密操作系统磁盘加密的机密虚拟机,请确保主映像和计算机配置文件中的磁盘加密集 ID 相同。

如果您想使用机密虚拟机类型准备好的映像来创建 MCS 目录,则使用机密虚拟机类型主映像和机密虚拟机类型计算机配置文件创建准备好的映像。有关创建准备好的映像的信息,请参阅创建映像定义和初始映像版本

使用 Studio 或 PowerShell 命令创建机密虚拟机

要创建一组机密虚拟机,请使用主映像和从所需机密虚拟机派生的计算机配置文件创建计算机目录。

要使用 Studio 创建目录,请遵循创建计算机目录中描述的步骤。请记住以下注意事项:

  • 映像页面上,选择您为机密虚拟机创建准备好的主映像和计算机配置文件。计算机配置文件选择是强制性的,并且只有与所选主映像具有相同安全加密类型的配置文件才可供选择。
  • 虚拟机页面上,只有支持机密虚拟机的计算机大小才可供选择。
  • 磁盘设置页面上,您无法指定磁盘加密集,因为它继承自所选的计算机配置文件。

启动完整性监视

如果您的虚拟机启用了安全启动和虚拟可信平台模块 (vTPM),并且安装了 GuestAttestation 扩展,则 Microsoft Defender for Cloud 可以远程验证您的虚拟机是否以健康方式启动。此监视称为启动完整性监视。有关启动完整性监视的更多信息,请参阅启动完整性监视概述

您可以为 MCS 计算机目录虚拟机(持久性和非持久性虚拟机)启用启动完整性监视,方法是使用计算机配置文件(虚拟机或模板规范)。启动完整性监视仅支持可信启动和机密虚拟机。

您可以更新现有目录以使用启动完整性,方法是使用 Set-ProvScheme 指向启用启动完整性的计算机配置文件。然后,添加到目录的新虚拟机将启用完整性监视。

您还可以使用 Set-ProvVmUpdateTimeWindowSet-ProvVm 或维护周期更新目录中的现有虚拟机。

您可以转换:

  • 没有完整性监视的虚拟机以具有完整性监视。
  • 具有完整性监视的虚拟机以没有完整性监视。

创建启用完整性监视的计算机目录

确保您具有以下权限:

  • Microsoft.Compute/virtualMachines/extensions/read
  • Microsoft.Compute/virtualMachines/extensions/write

执行以下操作以创建启用完整性监视的 MCS 计算机目录:

  1. 创建启用 GuestAttestation 扩展的计算机配置文件
  2. 使用完整配置界面或 PowerShell 命令,使用计算机配置文件输入创建 MCS 计算机目录。

    注意:

    您可以使用 Get-Item PowerShell 命令和 AdditionalData 参数检查虚拟机或模板规范的 GuestAttestationExtensionEnabled 状态。

  3. 将虚拟机添加到目录。

创建启用 GuestAttestation 扩展的计算机配置文件

创建虚拟机或模板规范作为计算机配置文件输入,并启用完整性监视,这意味着安装了 GuestAttestation 扩展。

要创建启用完整性监视的虚拟机,请执行以下操作:

  1. 登录 Azure 门户。
  2. 如果您正在创建新虚拟机:

    1. 选择安全类型可信启动虚拟机机密虚拟机
    2. 单击配置安全功能并选中完整性监视复选框。

      注意:

      对于完整性监视,您必须启用安全启动和 vTPM。

  3. 概述页面上,转到安全类型部分并验证安全类型是否为可信启动或机密虚拟机,并且完整性监视已启用。
  4. 导航到扩展 + 应用程序页面以验证 GuestAttestation 是否已安装。

要启用现有虚拟机的完整性监视,请参阅启用完整性监视 - Azure 门户

要创建安装了 GuestAttestation 扩展的模板规范:

  1. 您可以使用模板规范安装 GuestAttestation。请参阅启用完整性监视 - 模板规范

    注意:

    在此模板规范中,在设置下,您可以配置用于证明的终结点。如果您不配置,则 Azure 决定配置哪些终结点。

创建按需容量预留虚拟机目录

按需容量预留允许您在 Azure 区域或可用性区域中预留计算容量,持续任意时间。有关 Azure 按需容量预留的更多信息,请参阅 Microsoft 文档按需容量预留

您可以使用计算机配置文件(虚拟机或模板规范)创建包含按需容量预留的 Azure 虚拟机的 MCS 计算机目录。您还可以更新现有计算机目录和现有虚拟机以具有或删除按需容量预留。

此功能适用于持久性和非持久性计算机目录。

限制

此功能不适用于:

  • Spot 虚拟机
  • 主机组
  • 启用休眠的虚拟机

有关限制的更多信息,请参阅 Microsoft 文档限制和约束

所需权限

您需要以下权限才能创建按需容量预留虚拟机目录:

Microsoft.Compute/capacityReservationGroups/deploy/action

创建按需容量预留虚拟机目录的步骤

  1. 创建计算机配置文件源(虚拟机或 ARM 模板规范)。有关创建虚拟机或 ARM 模板规范的信息,请参阅将虚拟机关联到容量预留组
  2. 运行以下 PowerShell 命令以检查计算机配置文件是否已启用按需容量预留。如果计算机配置文件已启用按需容量预留,则您将获得 capacityReservationGroup id

    例如,

    如果计算机配置文件源是虚拟机,请运行以下命令:

    (Get-Item "XDHyp:\HostingUnits\azure-res-conn2\machineprofile.folder\fifthcolumn.resourcegroup\demand-capacity.vm").AdditionalData
    <!--NeedCopy-->
    

    如果计算机配置文件源是模板规范,请运行以下命令:

    (Get-Item "XDHyp:\HostingUnits\azure-res-conn2\machineprofile.folder\fifthcolumn.resourcegroup\fc-aeh-templatespec.templatespec\14.0.0-capacity-reservation.templatespecversion").AdditionalData
    <!--NeedCopy-->
    
  3. 使用 Studio 或 PowerShell 命令创建包含计算机配置文件的计算机目录。

您可以使用 Set-ProvScheme 命令更新目录。您还可以使用 PowerShell 命令 Set-ProvVmUpdateTimeWindow 更新现有虚拟机。计算机配置文件将在下次开机时更新。

嵌套虚拟化

如果将主虚拟机配置为启用嵌套虚拟化,则使用该主虚拟机创建的 MCS 计算机目录中的所有虚拟机都将启用嵌套虚拟化。此功能适用于持久性和非持久性虚拟机。您可以通过映像更新来更新现有 MCS 计算机目录和现有虚拟机以启用嵌套虚拟化。

目前,只有 Dv3 和 Ev3 虚拟机大小支持嵌套虚拟化。

有关嵌套虚拟化的信息,请参阅 Microsoft 博客Azure 中的嵌套虚拟化

仅限 NVMe 的 SKU

通常,较旧的通用、内存优化和计算优化虚拟机(D/Ev5 或 Fv2 及更早版本)支持 SCSI。较新的版本(Da/Ea/Fav6 及更新版本)通常仅支持 NVMe 存储接口。MCS 支持 NVMe 存储控制器类型,以支持 Azure 上的新虚拟机 SKU。

有关 NVMe 的信息,请参阅 Microsoft 文档NVMe 常见问题

您可以使用以下服务产品创建 MCS 目录:

限制

  • 并非所有支持 NVMe 的服务产品都同时支持可信启动。
  • Gen 1 虚拟机不支持 NVMe。
  • 某些操作系统映像可能不支持 NVMe。在这种情况下,Azure UI 上的 NVMe 选项将变灰。

使用同时支持 SCSI 和 NVMe 的服务产品创建目录

  1. 创建要用作主映像的虚拟机。

    1. 使用支持 NVMe 的 Marketplace 映像。支持 NVMe 的 Azure Marketplace 映像列表可在远程 NVMe 支持的操作系统映像中找到。
    2. 拍摄虚拟机的操作系统磁盘快照,以在 New-ProvScheme 命令的 MasterImageVM 参数中使用,或直接使用托管磁盘。

      通过以下任一方式检查您的主映像是否支持 NVMe:

      • 检查 Get-ItemAdditionalData 字段中的 SupportedDiskControllerTypes。例如:

         (get-item XDHyp:\HostingUnits\mynetwork\image.folder\abc.resourcegroup\deg-snapshot).AdditionalData
         <!--NeedCopy-->
        

        SupportedDiskControllerTypes 必须是 SCSI, NVMe

      • 使用 Azure CLI 和 PowerShell

  2. 使用同时支持 NVMe 和 SCSI 的服务产品。
  3. 使用已启用 NVMe 的虚拟机或模板规范作为计算机配置文件。使用任何 DiskControllerType 设置为 NVMe 的虚拟机。直接将虚拟机用作计算机配置文件,或导出模板并使用模板规范作为计算机配置文件。

使用仅支持 NVMe 的服务产品创建目录

  1. 创建要用作主映像的虚拟机。使用支持 NVMe 的 Marketplace 映像。支持 NVMe 的 Azure Marketplace 映像列表可在远程 NVMe 支持的操作系统映像中找到。
  2. 使用仅支持 NVMe 的服务产品。

    注意:

    由于服务产品支持 NVMe,因此您不需要将 DiskControllerType 设置为 NVMe 的计算机配置文件来在目录上启用 NVMe。但是,如果您使用计算机配置文件,则其 DiskControllerType 必须设置为 NVMe 或为空或未指定。

修改现有持久性虚拟机

NVMe 配置在虚拟机创建后无法更改。更改持久性虚拟机 NVMe 配置的方法是重新部署虚拟机。逻辑如下:

  1. 保存虚拟机的当前状态。
  2. 开机现有虚拟机后,检测虚拟机是否需要重新部署。

    1. 如果配置更改是从 NVMe 到 NVMe 或从 SCSI 到 SCSI,则不需要重新部署虚拟机。
    2. 如果配置更改是从 SCSI 到 NVMe,反之亦然,则重新部署并重新创建虚拟机。

使用 PowerShell

本节详细介绍了如何使用 PowerShell 执行以下任务:

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

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

对于 Studio 界面,请参阅在 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>]
        [<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]
       [<CommonParameters>]
       <!--NeedCopy-->
      

启用 Azure 虚拟机扩展

选择 ARM 模板规范后,运行以下 PowerShell 命令以使用 Azure 虚拟机扩展:

  • 要查看支持的 Azure 虚拟机扩展列表:Get-ProvMetadataConfiguration
  • 要添加更多虚拟机扩展:Add-ProvMetadataConfiguration。例如,Add-ProvMetadataConfiguration -PluginType "AzureRM" -ConfigurationName "Extension" -ConfigurationValue "CustomScriptExtension"

    如果您尝试添加以下任何内容,命令将失败并显示错误消息:

    • Citrix 定义的扩展。
    • 现有用户定义的扩展。
    • 不支持的配置密钥。目前,支持的配置密钥是 Extension
  • 要从列表中删除扩展:Remove-ProvMetadataConfiguration。您可以删除您添加的扩展。

具有可信启动的计算机目录

要成功创建具有可信启动的计算机目录,请使用:

  • 启用可信启动的主映像。您必须使用计算机配置文件,但是,计算机配置文件不必启用可信启动。如果您使用启用可信启动的主映像和未启用可信启动的计算机配置文件,则会收到一条警告消息,因为主映像和计算机配置文件之间的可信启动配置不匹配。
  • 支持可信启动的虚拟机大小。
  • 支持可信启动的 Windows 虚拟机版本。目前,Windows 10、Windows 11、Windows Server 2016、2019 和 2022 支持可信启动。

要查看 Citrix DaaS 产品清单项,并确定虚拟机大小是否支持可信启动,请运行以下命令:

  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 属性的值。

    • 如果 SupportsTrustedLaunchTrue,则虚拟机大小支持可信启动。
    • 如果 SupportsTrustedLaunchFalse,则虚拟机大小不支持可信启动。

根据 Azure 的 PowerShell,您可以使用以下命令确定支持可信启动的虚拟机大小:

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

以下示例描述了运行 Azure PowerShell 命令后虚拟机大小是否支持可信启动。

  • 示例 1:如果 Azure 虚拟机仅支持第 1 代,则该虚拟机不支持可信启动。因此,运行 Azure PowerShell 命令后不显示 TrustedLaunchDisabled 功能。
  • 示例 2:如果 Azure 虚拟机仅支持第 2 代,并且 TrustedLaunchDisabled 功能为 True,则不支持第 2 代虚拟机大小的可信启动。
  • 示例 3:如果 Azure 虚拟机仅支持第 2 代,并且运行 PowerShell 命令后不显示 TrustedLaunchDisabled 功能,则支持第 2 代虚拟机大小的可信启动。

有关 Azure 虚拟机的可信启动的更多信息,请参阅 Microsoft 文档Azure 虚拟机的可信启动

创建具有可信启动的计算机目录

  1. 创建启用可信启动的主映像。请参阅 Microsoft 文档可信启动虚拟机映像
  2. 创建安全类型为可信启动虚拟机的虚拟机或模板规范。有关创建虚拟机或模板规范的更多信息,请参阅 Microsoft 文档部署可信启动虚拟机
  3. 使用 Studio 或 PowerShell 命令创建计算机目录。

    • 如果您想使用 Studio,请参阅在 Studio 中使用 Azure Resource Manager 映像创建计算机目录
    • 如果您想使用 PowerShell 命令,请使用 New-ProvScheme 命令,并将虚拟机或模板规范作为计算机配置文件输入。

      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
如果选择的计算机配置文件的安全类型与主映像的安全类型不同 SecurityTypeConflictBetweenMasterImageAndMachineProfile
如果选择不支持可信启动的虚拟机大小,但在创建目录时使用支持可信启动的主映像 MachineSizeNotSupportTrustedLaunch

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

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

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

如果未明确定义这些自定义属性,则属性值将从 ARM 模板规范或虚拟机(以用作计算机配置文件的为准)中设置。此外,如果未指定 ServiceOffering,则从计算机配置文件中设置。

注意:

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

以下部分描述了 New-ProvSchemeSet-ProvScheme 的一些场景,其中 CustomProperties 要么定义了所有属性,要么值是从 MachineProfile 派生的。

  • 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 和 Zones

      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 的新 CustomProperties $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 的新 CustomProperties $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-->
      

使用 PowerShell 配置可用性区域

使用 PowerShell,您可以使用 Get-Item 查看 Citrix DaaS 产品清单项。例如,要查看美国东部地区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 操作中可用的 Zones 自定义属性。Zones 属性定义要预配计算机的可用性区域列表。这些区域可以包含一个或多个可用性区域。例如,<Property xsi:type="StringProperty" Name="Zones" Value="1, 3"/> 用于区域 1 和 3。

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

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

提示:

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

同时使用主机组和 Azure 可用性区域的结果

有一个预检检查,用于根据自定义属性中指定的可用性区域和主机组的区域来评估计算机目录的创建是否成功。如果可用性区域自定义属性与主机组的区域不匹配,则目录创建失败。

有关通过 PowerShell 配置可用性区域的信息,请参阅通过 PowerShell 配置可用性区域

有关 Azure 专用主机的信息,请参阅Azure 专用主机

下表描述了可用性区域和主机组区域的各种组合,以及哪些组合导致计算机目录创建成功或失败。

主机组区域 自定义属性中的可用性区域 计算机目录创建结果
已指定。例如,主机组位于区域 1 未指定 成功。计算机在主机组的区域中创建
已指定。例如,主机组位于区域 1 与主机组区域相同。例如,自定义属性中的区域设置为 1 成功。计算机在区域 1 中创建
已指定。例如,主机组位于区域 1 与主机组区域不同。例如,自定义属性中的区域设置为 2 由于指定的可用性区域与主机组的区域不匹配,目录创建在预检检查期间失败并显示相关错误
已指定。例如,主机组位于区域 1 指定了多个区域。例如,自定义属性中的区域设置为 1,2 或 2,3 由于指定的可用性区域与主机组的区域不匹配,目录创建在预检检查期间失败并显示相关错误
未指定。例如,主机组的区域为 None 未指定 由于指定的可用性区域与主机组的区域匹配(即没有区域),目录创建成功。计算机未在任何区域中创建
未指定。例如,主机组的区域为 None 已指定。例如,自定义属性中的区域设置为一个或多个区域 由于指定的可用性区域与主机组的区域不匹配,目录创建在预检检查期间失败并显示相关错误

在 Azure 专用主机上预配虚拟机

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

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

您可以通过以下 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 专用主机上的虚拟机规模集 - 公开预览。如果未启用自动放置,MCS 会在目录创建期间抛出错误。

配置存储类型

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

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

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

  • 确保您的虚拟机支持所选的存储类型。
  • 如果您的配置使用 Azure 临时磁盘,则不会获得回写缓存磁盘设置选项。

提示:

StorageType 配置用于操作系统类型和存储帐户。WBCDiskStorageType 配置用于回写缓存存储类型。对于普通目录,StorageType 是必需的。如果未配置 WBCDiskStorageType,则 StorageType 用作 WBCDiskStorageType 的默认值。

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

为虚拟机配置存储类型

要为虚拟机配置存储类型,请在 New-ProvScheme 中使用 StorageType 参数。要将现有目录中 StorageType 参数的值更新为支持的存储类型之一,请使用 Set-ProvScheme 命令。

以下是预配方案中 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 模板进行设置。ZRS 存储也支持 Set-ProvVMUpdateTimeWindow 命令,带有 -StartsNow-DurationInMinutes -1 参数。您可以将现有虚拟机从 LRS 更改为 ZRS 存储。

注意:

  • StartsNow 表示计划开始时间是当前时间。
  • DurationInMinutes 为负数(例如,–1)表示计划时间窗口没有上限。

限制:

  • 仅支持托管磁盘
  • 仅支持高级和标准固态硬盘 (SSD)
  • 不支持 StorageTypeAtShutdown
  • 仅在某些区域可用。
  • 大规模创建 ZRS 磁盘时,Azure 的性能会下降。因此,对于首次开机,请以较小的批次(每次少于 300 台计算机)开机。

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

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

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

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

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

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

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

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

  • StorageType
  • WBCDiskStorageType
  • IdentityDiskStorageType

注意:

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

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

您可以在创建计算机目录、更新现有计算机目录和更新现有虚拟机时,从计算机配置文件捕获虚拟机和 NIC 上的诊断设置。

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

关键步骤

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

    • 存储帐户
    • Log Analytics 工作区
    • 具有标准层定价的事件中心命名空间
  2. 创建计算机配置文件源。
  3. 创建新计算机目录、更新现有目录或更新现有虚拟机。

在 Azure 中设置所需的 ID

在 Azure 中设置以下其中一项:

  • 存储帐户
  • Log Analytics 工作区
  • 具有标准层定价的事件中心命名空间

设置存储帐户

在 Azure 中创建标准存储帐户。在模板规范中,将存储帐户的完整 resourceId 作为 storageAccountId

一旦虚拟机设置为将数据记录到存储帐户,数据就可以在 insights-metrics-pt1m 容器下找到。

设置 Log Analytics 工作区

创建 Log Analytics 工作区。在模板规范中,将 Log Analytics 工作区的完整 resourceId 作为 workspaceId。

一旦虚拟机设置为将数据记录到工作区,数据就可以在 Azure 的日志下查询。您可以在 Azure 的日志下运行以下命令,以显示资源记录的所有指标的计数:

AzureMetrics | summarize Count=count() by ResourceId

设置事件中心

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

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

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

创建计算机配置文件源

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

创建具有诊断设置的基于虚拟机的计算机配置文件

如果您想创建虚拟机作为您的计算机配置文件,则首先在模板虚拟机本身上设置诊断设置。您可以参考 Microsoft 文档Azure Monitor 中的诊断设置中提供的详细说明。

您可以运行以下命令来验证现在是否有关联到虚拟机或 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-->

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

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

但是,如果您想要虚拟机作为您的计算机配置文件,MCS 可确保关键诊断设置被准确捕获并应用于 MCS 目录中的资源。

  1. 创建定义虚拟机和 NIC 的标准模板规范。
  2. 添加其他资源以根据规范部署诊断设置:Microsoft.Insights diagnosticSettings。对于范围,通过名称引用模板中包含的虚拟机或 NIC,并使用部分 ID。例如,要创建附加到模板规范中名为 test-VM 的虚拟机的诊断设置,请将范围指定为:

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

创建或更新具有诊断设置的目录

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

验证 Windows 许可证

您可以通过运行以下 PowerShell 命令来验证预配的虚拟机是否正在使用许可权益: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 临时磁盘创建计算机目录

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

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

在以下情况下也请考虑这些限制:

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

要使用临时磁盘,您必须在运行 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 命令创建支持 Azure Compute Gallery 的预配方案。使用 Set-ProvScheme 命令启用或禁用预配方案的此功能,并更改副本比率和最大副本值。

预配方案中添加了三个自定义属性以支持 Azure Compute Gallery 功能:

UseSharedImageGallery

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

SharedImageGalleryReplicaRatio

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

SharedImageGalleryReplicaMaximum

  • 定义每个库映像版本的最大副本数。
  • 有效值为大于 0 且最大为 100 的整数。如果您提供的值超出有效范围,MCS 将生成错误。
  • 如果未定义该属性,则默认值为 10。
  • 如果未定义该属性,则默认值为 100。

提示:

当使用 Azure Compute Gallery 存储 MCS 预配目录的已发布映像时,MCS 会根据目录中的计算机数量、副本比率和最大副本数设置库映像版本副本计数。副本计数通过将目录中的计算机数量除以副本比率(向上舍入到最接近的整数值)然后将值限制为最大副本计数来计算。例如,副本比率为 20,最大为 5 时,0-20 台计算机创建一个副本,21-40 台创建 2 个副本,41-60 台创建 3 个副本,61-80 台创建 4 个副本,81+ 台创建 5 个副本。

现有计算机目录使用 Azure Compute Gallery。使用 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. 运行 Set-ProvScheme,并将 UseSharedImageGallery 标志设置为 True。可选地包括 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 命令完成后,Azure Compute Gallery 映像尚未创建。一旦目录配置为使用库,下一个目录更新操作会将已发布的映像存储在库中。目录更新命令会创建库、库映像和映像版本。对计算机进行电源循环会更新它们,此时副本计数会更新(如果适用)。从那时起,所有现有的非持久性计算机都将使用 Azure Compute Gallery 映像重置,所有新预配的计算机都将使用该映像创建。旧快照将在几小时内自动清理。

对于此用例:

  1. 运行 Set-ProvScheme,并将 UseSharedImageGallery 标志设置为 False 或未定义。
  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-->

提示:

与从快照更新到 Azure Compute Gallery 目录不同,每个计算机的自定义数据尚未更新以反映新的自定义属性。运行以下命令以查看原始 Azure Compute Gallery 自定义属性:Get-ProvVm -ProvisioningSchemeName catalog-nameSet-ProvScheme 命令完成后,映像快照尚未创建。一旦目录配置为不使用库,下一个目录更新操作会将已发布的映像存储为快照。从那时起,所有现有的非持久性计算机都将使用快照重置,所有新预配的计算机都将从快照创建。对计算机进行电源循环会更新它们,此时自定义计算机数据会更新以反映 UseSharedImageGallery 设置为 False。旧的 Azure Compute Gallery 资产(库、映像和版本)将在几小时内自动清理。

创建或更新每个虚拟机具有多个 NIC 的目录

MCS 支持每个虚拟机具有多个 NIC。您可以将虚拟机上的多个 NIC 关联到多个子网,但是,这些子网必须位于同一虚拟网络 (VNet) 中。您可以使用 PowerShell 命令:

您可以创建或更新非计算机配置文件目录和计算机配置文件目录,以使每个虚拟机具有多个 NIC。目前,对于计算机配置文件目录,您只能拥有与计算机配置文件源中指定的 NIC 数量相同的 NIC。

加速网络等属性派生自计算机配置文件源。

注意:

虚拟机大小必须支持相同数量的 NIC 和相应的加速网络,否则您会收到错误。

您可以检索与所选虚拟机大小关联的最大 NIC 数量。当您使用 AdditionalData 参数运行 PowerShell get-item 命令时,一个名为 MaxNetworkInterfaces 的 PowerShell 属性会显示最大 NIC 计数。

检索最大 NIC 计数

要检索最大 NIC 计数:

  1. 从 Delivery Controller™ 主机打开 PowerShell 窗口。
  2. 运行 asnp citrix* 以加载 Citrix 特定的 PowerShell 模块。
  3. 运行 Get-ChildItem -Path "XDHyp:\Connections\abc-connection\East US.region\serviceoffering.folder" 以列出所有可用的虚拟机大小。
  4. 运行 get-item -Path "XDHyp:\Connections\abc-connection\East US.region\serviceoffering.folder\Standard_M416ms_v2.serviceoffering").AdditionalData
  5. 检查 MaxNetworkInterfaces 以了解最大 NIC 计数。

创建每个虚拟机具有多个 NIC 的目录

要创建每个虚拟机具有多个 NIC 的目录,请执行以下操作:

  1. 从 Delivery Controller 主机打开 PowerShell 窗口。
  2. 运行 asnp citrix* 以加载 Citrix 特定的 PowerShell 模块。
  3. 如果尚未创建,请创建标识池。
  4. 创建预配方案:
    • 如果创建非计算机配置文件目录,请运行 New-ProvScheme 命令,并带上 NetworkMappings 参数。您可以向 NetworkMappings 参数添加多个子网。例如:

       New-Provscheme -NetworkMappings @{"0"="subnetpath1";"1"="subnetpath1"}
       <!--NeedCopy-->
      
    • 如果创建计算机配置文件目录:

      1. 在 Azure 中创建具有多个 NIC 的虚拟机。有关信息,请参阅创建和管理具有多个 NIC 的 Windows 虚拟机。您还可以创建新虚拟机,然后在 Azure 门户的“网络”页面中附加网络接口。
      2. 运行 New-ProvScheme 命令,并将虚拟机作为计算机配置文件输入。

      注意:

      创建计算机配置文件目录时,NetworkMappings 的计数必须与计算机配置文件的 NetworkInterfaceCount 相同。NetworkInterfaceCount 可以从 Get-item -Path "machine profile path"AdditionalData 中检索。

  5. 完成目录创建。

更新目录以使每个虚拟机具有多个 NIC

要更新目录以使每个虚拟机具有多个 NIC,请执行以下操作:

  1. 从 Delivery Controller 主机打开 PowerShell 窗口。
  2. 运行 asnp citrix* 以加载 Citrix 特定的 PowerShell 模块。
  3. 更新预配方案:

    • 如果创建非计算机配置文件目录,请运行 Set-ProvScheme 命令,并带上 NetworkMappings 参数。您可以向 NetworkMappings 参数添加多个子网。例如:

       Set-Provscheme -NetworkMappings @{"0"="subnetpath1";"1"="subnetpath1"}
       <!--NeedCopy-->
      
    • 如果创建基于计算机配置文件的计算机目录:

      1. 在 Azure 中创建具有多个 NIC 的虚拟机。有关信息,请参阅创建和管理具有多个 NIC 的 Windows 虚拟机
      2. 运行 Set-ProvScheme 命令,并将虚拟机作为计算机配置文件输入。

更新现有虚拟机以使每个虚拟机具有多个 NIC

您还可以使用 Set-ProvVMUpdateTimeWindow 更新现有虚拟机,并在更新时间窗口内对现有虚拟机执行电源循环。有关更新现有虚拟机的更多信息,请参阅将预配的计算机更新到当前预配方案状态

使用非持久性回写缓存磁盘创建计算机目录

要使用非持久性回写缓存磁盘配置目录,请使用 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

提示:

仅对基于云的托管连接使用 PowerShell 参数 New-ProvScheme CustomProperties。如果您想为本地解决方案(例如 XenServer®)预配使用持久性回写缓存磁盘的计算机,则不需要 PowerShell,因为磁盘会自动持久化。

此参数支持一个额外的属性 PersistWBC,用于确定回写缓存磁盘如何持久化 MCS 预配的计算机。PersistWBC 属性仅在指定 UseWriteBackCache 参数且 WriteBackCacheDiskSize 参数设置为指示创建磁盘时使用。

注意:

此行为适用于 Azure 和 GCP,其中默认的 MCSIO 回写缓存磁盘在电源循环时删除并重新创建。您可以选择持久化磁盘以避免 MCSIO 回写缓存磁盘的删除和重新创建。

在支持 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-->

注意:

此示例仅适用于 Azure。GCP 环境中的属性不同。

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

PersistWBC 属性设置为 true 不会在 Citrix DaaS 管理员从管理界面关闭计算机时删除回写缓存磁盘。

PersistWBC 属性设置为 false 会在 Citrix DaaS 管理员从管理界面关闭计算机时删除回写缓存磁盘。

注意:

如果省略 PersistWBC 属性,则该属性默认为 false,并且在从管理界面关闭计算机时删除回写缓存。

例如,使用 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-->

重要:

PersistWBC 属性只能使用 New-ProvScheme PowerShell cmdlet 设置。尝试在创建后更改预配方案的 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 托管磁盘的启动性能。使用 PowerShell PersistOSDisk 自定义属性在 New-ProvScheme 命令中配置此功能。与 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="ResourceGroups" 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 命令创建计算机目录,其中加密密钥是客户管理的密钥,请执行以下操作:

  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=`"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. 完成计算机目录创建。

创建具有主机加密功能的计算机目录

要创建具有主机加密功能的计算机目录

  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 虚拟机大小是否支持主机加密。为此,在 PowerShell 窗口中,运行以下其中一项:

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

    • 如果您想创建虚拟机,请选择支持主机加密的虚拟机大小。创建虚拟机后,虚拟机属性主机加密将启用。
    • 如果您想使用模板规范,请将 securityProfile 中的参数 Encryption at Host 分配为 true
  4. 通过选择虚拟机或模板规范,使用计算机配置文件工作流创建 MCS 计算机目录。

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

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

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

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

例如:当计算机配置文件输入是虚拟机时,运行以下命令:

(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-->

创建具有双重加密的计算机目录

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

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

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

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

  3. 如果您想使用计算机配置文件工作流,请创建虚拟机或模板规范作为计算机配置文件输入。
    • 如果您想使用虚拟机作为计算机配置文件输入:
      1. 在 Azure 门户中创建虚拟机。
      2. 导航到磁盘 > 密钥管理以使用任何 DiskEncryptionSetID 直接加密虚拟机。
    • 如果您想使用模板规范作为计算机配置文件输入:
      1. 在模板中,在 properties>storageProfile>osDisk>managedDisk 下,添加 diskEncryptionSet 参数并添加双重加密 DES 的 ID。
  4. 创建计算机目录。
    • 如果使用 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-->
        

      使用远程 PowerShell SDK 完成目录创建。目录中创建的所有计算机都将通过您选择的 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-->
    

成功后,您添加到目录中的所有新虚拟机都将通过您选择的 DES 关联的密钥进行双重加密。

验证目录是否已双重加密

  • 在 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 的加密类型是否为平台管理的密钥和客户管理的密钥。

页文件位置确定

页文件位置根据以下场景确定:

注意:

默认页文件位置是操作系统磁盘。

场景 位置
自定义属性中指定了页文件设置 如自定义属性中指定
启用了临时操作系统磁盘或休眠 操作系统磁盘
虚拟机具有临时磁盘 临时磁盘
启用了 MCS IO WBC 磁盘

页文件设置场景

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

期间 场景 结果
映像准备 您将源映像页文件设置在临时磁盘上,而您在预配方案中指定的虚拟机大小没有临时磁盘 页文件放置在操作系统上
映像准备 您将源映像页文件设置在操作系统磁盘上,而您在预配方案中指定的虚拟机大小具有临时磁盘 页文件放置在临时磁盘上
映像准备 您将源映像页文件设置在临时磁盘上,并在预配方案中启用临时操作系统磁盘 页文件放置在操作系统磁盘上
预配方案更新 当 VDA 版本早于 2311 时,您尝试更新预配方案 修改页文件设置并显示警告
预配方案更新 当 VDA 版本为 2311 或更高版本时,您尝试更新预配方案 根据页文件位置确定确定页文件位置

指定页文件设置

使用 PowerShell 命令,您可以指定页文件设置,包括位置和大小。这会覆盖 MCS 根据页文件位置确定确定的页文件设置。您可以在创建计算机目录期间运行以下 New-ProvScheme 命令来执行此操作。

重要注意事项

在继续目录创建之前,请考虑以下事项:

  • 您必须在 New-ProvScheme 命令中提供所有自定义属性(“PageFileDiskDriveLetterOverride”、“InitialPageFileSizeInMB”和“MaxPageFileSizeInMB”),或者不提供任何属性。
  • Citrix Studio 不支持此功能。
  • 初始页文件大小必须介于 16 MB 和 16777216 MB 之间。
  • 最大页文件大小必须大于或等于初始页文件大小,且小于 16777216 MB。
  • 您可以同时将初始页文件大小和最大页文件大小设置为零。

注意:

您可以修改现有目录中新添加的虚拟机的页文件设置,而无需更新主映像。要修改页文件设置,您需要 VDA 版本 2311 或更高版本。您可以使用 PowerShell 命令修改页文件设置。有关详细信息,请参阅修改页文件设置

New-ProvScheme -CleanOnBoot `
-HostingUnitName "zijinnet" `
-IdentityPoolName "PageFileSettingExample" `
-ProvisioningSchemeName "PageFileSettingExample" `
-InitialBatchSizeHint 1 `
-MasterImageVM "XDHyp:\HostingUnits\zijinnet\image.folder\neal-zijincloud-resources.resourcegroup\CustomWin10VDA_OsDisk_1_9473d7c8a6174b2c8284c7d3efeea88f.manageddisk" `
-NetworkMapping @{"0"="XDHyp:\\HostingUnits\\zijinnet\\virtualprivatecloud.folder\\East US.region\\virtualprivatecloud.folder\\neal-zijincloud-resources.resourcegroup\\neal-zijincloud-resources-vnet.virtualprivatecloud\\default.network"} `
-ServiceOffering "XDHyp:\\HostingUnits\\zijinnet\\serviceoffering.folder\\Standard_B2ms.serviceoffering" `
-CustomProperties '<CustomProperties xmlns=" http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"> `
<Property xsi:type="StringProperty" Name="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-->

修改页文件设置

您可以修改现有目录中新添加的虚拟机的页文件设置,而无需更新主映像。目前,此功能仅适用于 Azure 环境。

要修改页文件设置,您需要 VDA 版本 2311 或更高版本。您可以使用 PowerShell 命令修改页文件设置。

以下是您可以在 Azure 环境中修改的各种页文件设置:

  • PageFileDiskDriveLetterOverride
  • InitialPageFileSizeInMB
  • MaxPageFileSizeInMB

修改现有目录的页文件设置

要修改现有计算机目录的页文件设置,请运行 Set-ProvScheme 命令。在这种情况下,更新仅应用于添加到目录的新虚拟机。例如:

Set-ProvScheme -ProvisioningSchemeName $schemeName -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="OsType" Value="Windows" />
<Property xsi:type="StringProperty" Name="StorageType" Value="StandardSSD_LRS" />
<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="LicenseType" Value="Windows_Client" />
<Property  xsi:type="StringProperty" Name="Zones" Value="1" />
<Property xsi:type="StringProperty" Name="ResourceGroups" Value="neal-test-group1" />
<Property xsi:type="StringProperty" Name="SchemaVersion" Value="2" />
</CustomProperties>'
<!--NeedCopy-->

注意:

如果您启用回写缓存并尝试使用 PowerShell 命令将 PageFileDiskDriveLetterOverride 设置为 C:,则 MCS I/O 驱动程序会自动将页文件重定向到正确的磁盘驱动器,而不是 C:

预配启用 AMA 的目录虚拟机

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

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

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

    注意:

    如果您必须创建 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-->
        

      注意:

      如果您使用 Microsoft Sentinel 数据连接器设置了数据收集规则,则可以像常规 DCR 关联一样在模板规范中添加 dataCollectionRuleAssociation。然后,目录虚拟机可以显示在 Sentinel DCR 中,并且 AMA 将安装在这些虚拟机上。有关数据收集规则创建最佳实践的信息,请参阅Azure Monitor 中数据收集规则创建和管理的最佳实践

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

    • 要创建新的 MCS 目录:

      1. 在 Studio 中选择该虚拟机或模板规范作为计算机配置文件。
      2. 继续执行后续步骤以创建目录。
    • 要更新现有 MCS 目录,请使用以下 PowerShell 命令。在这种情况下,只有新虚拟机才能获得更新的计算机配置文件模板。

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

       Set-ProvScheme -ProvisioningSchemeName "name" -MachineProfile "XDHyp:\HostingUnits\Unit1\machineprofile.folder\abc.resourcegroup\ab-machine-profile.vm"
       Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName my-catalog -StartsNow -DurationInMinutes -1
       <!--NeedCopy-->
      
  3. 开机目录虚拟机。
  4. 转到 Azure 门户并检查监视扩展是否已安装在虚拟机上,以及虚拟机是否显示在 DCR 的资源下。几分钟后,监视数据将显示在 Azure Monitor 上。

故障排除

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

使用 Azure Spot 虚拟机创建目录

Azure Spot 虚拟机允许您以显著的成本节省利用 Azure 未使用的计算容量。但是,分配 Azure Spot 虚拟机的能力取决于当前的容量和定价。因此,Azure 可能会根据逐出策略逐出正在运行的虚拟机、无法创建虚拟机或无法开机虚拟机。因此,Azure Spot 虚拟机适用于某些非关键应用程序和桌面。有关详细信息,请参阅使用 Azure Spot 虚拟机

限制

  • 并非所有虚拟机大小都支持 Azure Spot 虚拟机。有关详细信息,请参阅限制

    您可以运行以下 PowerShell 命令来检查虚拟机大小是否支持 Spot 虚拟机。如果虚拟机大小支持 Spot 虚拟机,则 SupportsSpotVMTrue

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

要求

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

使用 Azure Spot 虚拟机创建目录的步骤

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

    • 要使用 Azure 门户创建虚拟机,请参阅使用 Azure 门户部署 Azure Spot 虚拟机
    • 要创建模板规范,请在模板规范的 resources > type: Microsoft.Compute/virtualMachines > properties 下添加以下属性。例如:

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

    注意:

    • 逐出策略可以是 DeallocateDelete
    • 对于非持久性虚拟机,MCS 始终将逐出策略设置为 Delete。如果虚拟机被逐出,它将与任何非持久性磁盘(例如操作系统磁盘)一起删除。任何持久性磁盘(例如标识磁盘)都不会删除。但是,如果目录类型是持久性的或 PersistOsDisk 自定义属性设置为 True,则操作系统磁盘是持久性的。同样,如果 PersistWbc 自定义属性设置为 True,则 WBC 磁盘是持久性的。
    • 对于持久性虚拟机,MCS 始终将逐出策略设置为 Deallocate。如果虚拟机被逐出,它将被解除分配。磁盘没有更改。
    • 最高价格是您每小时愿意支付的价格。如果您使用仅限容量,则此值为 -1。最高价格只能为 null、-1 或大于零的小数。有关详细信息,请参阅定价
  2. 您可以运行以下 PowerShell 命令来检查计算机配置文件是否已启用 Azure Spot 虚拟机。如果 SpotEnabled 参数为 TrueSpotEvictionPolicy 设置为 DeallocateDelete,则计算机配置文件已启用 Azure Spot 虚拟机。例如,

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

       (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 更新现有虚拟机。计算机配置文件将在下次开机时更新。

正在运行的 Azure Spot 虚拟机上的逐出

如果计算容量不可用或每小时价格高于配置的最高价格,Azure 会逐出正在运行的 Spot 虚拟机。默认情况下,您不会收到逐出通知。虚拟机只是冻结,然后虚拟机被逐出。Microsoft 建议使用计划事件来监视逐出。请参阅持续监视逐出。您还可以从虚拟机内部运行脚本,以便在逐出之前收到通知。例如,Microsoft 在 Python 中有一个轮询脚本 ScheduledEvents.cs

故障排除

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

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

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

配置备份虚拟机大小

公共云有时可能会耗尽特定虚拟机大小的容量。此外,如果您使用 Azure Spot 虚拟机,则虚拟机可能会根据 Azure 的容量需求随时被逐出。在这种 Azure 容量不足或 Spot 虚拟机开机失败的情况下,MCS 会回退到备份虚拟机大小。您可以在创建或更新 MCS 计算机目录时使用自定义属性 BackupVmConfiguration 提供备份虚拟机大小列表。MCS 会尝试按照您在列表中提供的顺序回退到备份虚拟机大小。

当 MCS 为虚拟机使用特定的备份配置时,它会继续使用该配置直到下次关机。在下次开机时,MCS 会尝试启动主虚拟机配置。如果失败,MCS 会再次尝试按照列表启动备份虚拟机大小配置。

此功能支持:

  • 使用计算机配置文件的目录
  • 持久性和非持久性 MCS 计算机目录
  • 目前仅限 Azure 环境

重要注意事项

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

创建具有备份虚拟机大小的目录

注意:

为解决 Studio UI 冻结问题,请在运行 PowerShell 命令时将所有单引号替换为 &quot;

  1. 打开 PowerShell 窗口。
  2. 运行 asnp citrix* 以加载 Citrix 特定的 PowerShell 模块。
  3. 创建 Broker 目录。此目录将填充即将创建的计算机。
  4. 创建标识池。这将成为为即将创建的计算机创建的 AD 帐户的容器。
  5. 使用计算机配置文件创建预配方案。请参阅如何配置备份配置
  6. 使用预配方案的唯一 ID 更新 BrokerCatalog
  7. 创建虚拟机并将其添加到目录。

更新现有目录

您可以使用 Set-ProvScheme 命令更新预配方案。请参阅如何配置备份配置

更新现有虚拟机

您可以使用 Set-ProvVMUpdateTimeWindow PowerShell 命令更新目录中的现有虚拟机。该命令会在给定时间窗口内下次开机时更新从与目录关联的预配方案创建的虚拟机。例如:

Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName azure-catalog -StartTimeInUTC "3/12/2022 3am" -DurationInMinutes 60`
<!--NeedCopy-->
Set-ProvVMUpdateTimeWindow -ProvisioningSchemeName azure-catalog -StartsNow -DurationInMinutes 60
<!--NeedCopy-->

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

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

    Set-ProvVM -ProvisioningSchemeName "name" -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=`"[{&quot;ServiceOffering&quot;: &quot;Standard_D2as_v4&quot;, &quot;Type&quot;: &quot;Spot&quot;}, {&quot;ServiceOffering&quot;: &quot;Standard_D2s_v3&quot;, &quot;Type&quot;: &quot;Regular&quot;}, {&quot;ServiceOffering&quot;: &quot;Standard_D2s_v3&quot;, &quot;Type&quot;: &quot;Spot&quot;}]`"/> </CustomProperties>"
    <!--NeedCopy-->
    
  2. 运行 Set-ProvVMUpdateTimeWindow 命令以应用更新。例如:

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

复制所有资源上的标记

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

注意:

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

先决条件

创建计算机配置文件源(虚拟机或 ARM 模板规范),以使该虚拟机的虚拟机、磁盘和 NIC 上具有标记。

  • 如果您想将虚拟机作为计算机配置文件输入,则在 Azure 门户中将标记应用于虚拟机和所有资源。请参阅使用 Azure 门户应用标记
  • 如果您想将 ARM 模板规范作为计算机配置文件输入,则在每个资源下添加以下标记块。

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

注意:

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

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

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

    注意:

    如果计算机配置文件中提供的 NIC 数量与您希望虚拟机使用的 NIC 数量不匹配,则会收到错误。

修改现有虚拟机资源上的标记

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

    Set-ProvScheme -ProvisioningSchemeName <YourCatalogName> -MachineProfile <PathToYourMachineProfile>
    <!--NeedCopy-->
    
  3. 关闭要应用更新的虚拟机。
  4. 请求虚拟机的计划更新。例如:

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

注意:

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

创建预格式化 WBC 磁盘目录

您可以创建预格式化 WBC 磁盘目录,以提高预配计算机的启动性能。要实现此功能,请创建启用 WBC 的 Azure 目录,并包含一个额外的自定义属性 PreformatWriteBackCache 作为 True

您可以使用 Set-ProvScheme 命令更新现有目录以更新 WBC 磁盘大小。

此功能与映像管理工作流兼容,其中 MCS 将主控阶段与整个预配工作流分离。有关映像管理的信息,请参阅映像管理

创建启用 WBC 且 PreformatWriteBackCacheTrue 的 Azure 目录的示例:

$customProperties = @'
<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Property xsi:type="StringProperty" Name="PreformatWriteBackCache" Value="true" />
</CustomProperties>
'@
 
New-ProvScheme -CleanOnBoot `
-ProvisioningSchemeName "provisioningschemename" `
-HostingUnitName "hostingunitname" `
-IdentityPoolName "identitypoolnamename" `
-MasterImageVM "XDHyp:\HostingUnits\AzureHostingUnit\image.folder\rg.resourcegroup\masterImage.manageddisk" `
-CustomProperties $customProperties `
-NetworkMapping $networkMapping `
-UseWriteBackCache `
-WriteBackCacheDiskSize 30
<!--NeedCopy-->

更新现有目录的 WBC 磁盘缓存大小的示例:

Set-ProvScheme -ProvisioningSchemeName provisioningschemename -WriteBackCacheDiskSize 127
<!--NeedCopy-->

在关机时删除 MCS 预配的 Citrix Provisioning™ 目录的 WBC 磁盘

在 Azure 中创建 MCS 预配的 Citrix Provisioning 目录时,您可以将 WBC 磁盘预配为非持久性(PersistWBC 为 False)。此配置有助于在您关闭 MCS 预配的 Azure 中 Citrix Provisioning 目录的虚拟机后删除回写缓存 (WBC) 磁盘。

条件

您必须将自定义属性 PreformatWriteBackCache 设置为 True 才能使此功能正常工作。

创建启用 WBC 且 PreformatWriteBackCacheTrue 的 Azure 目录的示例:

$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="PreformatWriteBackCache" Value="true" />
</CustomProperties>
'@
 
New-ProvScheme -CleanOnBoot `
-ProvisioningSchemeName "provisioningschemename" `
-HostingUnitName "hostingunitname" `
-IdentityPoolName "identitypoolnamename" `
-MasterImageVM "XDHyp:\HostingUnits\AzureHostingUnit\image.folder\rg.resourcegroup\masterImage.manageddisk" `
-CustomProperties $customProperties `
-NetworkMapping $networkMapping `
-UseWriteBackCache `
-WriteBackCacheDiskSize 30
<!--NeedCopy-->

您还可以使用 Set-ProvScheme 命令更新现有目录以更新 PersistWBC 自定义属性。

预配数据磁盘

您可以为 Azure 中 MCS 计算机目录的 MCS 创建的持久性或非持久性虚拟机创建并分配持久性数据磁盘。

数据磁盘必须从托管磁盘作为映像源进行预配。

数据磁盘属性

如果自定义属性中未指定数据磁盘属性,则数据磁盘从自定义属性或操作系统磁盘模板派生属性。

  • 从自定义属性派生的属性

    • DiskEncryptionSetId
    • Zones
    • StorageType
  • 如果自定义属性中未指定,则从操作系统磁盘模板派生的属性

    • DiskEncryptionSetId
    • Zones
    • StorageType

注意:

  • 如果自定义属性或操作系统磁盘模板中未指定区域冗余存储 (ZRS),则数据磁盘放置在与操作系统磁盘和标识磁盘相同的区域中。
  • 标记仅从操作系统磁盘模板派生。

限制

目前不支持以下操作:

  • 预配多个数据磁盘。
  • 预配非持久性数据磁盘。
  • 使用模板创建数据磁盘。
  • 修改现有目录和虚拟机以使用数据磁盘。
  • 重置数据磁盘。
  • 数据磁盘的映像更新。
  • 使用托管磁盘以外的源。
  • 将数据磁盘存储在 Azure Compute Gallery (ACG) 中。
  • StorageTypeAtShutdown 用于数据磁盘

创建包含数据磁盘的目录

New-ProvScheme PowerShell 命令中包含以下参数,以预配包含数据磁盘的 MCS 计算机目录。

  • DataDisk:有效托管磁盘类型清单项的路径。
  • DataDiskPersistence:指示 DataDisk 是持久性还是非持久性。但是,目前仅支持持久性数据磁盘。

例如:

New-ProvScheme  -CleanOnBoot -HostingUnitName "<HostingUnitName >" -IdentityPoolName "<IdentityPoolName >" -InitialBatchSizeHint 1 -MasterImageVM disk.manageddisk -NetworkMapping <NetworkMapping > -ProvisioningSchemeName "<ProvisioningSchemeName >" -DataDisk "XDHyp:\HostingUnits\Azure-Resources-1\image.folder\<resourcegroupname>\xxxx-datadisk.manageddisk"  -DataDiskPersistence "Persistent"  -Scope @() -VMCpuCount 4  -VMMemoryMB 6144  -TenancyType Shared  -FunctionalLevel "L7_20"
<!--NeedCopy-->

确定数据磁盘是否在使用中

执行以下操作以验证数据磁盘是否已分配给虚拟机:

  • 运行 Get-ProvVm 并检查虚拟机的 CustomVmData。如果虚拟机正在使用数据磁盘,则会有一个角色为 DiskRole.DataDisk 的磁盘记录。
  • 检查 Azure 门户中虚拟机下是否存在数据磁盘。

删除数据磁盘

如果您删除目录,则除非您使用 forgetVMpurgeDBOnly 选项,否则数据磁盘将被删除。如果您删除虚拟机,则除非您使用 forgetVMpurgeDBOnly 选项,否则数据磁盘将被删除。

从非托管磁盘迁移到托管磁盘

2025 年 9 月 30 日,Azure 将正式停用非托管磁盘(即 VHD)。任何使用非托管磁盘的现有虚拟机将在截止日期后停止并解除分配。

但是,您可以将 MCS 预配的虚拟机从非托管磁盘迁移到托管磁盘,这有助于避免因 Azure 的非托管磁盘停用计划而导致的服务中断。

连接到虚拟机的所有非托管磁盘都将转换。这包括标识磁盘、操作系统磁盘和 WBC 磁盘(如果使用)。

有关 Azure 非托管磁盘停用计划的更多信息,请参阅在 2025 年 9 月 30 日之前迁移您的 Azure 非托管磁盘

用例

此功能适用于持久性和非持久性 MCS 预配目录。

它还支持按需和非按需(旧版)虚拟机的迁移:

  • 按需虚拟机:将现有磁盘从非托管磁盘转换为托管磁盘,以与 Azure 更新的支持保持一致。
  • 非按需(旧版)虚拟机:旧版或非按需虚拟机仅支持非托管磁盘。使用此功能将旧版虚拟机转换为按需虚拟机,同时迁移到托管磁盘。

有关按需预配的更多信息,请参阅Azure 按需预配

限制

  • 一旦计算机目录或虚拟机转换为托管磁盘,就无法再转换回非托管磁盘
  • 对于非按需(旧版)虚拟机,迁移过程包括将其转换为按需预配。您不能仅转换磁盘并继续使用非按需虚拟机。

重要注意事项

  • 转换不会自动发生。它作为开机操作的一部分发生。
  • 如果为虚拟机请求了多个更新,则磁盘转换优先。其他更新将推迟到下次开机。
  • 一旦虚拟机成功转换并开机,虚拟机的 VHD 将被清理以节省成本。存储帐户本身不会被清理。
    • 基本磁盘可能仍然存在于存储帐户中。您可以运行目录更新,并创建新的快照(或 ACG)基本磁盘。
    • 一旦目录中的所有虚拟机都已转换并创建了新的基本磁盘,就可以删除空的存储帐户。

所需权限

您需要在 Azure 服务主体上具有以下权限,以允许从非托管磁盘转换为托管磁盘:

Microsoft.Compute/virtualMachines/convertToManagedDisks/write
<!--NeedCopy-->

配置步骤

对于按需目录:

  1. 运行 Set-ProvScheme(或对于持久性虚拟机运行 Set-ProvVM)以将 UseManagedDisks 更新为 True。例如:

    Set-ProvScheme -ProvisioningSchemeName "<provscheme-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`" /></CustomProperties>"
    <!--NeedCopy-->
    
    Set-ProvVM -ProvisioningSchemeName "<provscheme-name>" -VMName "<vm-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`" /></CustomProperties>"
    <!--NeedCopy-->
    
  2. 运行 Set-ProvVMUpdateTimeWindow` 以应用更新。在此示例中,更新将在虚拟机下次开机时应用。

    Set-ProvVmUpdateTimeWindow -ProvisioningSchemeName "<provscheme-name>" -VMName "<vm-name>"
    <!--NeedCopy-->
    
  3. 开机虚拟机。

对于非按需(旧版)目录:

  1. 运行 Set-ProvScheme(或对于持久性虚拟机运行 Set-ProvVM)以将 Set DeploymentSchema 配置为 1.1。例如:

    Set-ProvScheme -ProvisioningSchemeName "<provscheme-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=`"DeploymentSchema`" Value=`"1.1`" /></CustomProperties>"
    <!--NeedCopy-->
    
    Set-ProvVM -ProvisioningSchemeName "<provscheme-name>" -VMName "<vm-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=`"DeploymentSchema`" Value=`"1.1`" /></CustomProperties>
    <!--NeedCopy-->
    
  2. 运行 Set-ProvVMUpdateTimeWindow 以应用更新。在此示例中,更新将在虚拟机下次开机时应用。

    Set-ProvVmUpdateTimeWindow -ProvisioningSchemeName "<provscheme-name>" -VMName "<vm-name>"
    <!--NeedCopy-->
    
  3. 开机虚拟机。

故障排除

如果虚拟机无法从非托管磁盘转换为托管磁盘:

  • 验证 UseManagedDisksDeploymentSchema 自定义属性是否设置正确:

    • 如果使用 Set-ProvScheme,请通过运行 Get-ProvScheme 验证 ProvScheme 自定义属性。有关详细信息,请参阅Get-ProvScheme
    • 如果使用 Set-ProvVM,请通过运行 Get-ProvVMConfiguration 验证虚拟机是否具有更新的自定义属性的新配置。有关详细信息,请参阅Set-ProvVM
  • 验证 Azure 服务主体中是否存在以下权限:

    • Microsoft.Compute/virtualMachines/convertToManagedDisks/write
  • 运行 Get-ProvOperationEvent 以查看预配方案的任何警告。有关详细信息,请参阅Get-ProvOperationEvent。例如:

     Get-ProvOperationEvent -LinkedObjectType ProvisioningScheme -LinkedObjectUid <your-provscheme-id>
     <!--NeedCopy-->
    

后续步骤

更多信息

创建 Microsoft Azure 目录

在本文中