Citrix Virtual Apps and Desktops 服务

Microsoft Azure Resource Manager 虚拟化环境

使用 Microsoft Azure Resource Manager 在您的 Citrix Virtual Apps 或 Citrix Virtual Desktops 服务部署中预配虚拟机时,请按照本文中的指导原则进行操作。

我们假设您熟悉以下内容:

注意:

默认情况下,Azure 支持使用 Azure 托管的加密密钥进行静态磁盘加密。MCS 中的所有目录都使用这种加密形式,不需要用户进行配置。

Azure 按需预配

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

  • 降低存储成本
  • 加快目录创建过程
  • 加快虚拟机 (VM) 电源操作过程

对于管理员,在创建主机连接和 MCS 计算机目录的“完整配置”界面过程中,按需预配并没有引入任何差异。不同之处在于如何以及何时在 Azure 中创建和管理资源,以及 VM 在 Azure 门户中的可见性。

在 Citrix Virtual Apps and Desktops 服务集成 Azure 按需资源预配之前,MCS 的行为不同。MCS 创建目录时,VM 是在预配过程中在 Azure 中创建的。

在采用 Azure 按需预配的情况下,仅在完成预配后,当 Citrix Virtual Apps and Desktops 启动开机操作时才创建 VM。仅当 VM 运行时才在 Azure 门户中可见。在管理 > 完整配置界面中,VM(如果正在运行)是可见的。

创建 MCS 目录时,Azure 门户将显示资源组、网络安全组、存储帐户、网络接口、基础映像和身份磁盘。在 Citrix Virtual Apps and Desktops 为 VM 启动开机操作之前,Azure 门户不会显示 VM。然后,VM 在“完整配置”界面中的状态将更改为On

  • 对于池计算机,仅当存在 VM 时才会有操作系统磁盘和写回缓存。如果经常关闭计算机(例如,工作时间以外),缓存可以节省大量存储空间。
  • 对于专用计算机,在首次打开 VM 时创建操作系统磁盘。它一直保留在存储中,直至删除计算机标识。

Citrix Virtual Apps and Desktops 为 VM 启动关机操作时,将在 Azure 中删除该计算机标识。它不再显示在 Azure 门户中。(VM 在“完整配置”界面中的状态更改为关闭。)

按需预配之前创建的目录 在 Citrix Virtual Apps and Desktops 服务支持 Azure 按需配置功能(2017 年年中)之前创建的计算机目录的行为各不同。如果这些目录中的 VM 正在运行,则可以在 Azure 门户中看到这些 VM。除了 MCS 预配目录的区域外,您不能转换任何其他区域中的映像。映像将复制到目录所在区域的传统存储帐户中的 VHD。然后将其转换回托管磁盘。

在目录创建向导的存储和许可证类型页面上,可以选中用于使用常规存储帐户来代替托管磁盘的复选框。在不支持托管磁盘的 Azure 区域中预配时此复选框处于禁用状态。

创建到 Azure Resource Manager 的连接

创建和管理连接介绍了创建连接的向导。以下信息涵盖与 Azure Resource Manager 连接有关的详细信息。

注意事项:

  • 必须已为服务主体授予对订阅的参与者角色。
  • 在创建第一个连接时,Azure 会提示您为其授予必要的权限。对于将来的连接,您仍然必须进行身份验证,但是 Azure 会记住您以前同意的情况,并且不会再显示提示。
  • 用于身份验证的帐户必须是订阅的协管理员。
  • 用于身份验证的帐户必须是订阅的目录的成员。需要注意两种类型的帐户:“工作或学校”和“个人 Microsoft 帐户”。有关详细信息,请参阅CTX219211
  • 虽然可以通过将现有 Microsoft 帐户添加为订阅目录的成员来使用该帐户,但如果以前已为用户授予对其中一个目录的资源的来宾访问权限,则可能会出现复杂情况。在这种情况下,他们可能在目录中有一个不会授予其必要权限的占位符条目,并会返回错误。

    通过从目录中删除资源并明确重新添加来改正此问题。但是,请谨慎使用此方法,因为它会对帐户可以访问的其他资源产生意外影响。

  • 有一个已知问题,即某些帐户实际上是成员时,会被检测为目录来宾。此类配置通常发生在已建立的较旧的目录帐户中。解决方法:向目录中添加一个帐户,该帐户采用适当的成员身份值。
  • 资源组只是资源的容器,它们可以包含来自自己所在区域以外的区域的资源。如果您希望资源组的区域中显示的资源可用,这可能会引起混淆。
  • 请确保您的网络和子网足够大,可以容纳您需要的计算机数量。这需要一些先见之明,但 Microsoft 会帮助您指定合适的值,并提供有关地址空间容量的指导。

