Citrix DaaS

Microsoft Azure Resource Manager 云环境

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

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

Azure 按需预配

在采用 Azure 按需预配的情况下,仅在完成预配后,当 Citrix Virtual Apps and Desktops 启动开机操作时才创建 VM。

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

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

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

在 Citrix Virtual Apps and Desktops 为 VM 启动开机操作之前,Azure 门户不会显示 VM。然后,VM 在“完全配置”界面中的状态将变为。有两种类型的计算机,它们有以下区别:

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

连接到 Azure Resource Manager

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

注意事项:

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

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

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

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

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

创建服务主体

重要:

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

在开始之前,请向 Azure 进行身份验证。确保:

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

向 Azure 进行身份验证以创建服务主体时,应用程序将在 Azure 中注册。密钥(客户端密码)是为已注册的应用程序创建的。注册的应用程序使用客户端密钥向 Azure AD 进行身份验证。请务必在客户端密码到期之前进行更改。在密钥到期之前,您会在控制台上收到警报。请参阅应用程序密钥和密钥到期日期

要向 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
  • ActiveDirectoryID:您在 Azure AD 中注册的应用程序的租户 ID。
  • ApplicationName: 要在 Azure AD 中创建的应用程序的名称。
  • ApplicationPassword: 应用程序的密码。创建主机连接时,请使用此密码作为应用程序机密。

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

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

    Connect-AzAccount

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

    Select-AzSubscription -SubscriptionID $SubscriptionId

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

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

  4. 创建服务主体。

    New-AzADServicePrincipal -ApplicationId $AzureADApplication.ApplicationId

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

    New-AzRoleAssignment -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. 摘要页面上,查看设置的摘要,然后选择完成以完成您的设置。

应用程序密钥和密钥到期日期

查看应用程序 ID

您可以在“完整配置”界面中查看应用程序 ID。

在“添加连接和资源”向导中,选择连接以查看详细信息。“详细信息”选项卡显示应用程序 ID。

“添加连接和资源”页上的应用程序 ID

查看应用程序密钥

您可以在 Azure 门户中查看应用程序密钥。

  1. 从完整配置界面获取 应用程序 ID
  2. 登录 Azure 门户。
  3. 在 Azure 中,选择 Azure Active Directory
  4. 从 Azure AD 中的应用程序注册中,选择您的应用程序。
  5. 转到证书和密钥
  6. 单击“客户机密钥”。

Azure 门户中的应用程序密钥

更改密钥到期日期

使用完整配置界面添加或修改正在使用的应用程序密钥的到期日期。

  1. 在“添加连接和资源”向导中,右键单击连接,然后单击“编辑连接”。
  2. 在“连接属性”页上,单击“密钥到期日期”以添加或修改正在使用的应用程序密钥的过期日期。

更改密钥到期日期

创建新的应用程序密钥

您可以通过 Azure 门户为连接创建新的应用程序密钥。

  1. 选择 Azure Active Directory
  2. 从 Azure AD 中的应用程序注册中,选择您的应用程序。
  3. 转到证书和密钥
  4. 单击“客户端密钥”>“新建客户端密钥”。

    创建新的应用程序密钥

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

    注意:

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

  6. 复制客户端密钥值和到期日期。
  7. 在“完整配置”界面中,编辑相应的连接,并将应用程序密钥密钥到期日期字段中的内容替换为您复制的值。

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

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

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

提示:

