Citrix Virtual Apps and Desktops

创建 VMware 目录

创建计算机目录 介绍了用于创建计算机目录的向导。以下信息涵盖了 VMware 虚拟化环境特有的详细信息。

注意:

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

创建主 VM

使用主 VM 在计算机目录中提供用户桌面和应用程序。在您的虚拟机管理程序上:

  1. 在主 VM 上安装 VDA,选择优化桌面的选项,这可以提高性能。
  2. 为主 VM 创建快照以用作备份。

注意:

您可以使用 MCS 在 vSAN 8.0 环境中预配 VM。

使用计算机配置文件创建计算机目录

您可以使用计算机配置文件创建 MCS 计算机目录。计算机配置文件输入的源是 VMware 模板。计算机配置文件从 VMware 模板捕获硬件属性,并将其应用于目录中新预配的 VM。

注意:

  • 主映像输入(快照)和计算机配置文件输入(VMware 模板)必须要么都启用 vTPM,要么都禁用 vTPM。此规则同时适用于 New-ProvSchemeSet-ProvScheme
  • 如果主映像启用了 vTPM,则 VMware 模板只能来自与主映像相同的 VM 源。
  • 加密存储策略仅支持完整克隆。
  • 基于计算机配置文件的目录利用提供的 VMware 模板来收集存储控制器信息,并依赖于附加的虚拟磁盘。该模板必须包含一个虚拟磁盘,该虚拟磁盘是检索用于配置虚拟机虚拟磁盘的存储控制器信息所必需的。

计算机配置文件中的 VMware 模板必须在目录生命周期内存在,才能允许向目录预配虚拟机。如果没有 VMware 模板,则无法预配新的虚拟机。当 VMware 模板被删除时,您必须使用 Set-ProvScheme 命令提供一个新模板。

  • MCS 捕获 VMware 模板的属性。您可以使用 Get-Provscheme 命令引用 VMware 模板的存储属性来创建新的 VMware 模板。
  • 或者,如果计算机目录和已预配的虚拟机存在,则 MCS 预配的计算机也可以用于创建新的 VMware 模板。
  • 启用 MCSIO 后,您可以在创建 MCS 目录后更新内存和磁盘缓存大小。

根据不同的操作系统,您可以创建具有不同配置的计算机目录:

  • 如果主映像上安装了 Windows 11,则要求为主映像启用 vTPM。因此,作为计算机配置文件来源的 VMware 模板必须附加 vTPM。
  • 如果主映像上安装了 Windows 10 且未附加 vTPM,则可以使用非 vTPM VMware 模板作为计算机配置文件的来源来创建计算机目录。

还有另一种配置,您可以使用完整复制磁盘模式创建计算机目录,并应用了加密存储策略的计算机配置文件模板。