可以通过两种方式建立与 Azure 的主机连接:

  • 通过向 Azure 进行身份验证以创建服务主体。
  • 使用之前创建的服务主体的详细信息连接到 Azure。

通过向 Azure 进行身份验证以创建服务主体

重要:

此功能尚不适用于 Azure 中国和 Azure 德国订阅。

在开始操作之前,请确保:

  • 在订阅的 Azure Active Directory 租户中具有一个用户帐户。
  • Azure AD 用户帐户也是您希望用来预配资源的 Azure 订阅的协管理员。

向 Azure 进行身份验证以创建服务主体时,应用程序将在 Azure 中注册。密钥(客户端密码)是为已注册的应用程序创建的。

要查看应用程序 ID,请登录到 Azure 门户并导航到 Azure Active Directory > 应用程序注册 > 所有应用程序。通过控制台(管理选项卡)注册的应用程序的名称带有前缀 citrix-xd-

Azure 中的应用程序 ID

要查看应用程序的客户端密码,请单击所有应用程序选项卡上的应用程序,然后导航到证书和密码 > 客户端密码

Azure 中的客户端密码

通过控制台创建的客户端密码将在两年后过期。注册的应用程序使用客户端密钥向 Azure AD 进行身份验证。请务必在客户端密码到期之前进行更改。要对其进行更改,请完成以下步骤:

  1. 在 Azure 中,选择 Azure Active Directory

  2. 从 Azure AD 中的应用程序注册中,选择您的应用程序。

  3. 选择证书和密码

  4. 选择客户端密码 > 新建客户端密码

  5. 提供密码的说明并指定持续时间。完成后,选择添加

    注意:

    请务必保存客户端密钥,因为您以后将无法检索该密钥。

  6. 复制客户端密码值。

  7. 在控制台中,编辑相应的连接,然后将应用程序密码字段中的内容替换为您复制的值。

要向 Azure 进行身份验证以创建服务主体,请在添加连接和资源向导中完成以下步骤:

  1. 连接页面上,选择创建新连接Microsoft Azure 连接类型和您的 Azure 环境。

  2. 选择可以使用哪些工具来创建虚拟机,然后选择下一步

  3. 连接详细信息页面上,输入 Azure 订阅 ID 和连接的名称。输入订阅 ID 后,将启用新建按钮。

    注意:

    连接名称可以包含 1-64 个字符,不能仅包含空格或字符 \/;:#.*?=<>|[]{}"'()'

  4. 选择新建,然后输入 Azure Active Directory 帐户用户名和密码。

  5. 选择登录

  6. 选择接受以将列出的权限授予 Citrix Virtual Apps and Desktops。Citrix Virtual Apps and Desktops 会创建一个允许它代表指定的用户管理 Azure 资源的服务主体。

  7. 选择接受后,您将返回到向导中的连接页面。

    注意:

    成功对 Azure 进行身份验证后,新建使用现有按钮将消失。此时将显示连接成功文本,并带有一个绿色复选标记,指示已成功连接到您的 Azure 订阅。

  8. 连接详细信息页面上,选择下一步

    注意:

    在成功对 Azure 进行身份验证并同意授予所需的权限之后,才能进入下一页。

  9. 为连接配置资源。资源由区域和网络组成。

    • 区域页面上,选择一个区域。
    • 网络页面上,执行以下操作:
      • 键入 1–64 字符的资源名称以帮助确定区域和网络组合。资源名称不能仅包含空格,也不能包含字符 \/;:#.*?=<>|[]{}"'()'
      • 选择一个虚拟网络/资源组对。(如果您有多个具有相同名称的虚拟网络,将网络名称与资源组配对可提供唯一的组合。)如果您在上一个页面上选择的区域不具有任何虚拟网络,请返回到该页面并选择一个具有虚拟网络的区域。
  10. 摘要页面上,查看设置的摘要,然后选择完成以完成您的设置。