不建议使用非托管磁盘置备 VM。

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

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

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

    注意:

    • 选择启用了受信任启动的映像或快照时,必须使用具有受信任启动的计算机配置文件作为 安全类型 。然后,您可以通过在计算机配置文件中指定其值来启用或禁用 SecureBoot 和 vTPM。共享映像库不支持受信任的启动。有关 Azure 可信启动的信息,请参阅 https://docs.microsoft.com/en-us/azure/virtual-machines/trusted-launch
    • 您可以在具有受信任启动的 Windows 上使用临时操作系统磁盘创建置备方案。选择具有受信任启动的映像时,必须选择启用了 vTPM 的具有受信任启动的计算机配置文件。要使用临时操作系统磁盘创建计算机目录,请参阅如何使用临时操作系统磁盘创建计算机
    • 当映像复制正在进行时,您可以继续选择映像作为主映像并完成设置。但是,在复制映像时创建目录可能需要更长时间才能完成。MCS 要求复制在目录创建开始的一小时内完成。如果复制超时,目录创建将失败。您可以在 Azure 中验证复制状态。请在复制仍处于挂起状态或在复制完成后重试。
    • 在 Azure 中为计算机目录选择主映像时,MCS 会根据您选择的主映像和计算机配置文件来标识操作系统类型。如果 MCS 无法识别它,请选择与主映像匹配的操作系统类型。

    要使目录中的 VM 能够从计算机配置文件继承配置,请选中使用计算机配置文件复选框。从资源组列表中,根据需要找到资源组。接下来,在资源组中,选择要用作计算机配置文件的 VM 或 ARM 模板规范。

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

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

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

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

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

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

    重要:

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

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

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

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

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

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

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

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

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

    注意:

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

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

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

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

      • RHEL_BYOS:要成功使用 RHEL_BYOS 类型,请在你的 Azure 订阅中启用 Red Hat 云访问。
      • SLES_BYOS:自带操作系统版本的 SLES 包含 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 共享映像库 (SIG) 是用于管理和共享映像的存储库。它可以让您在整个组织中使用映像。我们建议您在创建大型非持久性计算机目录时将映像存储在 SIG 中,因为这样做可以更快地重置 VDA 操作系统磁盘。选择将映像放入 Azure 共享映像库后,将显示“Azure 共享映像库设置部分,允许您指定更多 SIG 设置:

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

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

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

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

  • 磁盘设置页面上,选择是否启用回写式缓存。启用回写式缓存后,您可以执行以下操作:

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

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

      • 高级 SSD
      • 标准 SSD
      • 标准 HDD
    • 选择回写式缓存磁盘的类型。

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

      有关详细信息,请参阅创建计算机目录

    • 选择是否在电源重启期间为 VDA 保留系统磁盘。

      • 电源重启期间保留系统磁盘。默认情况下,系统磁盘在关机时删除,并在启动时重新创建。这样可以确保磁盘始终处于干净状态,但会导致 VM 重新启动时间更长。如果系统写入操作重定向到 RAM 缓存并溢出到缓存磁盘,系统磁盘将保持不变。启用此选项会增加您的存储成本,但可缩短 VM 的重新启动时间。选择启用回写式缓存以使此选项可用。
        • 跨电源周期保留 VM. 选择此选项可保留 VM 的自定义设置并使 VM 能够通过 Azure 门户启动。
    • 选择是否对在目录中预配的计算机上的数据进行加密。通过使用客户管理的加密密钥的服务器端加密,您可以在托管磁盘级别管理加密,并保护目录中的计算机上的数据。有关详细信息,请参阅 Azure 服务器端加密

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

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

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

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

完成向导。

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

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

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

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

注意:

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

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

  • New-ProvScheme 方案

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      Set-ProvScheme -CustomProperties $CustomPropertiesB

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

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

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

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

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

使用 PowerShell 启用 Azure VM 扩展

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

  • 要查看支持的 Azure VM 扩展列表,请执行以下操作:Get-ProvMetadataConfiguration
  • 要添加其他 VM 扩展,请执行以下操作:Add-ProvMetadataConfiguration。例如,Add-ProvMetadataConfiguration -PluginType "AzureRM" -ConfigurationName "Extension" -ConfigurationValue "CustomScriptExtension"

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

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

页面文件位置

在 Azure 环境中,页面文件位置是在首次创建 VM 时设置的。页面文件设置的格式为:页面文件位置 [最小大小] [最大大小](以 MB 为单位的大小)。有关更多信息,请参阅如何确定适当的页面文件大小

在映像准备过程中,当您创建置备方案时,MCS 会根据特定规则确定页面文件的位置。创建置备方案后,您不能:

  • 更改 VM 大小
  • 更新计算机配置文件
  • 更改 EOS 和 MCS I/O 属性

页面文件位置确定

