Citrix DaaS

创建 VMware 目录

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

注意:

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

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

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

注意:

  • 主映像输入(快照)和机器配置文件输入(VMware 模板)必须同时启用 vTPM 或同时禁用 vTPM。 此规则适用于 New-ProvSchemeSet-ProvScheme
  • 如果主映像启用了 vTPM,则 VMware 模板只能来自与主映像相同的 VM 源。
  • 加密存储策略仅支持完整克隆。

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

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

根据不同的OS,可以创建不同配置的机器目录:

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

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

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

  1. 打开 PowerShell 窗口。
  2. 运行 asnp citrix* 以加载特定于 Citrix 的 PowerShell 模块。
  3. 运行以下命令:

    • 要创建带有 vTPM 附加 VMware 模板的机器目录作为机器配置文件输入的源和安装了 windows11 的主映像:

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

检查多个 NIC

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

多个 NIC 的飞行前检查清单如下:

  • 仅使用和验证机器配置文件模板中的 NIC 数量。 这些 NIC 指向的网络未在托管单元网络中使用或验证。
  • 如果机器配置文件模板中的 NIC 数量大于托管单元中的网络数量,则会收到错误消息。
  • 如果机器配置文件模板中的 NIC 数量为零,您将收到一条错误消息。 当机器配置文件模板中的 NIC 数量为 1 时,则:

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

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

在 MCS 创建的 VM 上配置数据磁盘

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

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

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

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

所配置虚拟机的数据磁盘与操作系统和身份磁盘创建在同一目录中。

支持的数据盘场景

以下是支持的 OS 磁盘和数据磁盘场景:

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

注意:

持久性机器目录不能有非持久性数据磁盘。

限制

目前不支持以下操作:

  • 配置多个数据磁盘。
  • 重置数据磁盘。
  • 将带有数据磁盘的 MCS 目录更新为非数据磁盘 MCS 目录。 类似地,将没有数据磁盘的 MCS 目录更新为数据磁盘 MCS 目录。

关键步骤

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

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

  1. 创建一个具有两个硬盘的虚拟机。 一个是操作系统磁盘,第二个是数据磁盘。 按照这个 指南 向现有 VM 添加新硬盘(数据磁盘)。
  2. 登录虚拟机初始化磁盘,设置所需的盘符,并添加内容。

创建包含已配置数据磁盘的虚拟机的目录

New-ProvScheme PowerShell 命令中包含以下参数,以使用数据磁盘配置 MCS 机器目录。

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

    如果 CleanOnBoot 为假,则数据磁盘不能是非持久性的。 一旦配置完成,您就无法更改机器目录的 DataDiskPersistence 的值。

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

图像更新

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

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

删除数据磁盘

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

故障排除

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

下一步的去向

更多信息

创建 VMware 目录