使用之前创建的服务主体的详细信息连接到 Azure

要手动创建服务主体,请连接到 Azure Resource Manager 订阅并使用以下部分中提供的 PowerShell cmdlet。

必备条件:

  • $SubscriptionId: 您希望预配 VDA 的订阅的 Azure Resource Manager SubscriptionID
  • $AADUser: 订阅的 AD 租户的 Azure AD 用户帐户。让 $AADUser 成为您的订阅的协管理员。
  • $ApplicationName: 要在 Azure AD 中创建的应用程序的名称。
  • $ApplicationPassword: 应用程序的密码。创建主机连接时,请使用此密码作为应用程序机密。

要创建服务主体,请执行以下操作:

  1. 连接到您的 Azure Resource Manager 订阅。

    Login-AzureRmAccount

  2. 选择您要创建服务主体的 Azure Resource Manager 订阅。

    Select-AzureRmSubscription -SubscriptionID $SubscriptionId;

  3. 在您的 AD 租户中创建应用程序。

    $AzureADApplication = New-AzureRmADApplication -DisplayName $ApplicationName -HomePage "https://localhost/$ApplicationName" -IdentifierUris https://$ApplicationName -Password $ApplicationPassword

  4. 创建服务主体。

    New-AzureRmADServicePrincipal -ApplicationId $AzureADApplication.ApplicationId

  5. 向服务主体分配角色。

    New-AzureRmRoleAssignment -RoleDefinitionName Contributor -ServicePrincipalName $AzureADApplication.ApplicationId –scope /subscriptions/$SubscriptionId

  6. 在 PowerShell 控制台的输出窗口中,记下 ApplicationId。请在创建主机连接时提供该 ID。

添加连接和资源向导中,执行以下操作:

  1. 连接页面上,选择创建新连接Microsoft Azure 连接类型和您的 Azure 环境。

  2. 选择可以使用哪些工具来创建虚拟机,然后选择下一步

  3. 连接详细信息页面上,输入 Azure 订阅 ID 和连接的名称。

    注意:

    连接名称可以包含 1-64 个字符,不能仅包含空格或字符 \/;:#.*?=<>|[]{}"'()'

  4. 选择使用现有。在现有服务主体详细信息窗口中,输入现有服务主体的以下设置。输入详细信息后,将会启用保存按钮。选择保存。除非提供有效的详细信息,否则无法跳过此页面。

    • 订阅 ID。输入您的 Azure 订阅 ID。要获取您的订阅 ID,请登录 Azure 门户并导航到订阅 > 概述
    • Active Directory ID(租户 ID)。输入您在 Azure AD 中注册的应用程序的目录(租户)ID。
    • 应用程序 ID。输入您在 Azure AD 中注册的应用程序的应用程序(客户端)ID。
    • 应用程序机密。创建密码(客户端密码)。注册的应用程序使用密钥向 Azure AD 进行身份验证。出于安全考虑,我们建议您定期更改密钥。请务必保存密钥,因为以后将无法检索密钥。
    • 身份验证 URL。此字段将自动填充且不可编辑。
    • 管理 URL。此字段将自动填充且不可编辑。
    • 存储后缀。此字段将自动填充且不可编辑。
  5. 选择保存后,您将返回到连接详细信息页面。选择下一步进入下一页。

  6. 为连接配置资源。资源由区域和网络组成。

    • 区域页面上,选择一个区域。
    • 网络页面上,执行以下操作:
      • 键入 1–64 字符的资源名称以帮助确定区域和网络组合。资源名称不能仅包含空格,也不能包含字符 \/;:#.*?=<>|[]{}"'()'
      • 选择一个虚拟网络/资源组对。(如果您有多个具有相同名称的虚拟网络,将网络名称与资源组配对可提供唯一的组合。)如果您在上一个页面上选择的区域不具有任何虚拟网络,请返回到该页面并选择一个具有虚拟网络的区域。
  7. 摘要页面上,查看设置的摘要,然后选择完成以完成您的设置。

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

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