EOS 和 MCS I/O 等功能有自己的预期页面文件位置,并且彼此独有。下表显示了每个功能的预期页面文件位置:

功能 预期页面文件位置
EOS 操作系统磁盘
MCS I/O 首先是 Azure 临时磁盘,否则写回缓存磁盘

注意:

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

页面文件设置场景

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

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

更新页面文件设置

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

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

有关如何使用远程 PowerShell SDK 创建目录的信息,请参阅使用 PowerShell 创建目录

限制:

  • 只有在通过运行 New-ProvScheme 命令创建预配方案时,才能更新页面文件设置。以后无法更改页面文件设置。
  • 你必须在 New-ProvScheme 命令中提供所有自定义属性(“PageFileDiskDriveLetterOverride”、“InitialPageFileSizeInMB” 和 “MaxPageFileSizeInMB”),或者不提供任何自定义属性。
  • Citrix Studio 不支持此功能。
  • 初始页面文件大小必须介于 16 MB 到 16777216 MB 之间。
  • 最大页面文件大小必须大于或等于初始页面文件大小且小于 16777216 MB。
  • 您可以同时将初始页面文件大小和最大页面文件大小设置为零。

Azure 限制

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

提示:

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

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

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

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

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

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

Azure 限制

默认情况下,MCS 最多支持 500 个并发操作。或者,您可以使用远程 PowerShell SDK 设置最大并发操作数。

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

  • MaximumConcurrentProvisioningOperations 的默认值为 500。
  • 使用 PowerShell 命令 Set-item 配置 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": "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-->

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

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

临时磁盘的重要注意事项

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

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

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

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

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

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

重要注意事项如下:

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

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

    回写式缓存磁盘设置不可用

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

Azure 服务器端加密

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

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

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

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

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

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

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

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

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

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

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

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

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

注意:

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

Azure 客户管理的加密密钥

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

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

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

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

Azure 专用主机

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

  • 创建主机组。
  • 在该主机组中创建主机。
  • 确保为创建目录和虚拟机预留了足够的主机容量。

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

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

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

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

Azure 共享映像库

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

  • 库。图片存储在此处。MCS 为每个计算机目录创建一个库。
  • 库映像定义。此定义包括有关已发布的映像的信息(操作系统类型和状态、Azure 区域)。MCS 为目录创建的每个映像创建一个映像定义。
  • 库映像版本。共享映像库中的每个映像可以有多个版本,每个版本可以在不同的区域中有多个副本。每个副本都是已发布的映像的完整副本。Citrix DaaS 根据目录中的计算机数量、配置的副本比率和配置的副本最大值,为每个映像创建一个 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="StorageType" Value="Standard_LRS"/> <Property xsi:type="StringProperty" Name="UseManagedDisks" Value="True"/> <Property xsi:type="StringProperty" Name="UseSharedImageGallery" Value="True"/> <Property xsi:type="IntProperty" Name="SharedImageGalleryReplicaRatio" Value="30"/> <Property xsi:type="IntProperty" Name="SharedImageGalleryReplicaMaximum" Value="20"/></CustomProperties>'
<!--NeedCopy-->

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

对于此用例:

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

例如:

Set-ProvScheme -ProvisioningSchemeName catalog-name -CustomProperties '<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Property xsi:type="StringProperty" Name="StorageType" Value="Standard_LRS"/> <Property xsi:type="StringProperty" Name="UseManagedDisks" Value="True"/> <Property xsi:type="StringProperty" Name="UseSharedImageGallery" Value="True"/> <Property xsi:type="IntProperty" Name="SharedImageGalleryReplicaRatio" Value="30"/> <Property xsi:type="IntProperty" Name="SharedImageGalleryReplicaMaximum" Value="20"/></CustomProperties>'
<!--NeedCopy-->

提示:

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

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

对于此用例:

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

例如:

Set-ProvScheme -ProvisioningSchemeName catalog-name -CustomProperties '<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Property xsi:type="StringProperty" Name="StorageType" Value="Standard_LRS"/> <Property xsi:type="StringProperty" Name="UseManagedDisks" Value="True"/> <Property xsi:type="StringProperty" Name="UseSharedImageGallery" Value="False"/></CustomProperties>'
<!--NeedCopy-->

