Citrix DaaS

Create a VMware catalog

Create machine catalogs describes the wizards that create a machine catalog.

Note:

Before creating a VMware catalog, you need to finish creating a connection to VMware. See Connection to VMware.

Create a machine catalog using a machine profile

You can create an MCS machine catalog using a machine profile. The source of the machine profile input is a VMware template. The machine profile captures the hardware properties from a VMware template and applies them to the newly provisioned VMs in the catalog.

Note:

  • Master image input (snapshot) and machine profile input (VMware template) must either be both vTPM enabled or both vTPM disabled. This rule applies to both New-ProvScheme and Set-ProvScheme.
  • If the master image is vTPM enabled, then the VMware template can only come from the same VM source as the master image.
  • Encrypted storage policy only supports full clone.

The VMware template in the machine profile must exist during the catalog life cycle to allow provisioning of VMs to the catalog. Without a VMware template, you cannot provision new VMs. When a VMware template gets deleted, you must supply a new template using the Set-ProvScheme command.

  • MCS captures properties of a VMware template. You can create a new VMware template referencing stored properties of the VMware template using the Get-Provscheme command.
  • Alternatively, if the machine catalog and provisioned VMs exist, then an MCS provisioned machine can also be used to create a new VMware template.
  • When MCSIO is enabled, you can update the memory and disk cache sizes after creating the MCS catalogs.

Based on different OS, you can create a machine catalog with different configurations:

  • If Windows 11 is installed on the master image, then it is a requirement to have vTPM enabled for the master image. Therefore, the VMware template, which is a source of machine profile, must have vTPM attached to it.
  • If Windows 10 is installed on the master image with no vTPM attached, then you can create a machine catalog with non-vTPM VMware template as source for machine profile.

There is another configuration where you can create a machine catalog using full copy disk mode with machine profile template applied with encrypted storage policy.

To create a machine catalog using PowerShell commands with machine profile as input:

  1. Open a PowerShell window.
  2. Run asnp citrix* to load the Citrix-specific PowerShell modules.
  3. Run the following commands:

    • To create a machine catalog with vTPM attached VMware template as a source for machine profile input and windows11 installed master image:

      $identityPool = New-AcctIdentityPool -IdentityPoolName "<string>" -NamingScheme "<string>-###" -NamingSchemeType Numeric -Domain "<domain name" -ZoneUid "<Uid>" -Scope @()
      $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"
      $catalog = New-BrokerCatalog -AllocationType "Static" -PersistUserChanges "OnLocal" -Description "<string>" -IsRemotePC $False -MinimumFunctionalLevel 'L7_9' -Name "<catalog name>" -ProvisioningType 'MCS' -Scope @() -SessionSupport "SingleSession" -ZoneUid "<Uid>"
      Set-BrokerCatalog -Name "<string>" -ProvisioningSchemeId $provScheme.ProvisioningSchemeUid.Guid
    • To create a machine catalog with non-vTPM VMware template as source for machine profile and Windows10 installed master image:

      $identityPool = New-AcctIdentityPool -IdentityPoolName "<string>" -NamingScheme "<string>-###" -NamingSchemeType Numeric -Domain "<domain name>" -ZoneUid "<Uid>" -Scope @()
      $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"
      $catalog = New-BrokerCatalog -AllocationType "Static" -PersistUserChanges "OnLocal" -Description "<string>" -IsRemotePC $False -MinimumFunctionalLevel 'L7_9' -Name "<string>" -ProvisioningType 'MCS' -Scope @() -SessionSupport "SingleSession" -ZoneUid "<Uid"
      Set-BrokerCatalog -Name "<string>" -ProvisioningSchemeId $provScheme.ProvisioningSchemeUid.Guid
    • To create a machine catalog using Full copy disk mode with machine profile template applied with encrypted storage policy:

      $identityPool = New-AcctIdentityPool -IdentityPoolName "<string>" -NamingScheme "<string>-###" -NamingSchemeType Numeric -Domain "<domain name>" -ZoneUid "<Uid>" -Scope @()
      $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
      $catalog = New-BrokerCatalog -AllocationType "Static" -PersistUserChanges "OnLocal" -Description "<string>" -IsRemotePC $False -MinimumFunctionalLevel 'L7_9' -Name "<string>" -ProvisioningType 'MCS' -Scope @() -SessionSupport "SingleSession" -ZoneUid "<Uid>"
      Set-BrokerCatalog -Name "<string>" -ProvisioningSchemeId $provScheme.ProvisioningSchemeUid.Guid
    • To update a machine profile, use the Set-ProvScheme command. For example:

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

Check for multiple NICs

You get various error messages during the pre-flight checks for multiple NICs when using a machine profile and the NetworkMapping parameter in the New-ProvScheme and Set-ProvScheme commands.

The pre-flight checklist for multiple NICs is as follows:

  • Only NIC count from the machine profile template is used and validated. The network to which these NICs point towards is not used or validated against the hosting unit networks.
  • If the NIC count in the machine profile template is greater than the number of networks in the hosting unit, you get an error message.
  • If the NIC count in the machine profile template is zero, you get an error message. When the NIC count in the machine profile template is one, then:

    • If no network mapping is specified in the New-ProvScheme or Set-ProvScheme command, and the hosting unit network is one, then the hosting unit network is used.
    • If network mapping is specified, then the specified network mapping is used if it is valid.
  • When the NIC count in the machine profile template is greater than 1, or the hosting unit network count is greater than 1, then:

    • Valid network mapping is required in the command, and it should provide mapping for each NIC (that is, NetworkMapping count should be same as the machine profile NIC count).
    • Multiple NICs cannot be mapped to the same network in the hosting unit.
    • NetworkMapping count and machine profile NIC count must be less than or equal to the hosting unit network count.
    • NetworkMapping must be provided for each id from 0 to n-1, where n is the number of network adapters in the machine profile template.

Troubleshooting

If the catalog fails to create, see CTX294978.

Where to go next

More information

Create a VMware catalog