Citrix DaaS™

创建 VMware 目录

创建计算机目录 介绍了用于创建计算机目录的向导。

注意:

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

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

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

注意:

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

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

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

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

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

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

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

  1. 打开 PowerShell 窗口。
  2. 运行 asnp citrix®* 以加载 Citrix 特定的 PowerShell 模块。
  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 模板作为计算机配置文件源且安装了 Windows 10 的主映像的计算机目录:

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

检查多个 NIC

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

多个 NIC 的预检清单如下:

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

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

    • 命令中需要有效的网络映射,并且应为每个 NIC 提供映射(即,NetworkMapping 计数必须与计算机配置文件 NIC 计数相同)。
    • 多个 NIC 不能映射到托管单元中的同一网络。
    • NetworkMapping 计数和计算机配置文件 NIC 计数必须小于或等于托管单元网络计数。
    • 必须为从 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:指示数据磁盘是持久性还是非持久性。

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

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

映像更新

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

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

删除数据磁盘

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

故障排除

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

后续步骤

更多信息

创建 VMware 目录