提示:

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

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

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

注意:

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

在“完整配置”界面中配置可用性区域

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

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

通过 PowerShell 配置可用性区域

使用 PowerShell,您可以使用 Get-Item 查看 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 操作提供的区域自定义属性。区域属性定义了要在其中预配计算机的可用性区域列表。这些区域可以包括一个或多个可用性区域。例如,<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>'
<!--NeedCopy-->

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

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

请注意以下事项:

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

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

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

注意:

PersistVm 属性仅适用于启用了属性 CleanOnBootUseWriteBackCache 的预配方案。如果未为非持久性虚拟机指定了 PersistVm 属性,则在关闭电源时将从 Azure 环境中删除这些虚拟机。

在以下示例中,New-ProvScheme CustomProperties 参数将 PersistVm 属性设置为 true

<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Property xsi:type="StringProperty" Name="UseManagedDisks" Value="true" />
<Property xsi:type="StringProperty" Name="StorageType" Value="Standard_LRS" />
<Property xsi:type="StringProperty" Name="PersistWBC" Value="false" />
<Property xsi:type="StringProperty" Name="PersistOsDisk" Value="true" />
<Property xsi:type="StringProperty" Name="PersistVm" Value="true" />
<Property xsi:type="StringProperty" Name="ResourceGroups" Value="demo-resourcegroup" />
<Property xsi:type="StringProperty" Name="LicenseType" Value="Windows_Client" />
</CustomProperties>
<!--NeedCopy-->

在以下示例中,New-ProvScheme CustomProperties 参数通过将 PersistVM 设置为 true 来保留回写式缓存:

 New-ProvScheme
 -AzureAdJoinType "None"
 -CleanOnBoot
 -CustomProperties "<CustomProperties xmlns=`"http://schemas.citrix.com/2014/xd/machinecreation`" xmlns:xsi=`"http://www.w3.org/2001/XMLSchema-instance`"><Property xsi:type=`"StringProperty`" Name=`"UseManagedDisks`" Value=`"true`" /><Property xsi:type=`"StringProperty`" Name=`"StorageType`" Value=`"Standard_LRS`" /><Property xsi:type=`"StringProperty`" Name=`"PersistWBC`" Value=`"false`" /><Property xsi:type=`"StringProperty`" Name=`"PersistOsDisk`" Value=`"true`" /><Property xsi:type=`"StringProperty`" Name=`"PersistVm`" Value=`"true`" /><Property xsi:type=`"StringProperty`" Name=`"ResourceGroups`" Value=`"demo-resourcegroup`" /><Property xsi:type=`"StringProperty`" Name=`"LicenseType`" Value=`"Windows_Client`" /></CustomProperties>"
 -HostingUnitName "demo"
 -IdentityPoolName "NonPersistent-MCSIO-PersistVM"
 -MasterImageVM "XDHyp:\HostingUnits\demo\image.folder\scale-test.resourcegroup\demo-snapshot.snapshot"
 -NetworkMapping @ {"0"="XDHyp:\HostingUnits\demo\virtualprivatecloud.folder\East US.region\virtualprivatecloud.folder\ji-test.resourcegroup\jitest-vnet.virtualprivatecloud\default.network"}
-ProvisioningSchemeName "NonPersistent-MCSIO-PersistVM"
 -ServiceOffering "XDHyp:\HostingUnits\demo\serviceoffering.folder\Standard_B2ms.serviceoffering" -UseWriteBackCache
 -WriteBackCacheDiskSize 127
 -WriteBackCacheMemorySize 256
 <!--NeedCopy-->

提示:

PersistVm 属性决定是否保留预配的虚拟机。PersistOsdisk 属性决定是否保留操作系统磁盘。要保留预配的虚拟机,请先保留操作系统磁盘。如果不先删除虚拟机,则无法删除操作系统磁盘。可以在不使用指定 PersistVm 参数的情况下使用 PersistOsdisk 属性。

存储类型

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

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

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

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

提示:

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

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

配置存储类型

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

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