映像将作为用于在计算机目录中创建 VM 的模板。创建计算机目录之前,请在 Azure Resource Manager 中创建一个映像。有关映像的常规信息,请参阅创建计算机目录

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

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

  • 主映像页面上,选择某个资源组,然后在容器中导航(逐级浏览)至 Azure VHD 或共享映像库,直至要用作映像的 Azure ImageVersion。VHD 或 ImageVersion 上必须安装 Citrix VDA。如果 VHD 连接到某个 VM,请停止该 VM。

  • 只有在使用 Azure Resource Manager 映像时,才会显示存储和许可证类型页面。

    存储和许可证类型页面

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

    • Premium SSD。为具有 I/O 密集型工作负载的 VM 提供高性能和低延迟磁盘支持。
    • 标准 SSD。提供经济高效的存储方案,该方案已针对在较低的 IOPS 级别需要性能一致的工作负载而优化。Azure 身份磁盘始终使用标准 SSD 创建。

    • 标准 HDD。为运行延迟不敏感的工作负载的 VM 提供可靠、低成本的磁盘支持。

    该存储类型决定在向导的虚拟机页面上提供哪些计算机大小。两个存储类型都会在单一数据中心中对您的数据进行多重同步复制。有关 Azure 存储类型和存储复制的详细信息,请参阅以下内容:

    选择是否使用现有的 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 许可证,以允许您在 Azure 中运行 Windows 10 VM,而无需额外的许可证。有关详细信息,请参阅客户端访问许可证和管理许可证

    注意:

    Windows 客户端许可证选项因您在计算机目录设置期间选择的操作系统而异。如果选择多会话操作系统,该选项将显示为使用我的 Windows 10 许可证。如果选择单会话操作系统,该选项将显示为使用我的 Windows 客户端许可证

    您可以通过运行以下 PowerShell 命令来验证已预配的 VM 是否正在利用许可权益: Get-AzM -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/

    默认情况下,Azure 托管磁盘用于目录中的 VM。如果要改为使用常规存储帐户,请选中页面底部的复选框。对此目录中的 VM 使用非托管磁盘来代替 Azure 托管磁盘复选框仅在旧版控制台中可用。

    Azure 共享映像库 (SIG) 是用于管理和共享映像的存储库。它可以让您在整个组织中使用映像。我们建议您在创建大型非持久性计算机目录时将映像存储在 SIG 中,因为这样做可以更快地重置 VDA 操作系统磁盘。将映像放入 Azure 共享映像库复选框仅在基于 Web 的控制台中可用。

  • 虚拟机页面上,指出要创建的 VM 数量。必须至少指定一个。选择计算机大小。创建目录后,您将无法更改计算机大小。如果以后需要不同的大小,请删除该目录,然后创建使用相同映像的目录,并指定所需的计算机大小。

    如果选中存储和许可证类型页面上的将映像放入 Azure 共享映像库复选框,则会显示 Azure 共享映像库设置部分,允许您指定更多 SIG 设置:

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

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

虚拟机名称不能包含非 ASCII 字符和特殊字符。

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

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

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

完成向导。

Azure 限制

Azure Resource Manager 限制订阅和租户的请求,从而根据定义的限制路由流量,根据提供商的特定需求量身定制。请参阅 Microsoft 站点上的限制 Resource Manager 请求,了解详细信息。订阅和租户存在限制,在这些情况下,管理许多计算机可能会成问题。例如,包含许多计算机的订阅可能会遇到与电源操作有关的性能问题。

提示:

有关详细信息,请参阅使用 Machine Creation Services 提高 Azure 性能

为了帮助缓解这些问题,Citrix Virtual Apps and Desktops 服务允许您删除 MCS 内部限制,以使用 Azure 中的更多可用请求配额。