要使用 PowerShell 命令创建计算机目录并将计算机配置文件作为输入:

  1. 打开一个 PowerShell 窗口。
  2. 运行 asnp citrix®*
  3. 运行以下命令:

    • 要创建计算机目录,其中附加 vTPM 的 VMware 模板作为计算机配置文件输入的来源,并且主映像安装了 Windows 11:

       $identityPool = New-AcctIdentityPool  -IdentityPoolName "<string>"
       -NamingScheme "<string>-###"
       -NamingSchemeType Numeric
       -Domain "<domain name"
       -ZoneUid "<Uid>"  -Scope @()
       <!--NeedCopy-->
      
       $provScheme =New-ProvScheme  -CleanOnBoot
       -HostingUnitName "vSanRg"
       -IdentityPoolName "<string>"
       -InitialBatchSizeHint 1
       -MasterImageVM "XDHyp:\HostingUnits\<hosting unit name>\<snapshot name>.snapshot"
       -NetworkMapping @{"0"="XDHyp:\HostingUnits\<hosting unit name>\\<network name>.network"}
       -ProvisioningSchemeName "<string>"
       -Scope @() -VMCpuCount 4
       -VMMemoryMB 6144
       -MachineProfile "XDHyp:\HostingUnits\<hosting unit name>\<template name>.template" -TenancyType Shared
       -FunctionalLevel "L7_20"
       <!--NeedCopy-->
      
       $catalog = New-BrokerCatalog
       -AllocationType "Static"
       -PersistUserChanges  "OnLocal"
       -Description "<string>"
       -IsRemotePC $False
       -MinimumFunctionalLevel 'L7_9'
       -Name "<catalog name>"
       -ProvisioningType 'MCS'
       -Scope @()
       -SessionSupport "SingleSession" -ZoneUid "<Uid>"
       <!--NeedCopy-->
      
       Set-BrokerCatalog -Name "<string>"
       -ProvisioningSchemeId $provScheme.ProvisioningSchemeUid.Guid
       <!--NeedCopy-->
      
    • 要使用非 vTPM VMware 模板作为计算机配置文件和 Windows10 已安装主映像的源来创建计算机目录:

       $identityPool = New-AcctIdentityPool
       -IdentityPoolName "<string>"
       -NamingScheme "<string>-###" -NamingSchemeType Numeric
       -Domain "<domain name>"
       -ZoneUid "<Uid>"  -Scope @()
       <!--NeedCopy-->
      
       $provScheme =New-ProvScheme
       -CleanOnBoot -HostingUnitName "<string>"
       -IdentityPoolName "<string>"
       -InitialBatchSizeHint 1
       -MasterImageVM "XDHyp:\HostingUnits\<hosting unit name>\<snapshot name>.snapshot
       -NetworkMapping @{"0"="XDHyp:\HostingUnits\<hosting unit name>\\<string>.network"}
       -ProvisioningSchemeName "<string>"  -Scope @() -VMCpuCount 4  -VMMemoryMB 8192
       -MachineProfile "XDHyp:\HostingUnits\<hosting unit name>\<template name>.template"
       -TenancyType Shared  -FunctionalLevel "L7_20"
       <!--NeedCopy-->
      
       $catalog = New-BrokerCatalog
       -AllocationType "Static"
       -PersistUserChanges  "OnLocal"
       -Description "<string>"
       -IsRemotePC $False
       -MinimumFunctionalLevel 'L7_9' -Name "<string>" -ProvisioningType 'MCS' -Scope @()
       -SessionSupport "SingleSession" -ZoneUid "<Uid"
       <!--NeedCopy-->
      
       Set-BrokerCatalog -Name "<string>"
       -ProvisioningSchemeId $provScheme.ProvisioningSchemeUid.Guid
       <!--NeedCopy-->
      
    • 要使用完整复制磁盘模式创建计算机目录,并应用了加密存储策略的计算机配置文件模板:

       $identityPool = New-AcctIdentityPool
       -IdentityPoolName "<string>"
       -NamingScheme "<string>-###"
       -NamingSchemeType Numeric
       -Domain "<domain name>"
       -ZoneUid "<Uid>"  -Scope @()
       <!--NeedCopy-->
      
       $provScheme =New-ProvScheme
       -HostingUnitName "<string>"
       -IdentityPoolName "<string>"
       -InitialBatchSizeHint 1
       -MasterImageVM "XDHyp:\HostingUnits\<hosting unit name>\<snapshot name>.snapshot"
       -NetworkMapping @{"0"="XDHyp:\HostingUnits\<hosting unit name>\\<string>.network"}
       -ProvisioningSchemeName "<string>"
       -Scope @() -VMCpuCount 4  -VMMemoryMB 8192 -MachineProfile "XDHyp:\HostingUnits\<hosting unit name>\<template name>.template"
       -TenancyType Shared
       -FunctionalLevel "L7_20" -UseFullDiskCloneProvisioning
       <!--NeedCopy-->
      
       $catalog = New-BrokerCatalog
       -AllocationType "Static"
       -PersistUserChanges  "OnLocal"
       -Description "<string>"  -IsRemotePC $False
       -MinimumFunctionalLevel 'L7_9'
       -Name "<string>" -ProvisioningType 'MCS' -Scope @()
       -SessionSupport "SingleSession" -ZoneUid "<Uid>"
       <!--NeedCopy-->
      
       Set-BrokerCatalog -Name "<string>"
       -ProvisioningSchemeId $provScheme.ProvisioningSchemeUid.Guid
       <!--NeedCopy-->
      

要更新计算机配置文件,请使用 Set-ProvScheme 命令。例如:

Set-ProvScheme -ProvisioningSchemeName 'name' -IdentityPoolName 'name' -MachineProfile 'XDHyp:\HostingUnits\<hosting unit name>\<template name>.template'
<!--NeedCopy-->

检查多个网卡

当使用计算机配置文件以及 New-ProvSchemeSet-ProvScheme 命令中的 NetworkMapping 参数时,在多个网卡的预检过程中会收到各种错误消息。