Set-ProvScheme -ProvisioningSchemeName catalog-name -CustomProperties '<CustomProperties xmlns="http://schemas.citrix.com/2014/xd/machinecreation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Property xsi:type="StringProperty" Name="UseManagedDisks" Value="true" />
<Property xsi:type="StringProperty" Name="StorageType" Value="Premium_LRS" />
<Property xsi:type="StringProperty" Name="LicenseType" Value="Windows_Client" />
</CustomProperties>'
<!--NeedCopy-->

检索 Azure VM、快照、操作系统磁盘和库映像定义的信息

可以显示 Azure VM 的信息,包括操作系统磁盘和类型、快照和库映像定义。分配计算机目录时,将为主映像上的资源显示此信息。使用此功能可以查看和选择 Linux 或 Windows 映像。PowerShell 属性 TemplateIsWindowsTemplate 已添加到 AdditionDatafield 参数中。此字段包含 Azure 特定的信息:VM 类型、操作系统磁盘、库映像信息和操作系统类型信息。将 TemplateIsWindowsTemplate 设置为 True 表示操作系统类型为 Windows;将 TemplateIsWindowsTemplate 设置为 False 表示操作系统类型为 Linux。

提示:

TemplateIsWindowsTemplate PowerShell 属性显示的信息来自 Azure API。有时,此字段可能是空的。例如,数据磁盘中的快照不包含 TemplateIsWindowsTemplate 字段,因为无法从快照中检索操作系统类型。

例如,使用 PowerShell 将 Windows 操作系统类型的 Azure VM AdditionData 参数设置为 True

PS C:\Users\username> (get-item XDHyp:\HostingUnits\mynetwork\image.folder\username-dev-testing-rg.resourcegroup\username-dev-tsvda.vm).AdditionalData
Key Value
ServiceOfferingDescription Standard_B2ms
HardDiskSizeGB 127
ResourceGroupName FENGHUAJ-DEV-TESTING-RG
ServiceOfferingMemory 8192
ServiceOfferingCores 2
TemplateIsWindowsTemplate True
ServiceOfferingWithTemporaryDiskSizeInMb 16384
SupportedMachineGenerations Gen1,Gen2
<!--NeedCopy-->

检索 Azure VM、托管磁盘、快照、Azure VHD 和 ARM 模板的区域名称信息

您可以显示 Azure VM、托管磁盘、快照、Azure VHD 和 ARM 模板的区域名称信息。分配计算机目录后,将为主映像上的资源显示此信息。当您使用 AdditionalData 参数运行 PowerShell 命令时,名为的 PowerShell 属性 RegionName 会显示区域名称信息。

例如,使用以下 PowerShell 命令在 Azure 中获取 VM 信息。

PS C:\Windows\system32> (get-item XDHyp:\HostingUnits\myAzureNetwork\image.folder\hu-dev-testing-rg.resourcegroup\hu-dev-tsvda.vm).AdditionalData
Key Value
HardDiskSizeGB 127
ResourceGroupName HU-DEV-TESTING-RG
RegionName East US
TemplateIsWindowsTemplate True
LicenseType
ServiceOfferingDescription Standard_B2ms
ServiceOfferingMemory 8192
ServiceOfferingCores 2
SupportedMachineGenerations Gen1,Gen2
ServiceOfferingWithTemporaryDiskSizeInMb 16384
SecurityType
SecureBootEnabled
VTpmEnabled
<!--NeedCopy-->

Azure 应用商店

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

提示:

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

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

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

Azure 应用商店共享映像库

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

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

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

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

Azure 应用商店添加 VDA 版本

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

Azure 应用商店选择 VDA 选项

关于 Azure 权限

本部分包含 Azure 所需的最低权限和一般权限。

最低权限

最低权限可提供更好的安全控制。但是,由于仅使用最低权限,因此,需要额外的权限的新功能将失败。

创建主机连接

使用从 Azure 获取的信息添加新的主机连接。

"Microsoft.Network/virtualNetworks/read",
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Compute/disks/read",
<!--NeedCopy-->

VM 的电源管理

打开或关闭计算机实例的电源。