Citrix 建议在大型订阅(例如,包含 1000 个 VM 的订阅)中打开/关闭虚拟机电源时采用以下最佳设置:

  • 绝对同时操作 - 500
  • 每分钟最大新操作数 - 2000
  • 操作的最大并发数 - 500

使用“完整配置”界面为给定主机连接配置 Azure 操作:

  1. 管理 > 完整配置中,选择左侧窗格中的托管
  2. 选择与 Azure 有关的连接以对其进行编辑。
  3. 编辑连接屏幕中,选择高级
  4. 高级屏幕中,使用配置选项指定同时操作的数量、同时进行的虚拟磁盘更新、每分钟最大新操作数以及任何其他连接选项。

Azure 限制

默认情况下,MCS 最多支持 500 个并发操作。可以使用 PowerShell 信息来设置最大并发操作数。

使用 PowerShell 属性 MaximumConcurrentProvisioningOperations 可指定并发 Azure 预配操作的最大数量。在预配方案中使用此属性时,请注意:

  • 默认情况下,MCS 使用自定义属性参数 MaximumConcurrentProvisioningOperations 支持 500 个最大并发操作。
  • 使用 PowerShell 命令 Set-ProvScheme 配置 MaximumConcurrentProvisioningOperations 参数。

Azure 资源组

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

Azure 资源组使用情况

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

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

Azure 临时磁盘

Azure 临时磁盘允许您重新调整缓存磁盘的用途,以便为启用了 Azure 的虚拟机存储操作系统磁盘。此功能对于需要的 SSD 磁盘的性能高于标准 HDD 磁盘的 Azure 环境非常有用。要使用临时磁盘,必须在运行 New-ProvScheme 时将自定义属性 UseEphemeralOsDisk 设置为 true

注意:

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

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

"CustomProperties": [
            {
                "Name": "UseManagedDisks",
                "Value": "true"
            },
            {
                "Name": "StorageAccountType",
                "Value": "Standard_LRS"
            },
            {
                "Name": "UseSharedImageGallery",
                "Value": "true"
            },
            {
                "Name": "SharedImageGalleryReplicaRatio",
                "Value": "40"
            },
            {
                "Name": "SharedImageGalleryReplicaMaximum",
                "Value": "10"
            },
            {
                "Name": "LicenseType",
                "Value": "Windows_Server"
            },
            {
                "Name": "UseEphemeralOsDisk",
                "Value": "true"
            }
        ],

如何使用临时操作系统磁盘创建计算机

临时操作系统磁盘根据 CustomProperties 参数中的 UseEphemeralOsDisk 属性进行控制。

临时磁盘的重要注意事项

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

  • 用于目录的 VM 大小(服务产品)必须支持临时操作系统磁盘。
  • VM 大小表示的缓存磁盘大小必须大于或等于操作系统磁盘的大小。

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

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

Azure 服务器端加密

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

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

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

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

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

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

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

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

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

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

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

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

  • 每个订阅每个区域最多只能创建 50 个磁盘加密集。

注意:

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

Azure 共享映像库

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

  • 库。图片存储在此处。MCS 为每个计算机目录创建一个库。
  • 库映像定义。此定义包括有关已发布的映像的信息(操作系统类型和状态、Azure 区域)。MCS 为目录创建的每个映像创建一个映像定义。
  • 库映像版本。共享映像库中的每个映像可以有多个版本,每个版本可以在不同的区域中有多个副本。每个副本都是已发布的映像的完整副本。Citrix Virtual Apps and Desktops 服务根据目录中的计算机数量、配置的副本比率和配置的副本最大值,为每个映像创建一个 Standard_LRS 映像版本(1.0.0 版),该版本在目录所在区域中具有恰当的副本数量。

注意:

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

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

配置共享映像库

使用 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="StorageAccountType" 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>'

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

对于此用例:

  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="StorageAccountType" 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>'

提示:

参数 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="StorageAccountType" Value="Standard_LRS"/> <Property xsi:type="StringProperty" Name="UseManagedDisks" Value="True"/> <Property xsi:type="StringProperty" Name="UseSharedImageGallery" Value="False"/></CustomProperties>'