多个网卡的预检清单如下:

  • 仅使用并验证计算机配置文件模板中的网卡数量。这些网卡指向的网络不会被使用或根据托管单元网络进行验证。
  • 如果计算机配置文件模板中的网卡数量大于托管单元中的网络数量,则会收到错误消息。
  • 如果计算机配置文件模板中的网卡数量为零,则会收到错误消息。 当计算机配置文件模板中的网卡数量为一时,则:

    • 如果在 New-ProvSchemeSet-ProvScheme 命令中未指定网络映射,并且托管单元网络为一个,则使用该托管单元网络。
    • 如果指定了网络映射,则在有效的情况下使用指定的网络映射。
  • 当计算机配置文件模板中的网卡数量大于 1,或托管单元网络数量大于 1 时,则:

    • 命令中需要有效的网络映射,并且应为每个网卡提供映射(即,NetworkMapping 计数应与计算机配置文件网卡计数相同)。
    • 在托管单元中,多个网卡不能映射到同一个网络。
    • NetworkMapping 计数和计算机配置文件网卡计数必须小于或等于托管单元网络计数。
    • 必须为从 0 到 n-1 的每个 ID 提供 NetworkMapping,其中 n 是计算机配置文件模板中网络适配器的数量。

在 MCS 创建的 VM 上预配数据盘

数据盘允许存储持久性数据,例如事件日志、安全跟踪和应用程序数据。您可以创建持久性或非持久性数据盘,并将其分配给 VMware 中 MCS 计算机目录的 MCS 创建的持久性或非持久性 VM。

从主映像预配数据盘。准备好的主映像数据盘存储在 <Prov Scheme Name>-dataDisk-<datastoreId> 文件夹中。

您可以创建基于计算机配置文件和非基于计算机配置文件的 MCS 目录。对于基于计算机配置文件的 MCS 目录,您可以使用相同的主映像 VM 作为计算机配置文件的数据盘源。

预配的 VM 的数据盘从主映像派生存储策略和大小等属性。对于基于计算机配置文件的目录,它可以选择使用 VM 模板的数据盘来派生属性。如果 VM 模板没有数据盘,则使用存储的默认策略。

预配的 VM 的数据盘与操作系统盘和身份盘在同一目录中创建。

支持的数据盘方案

以下是支持的操作系统盘和数据盘方案:

  • 持久性操作系统盘与持久性数据盘
  • 非持久性操作系统盘与持久性数据盘
  • 非持久性操作系统盘与非持久性数据盘

注意:

持久性计算机目录不能具有非持久性数据盘。

限制

目前不支持以下操作:

  • 预配多个数据盘。
  • 重置数据盘。
  • 将带有数据盘的 MCS 目录更新为不带数据盘的 MCS 目录。同样,将不带数据盘的 MCS 目录更新为带有数据盘的 MCS 目录。

主要步骤

  1. 在 VMware 中创建带有数据盘的主映像 VM。对于基于计算机配置文件的 MCS 目录,您可以将相同的主映像 VM 用作计算机配置文件的数据盘源。
  2. 使用 New-ProvScheme PowerShell 命令创建带有已预配数据盘的 VM 的 MCS 计算机目录。请参阅创建带有已预配数据盘的 VM 的目录
  3. 使用 New-ProvVM PowerShell 命令将 VM 添加到目录。
  4. 登录到 VM 以查看数据盘是否已正确格式化。如果主映像 VM 中引用的数据盘上有内容,则该内容也位于数据盘上。

在 VMware 中创建带有数据盘的主映像 VM

  1. 创建具有两个硬盘的 VM。一个是操作系统盘,另一个是数据盘。按照此指南 将新硬盘(数据盘)添加到现有 VM。
  2. 登录到 VM 以初始化磁盘、设置所需的驱动器号并添加内容。

创建带有已预配数据盘的 VM 的目录

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

  • DataDisk:指定数据盘的路径。
  • DataDiskPersistence:指示 DataDisk 是持久的还是非持久的。

    如果 CleanOnBoot 为 false,则数据磁盘不能是非持久的。配置后,您无法更改计算机目录的 DataDiskPersistence 值。

创建目录后,使用 New-ProvVM 命令添加 VM。

映像更新

运行 Publish-ProvMasterVMImage 命令以更新操作系统和数据磁盘的源。运行 Publish-ProvMasterVMImage 命令后:

  • 新 VM 是使用更新的操作系统和数据磁盘创建的。
  • 现有 VM 的非持久磁盘将在下次电源循环时更新。
  • 现有 VM 的持久磁盘不会在下次电源循环时更新。

删除数据磁盘

如果您删除目录,则数据磁盘将被删除,除非您使用 forgetVMpurgeDBOnly 选项。如果您删除 VM,则数据磁盘将被删除,除非您使用 forgetVMpurgeDBOnly 选项。这些条件仅适用于持久性 MCS 计算机目录。

故障排除

如果目录创建失败,请参阅 CTX294978

下一步

更多信息

创建 VMware 目录