"Microsoft.Compute/virtualMachines/read",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Compute/virtualMachines/deallocate/action",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
<!--NeedCopy-->

创建、更新或删除 VM

创建计算机目录,然后添加、删除、更新计算机和删除计算机目录。

下面是主映像为托管磁盘或快照与托管连接位于同一区域时所需的最低权限列表。

"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Resources/deployments/validate/action",
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Compute/virtualMachines/write",
"Microsoft.Compute/virtualMachines/delete",
"Microsoft.Compute/virtualMachines/deallocate/action",
"Microsoft.Compute/snapshots/read",
"Microsoft.Compute/snapshots/write",
"Microsoft.Compute/snapshots/delete",
"Microsoft.Compute/snapshots/beginGetAccess/action",
"Microsoft.Compute/snapshots/endGetAccess/action",
"Microsoft.Compute/disks/read",
"Microsoft.Compute/disks/write",
"Microsoft.Compute/disks/delete",
"Microsoft.Compute/disks/beginGetAccess/action",
"Microsoft.Compute/disks/endGetAccess/action",
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Network/virtualNetworks/subnets/join/action",
"Microsoft.Network/virtualNetworks/subnets/read",
"Microsoft.Network/networkSecurityGroups/read",
"Microsoft.Network/networkSecurityGroups/write",
"Microsoft.Network/networkSecurityGroups/delete",
"Microsoft.Network/networkSecurityGroups/join/action",
"Microsoft.Network/networkInterfaces/read",
"Microsoft.Network/networkInterfaces/write",
"Microsoft.Network/networkInterfaces/delete",
"Microsoft.Network/networkInterfaces/join/action",
<!--NeedCopy-->

您需要根据以下功能的最低权限获得下列额外的权限:

  • 如果主映像是与托管连接位于同一区域的存储帐户中的 VHD:

     "Microsoft.Storage/storageAccounts/read",
     "Microsoft.Storage/storageAccounts/listKeys/action",
     <!--NeedCopy-->
    
  • 如果主映像是共享映像库中的映像版本:

     "Microsoft.Compute/galleries/read",
     "Microsoft.Compute/galleries/images/read",
     "Microsoft.Compute/galleries/images/versions/read",
     <!--NeedCopy-->
    
  • 如果主映像是托管磁盘。快照或 VHD 与托管连接位于不同的区域中:

     "Microsoft.Storage/storageAccounts/read",
     "Microsoft.Storage/storageAccounts/listKeys/action",
     "Microsoft.Storage/storageAccounts/write",
     "Microsoft.Storage/storageAccounts/delete",
     <!--NeedCopy-->
    
  • 如果您使用 Citrix 管理的资源组:

     "Microsoft.Resources/subscriptions/resourceGroups/write",
     "Microsoft.Resources/subscriptions/resourceGroups/delete",
     <!--NeedCopy-->
    
  • 如果将主映像放置在共享映像库中:

     "Microsoft.Compute/galleries/write",
     "Microsoft.Compute/galleries/images/write",
     "Microsoft.Compute/galleries/images/versions/write",
     "Microsoft.Compute/galleries/read",
     "Microsoft.Compute/galleries/images/read",
     "Microsoft.Compute/galleries/images/versions/read",
     "Microsoft.Compute/galleries/delete",
     "Microsoft.Compute/galleries/images/delete",
     "Microsoft.Compute/galleries/images/versions/delete",
     <!--NeedCopy-->
    
  • 如果您使用 Azure 专用主机支持:

     "Microsoft.Compute/hostGroups/read",
     "Microsoft.Compute/hostGroups/write",
     "Microsoft.Compute/hostGroups/hosts/read",
     <!--NeedCopy-->
    
  • 如果您将服务器端加密 (SSE) 与客户托管密钥 (CMK) 结合使用:

     "Microsoft.Compute/diskEncryptionSets/read",
     <!--NeedCopy-->
    
  • 如果您使用 ARM 模板(计算机配置文件)部署 VM:

     "Microsoft.Resources/deployments/write",
     "Microsoft.Resources/deployments/operationstatuses/read",
     "Microsoft.Resources/deployments/read",
     "Microsoft.Resources/deployments/delete",
     <!--NeedCopy-->
    