提示:

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

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

可以将计算机预配到 Azure 环境中的特定可用性区域中。可以使用“完整配置”界面或 PowerShell 来实现这一目标。

(如果使用旧版控制台,则必须使用 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"

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

$serviceOffering.AdditionalData

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

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

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

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

提示:

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

Azure 临时磁盘

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

注意:

永久目录不支持临时操作系统磁盘。此外,使用此功能时,请考虑额外的性能磁盘会产生额外的成本。它有利于重复使用缓存磁盘来存储操作系统磁盘,而不用为额外的托管磁盘付费。

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

使用 PowerShell 配置临时磁盘

要为目录配置 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>'

要求

  • 如果您希望 Citrix Virtual Apps and Desktops 服务为每个 MCS 目录创建资源组,则与主机连接关联的 Azure 服务主体必须有权创建和删除资源组。如果您希望 Citrix Virtual Apps and Desktops 服务使用现有的空资源组,则与主机连接关联的 Azure 服务主体对这些空资源组必须具有“参与者”权限。
  • 使用新建选项创建主机连接时,创建的服务主体具有订阅作用域参与权限。或者,可以使用使用现有选项来创建连接,并提供现有订阅作用域服务主体的详细信息。如果使用新建选项并在“完整配置”界面中创建服务主体,则它具有创建和删除新资源组或向现有空资源组预配所需的权限。
  • 必须使用 PowerShell 创建窄作用域服务主体。此外,使用窄作用域服务主体时,必须使用 PowerShell 或 Azure 门户在于您的主机连接相同的区域内为 MCS 预配 VM 的每个目录创建空资源组。有关说明,请参阅博客文章 https://www.citrix.com/blogs/2016/11/09/azure-role-based-access-control-in-xenapp-xendesktop/

如果您对主机连接使用窄作用域服务主体,并且在目录创建向导的主映像页面上没有看到您的映像资源组,可能是因为您使用的窄作用域服务主体没有列出映像资源组的权限 Microsoft.Resources/subscriptions/resourceGroups/read。关闭向导,为服务主体更新权限(请参阅博客文章了解相关说明),然后重新启动向导。Azure 中的更新显示在“完整配置”界面中最多可能需要 10 分钟。

提示:

Azure 服务主体需要贡献者权限。贡献者权限可以是完整(订阅)范围的贡献者,其中 MCS 自动为计算机目录创建 Azure 资源组。或者,贡献者权限可以是狭窄的范围,必须提前创建一个空 Azure 资源组,并相应地授予贡献者权限。

在“完整配置”界面中为计算机目录配置资源组

在目录创建向导中的资源组页面中,可以选择是创建资源组还是使用现有组。请参阅 使用 Azure Resource Manager 映像创建计算机目录

删除计算机目录时资源组发生的情况。如果在创建计算机目录时允许 Citrix Virtual Apps and Desktops 服务创建资源组,但之后删除了该目录,这些资源组以及这些资源组中的其他资源也将被删除。

如果在创建计算机目录时使用现有资源组,且之后删除了目录,则这些资源组中的所有资源将被删除,但资源组不会删除。

注意事项和限制

在使用现有资源组时,目录创建向导中的“资源组”页面上的可用资源组列表不会自动刷新。因此,如果打开了该向导页面并在 Azure 中为资源组创建或添加权限,这些更改不会反映在向导的列表中。要查看最新更改,请返回到向导中的计算机管理页面,然后重新选择与主机连接关联的资源。或者,关闭并重新启动向导。在 Azure 中所做的更改显示在“完整配置”界面中最多可能需要 10 分钟。

如果您的连接使用可以访问各个区域中的空资源组的服务主体,这些资源组将显示在可用列表中。请务必在要创建计算机目录的相同区域中选择资源组。

故障排除

  • 资源组未出现在目录创建向导的“资源组”页面上的列表中。

    服务主体必须对您希望显示在列表中的资源组具有适当权限。请参阅 要求

更多信息