创建、更新和删除包含非托管磁盘的计算机

下面是主映像为 VHD 并使用管理员提供的资源组时所需的最低权限列表:

"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Storage/storageAccounts/delete",
"Microsoft.Storage/storageAccounts/listKeys/action",
"Microsoft.Storage/storageAccounts/read",
"Microsoft.Storage/storageAccounts/write",
"Microsoft.Compute/virtualMachines/deallocate/action",
"Microsoft.Compute/virtualMachines/delete",
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Compute/virtualMachines/write",
"Microsoft.Resources/deployments/validate/action",
"Microsoft.Network/networkInterfaces/delete",
"Microsoft.Network/networkInterfaces/join/action",
"Microsoft.Network/networkInterfaces/read",
"Microsoft.Network/networkInterfaces/write",
"Microsoft.Network/networkSecurityGroups/delete",
"Microsoft.Network/networkSecurityGroups/join/action",
"Microsoft.Network/networkSecurityGroups/read",
"Microsoft.Network/networkSecurityGroups/write",
"Microsoft.Network/virtualNetworks/subnets/read",
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Network/virtualNetworks/subnets/join/action"
<!--NeedCopy-->

一般权限

贡献者角色拥有管理所有资源的完全访问权限。这组权限不会阻止您获取新功能。

以下权限集提供了将来的最佳兼容性,尽管它包含的权限超过了当前功能集所需的权限亦如此:

"Microsoft.Compute/diskEncryptionSets/read",
"Microsoft.Compute/disks/beginGetAccess/action",
"Microsoft.Compute/disks/delete",
"Microsoft.Compute/disks/endGetAccess/action",
"Microsoft.Compute/disks/read",
"Microsoft.Compute/disks/write",
"Microsoft.Compute/galleries/delete",
"Microsoft.Compute/galleries/images/delete",
"Microsoft.Compute/galleries/images/read",
"Microsoft.Compute/galleries/images/versions/delete",
"Microsoft.Compute/galleries/images/versions/read",
"Microsoft.Compute/galleries/images/versions/write",
"Microsoft.Compute/galleries/images/write",
"Microsoft.Compute/galleries/read",
"Microsoft.Compute/galleries/write",
"Microsoft.Compute/hostGroups/hosts/read",
"Microsoft.Compute/hostGroups/read",
"Microsoft.Compute/hostGroups/write",
"Microsoft.Compute/snapshots/beginGetAccess/action",
"Microsoft.Compute/snapshots/delete",
"Microsoft.Compute/snapshots/endGetAccess/action",
"Microsoft.Compute/snapshots/read",
"Microsoft.Compute/snapshots/write",
"Microsoft.Compute/virtualMachines/deallocate/action",
"Microsoft.Compute/virtualMachines/delete",
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/write",
"Microsoft.Network/networkInterfaces/delete",
"Microsoft.Network/networkInterfaces/join/action",
"Microsoft.Network/networkInterfaces/read",
"Microsoft.Network/networkInterfaces/write",
"Microsoft.Network/networkSecurityGroups/delete",
"Microsoft.Network/networkSecurityGroups/join/action",
"Microsoft.Network/networkSecurityGroups/read",
"Microsoft.Network/networkSecurityGroups/write",
"Microsoft.Network/virtualNetworks/subnets/read",
"Microsoft.Network/virtualNetworks/read",
"Microsoft.Network/virtualNetworks/subnets/join/action",
"Microsoft.Resources/deployments/operationstatuses/read",
"Microsoft.Resources/deployments/read",
"Microsoft.Resources/deployments/validate/action",
"Microsoft.Resources/deployments/write",
"Microsoft.Resources/deployments/delete",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Resources/subscriptions/resourceGroups/write",
"Microsoft.Resources/subscriptions/resourceGroups/delete",
"Microsoft.Storage/storageAccounts/delete",
"Microsoft.Storage/storageAccounts/listKeys/action",
"Microsoft.Storage/storageAccounts/read",
"Microsoft.Storage/storageAccounts/write",
<!--NeedCopy-->

更多信息