创建 AWS EC2 目录
(/zh-cn/citrix-virtual-apps-desktops/2511/install-configure/machine-catalogs-create) 介绍了创建计算机目录的向导。以下信息涵盖了 AWS EC2 虚拟化环境特有的详细信息。
注意:
在创建 AWS 目录之前,您需要完成与 AWS 的连接创建。请参阅 (en-us/citrix-virtual-apps-desktops/install-configure/connections/connection-aws)。
映像准备期间的网络设置
在映像准备期间,会基于原始 VM 创建一个准备虚拟机 (VM)。此准备 VM 与网络断开连接。为了将网络与准备 VM 断开连接,会创建一个网络安全组以拒绝所有入站和出站流量。此网络安全组会持久存在并被重复使用。该网络安全组的名称为 Citrix.XenDesktop.IsolationGroup-GUID,其中 GUID 是随机生成的。
AWS 租用类型
AWS 提供以下租用选项:
- 共享租用(默认类型)和专用租用。共享租用意味着来自不同客户的多个 Amazon EC2 实例可能驻留在同一物理硬件上。
- 专用租用意味着您的 EC2 实例仅在您已部署的其他实例所在的硬件上运行。其他客户不使用同一块硬件。
预配到 AWS 主机的要求
- 导入的 BYOL(自带许可证)映像 (AMI)。对于专用主机,请使用和管理您现有的许可证。
- 一项具有足够利用率的专用主机分配,以满足预配请求。
- 启用 自动放置。
配置 AWS 租用类型的选项
- 使用共享硬件。此设置适用于大多数部署。多个客户共享硬件,即使他们之间不进行交互。使用共享硬件是运行 Amazon EC2 实例最经济的选择。
-
使用专用主机。Amazon EC2 专用主机是具有完全专用 EC2 实例容量的物理服务器,允许您使用现有的按插槽或按 VM 计费的软件许可证。专用主机根据实例类型具有预设利用率。例如,单个分配的 C4 Large 实例类型的专用主机仅限于运行 16 个实例。有关更多信息,请参阅 AWS 网站。
此设置适用于具有许可限制或安全要求且需要使用专用主机的部署。使用专用主机,您拥有整个物理主机并按小时计费。拥有该主机可让您启动该主机允许的任意数量的 EC2 实例,而无需额外付费。
- 使用专用实例。此设置更适用于具有特定安全或合规性要求的部署。使用专用实例,您仍然可以享受拥有独立于其他 AWS 客户的主机的好处,但无需支付整个主机的费用。您无需担心主机的容量,但实例的收费会更高。
注意:
如果没有正在进行的目录创建或映像更新任务,您可以删除任何可用的准备身份磁盘。
要使用 Studio 配置 AWS 租用,请参阅 (#create-a-catalog-using-web-studio);要使用 PowerShell 配置,请参阅 (#configure-aws-dedicated-host-tenancy-using-the-powershell)。
标记 AWS 操作资源
Amazon Machine Image (AMI) 是一种虚拟设备,用于在 Amazon 云环境(通常称为 EC2)中创建虚拟机。您可以使用 AMI 部署使用 EC2 环境的服务。当您创建目录以使用 MCS for AWS 预配计算机时,您选择 AMI 作为该目录的黄金映像。
重要提示:
要使用操作资源标记,必须同时使用计算机配置文件和启动模板创建目录。
要创建 AWS 目录,您必须首先为您希望作为黄金映像的实例创建 AMI。MCS 从该实例读取标签并将其合并到启动模板中。然后,启动模板标签将应用于在您的 AWS 环境中创建的所有 Citrix® 资源,包括:
- 虚拟机器
- VM 磁盘
- VM 网络接口
- S3 存储桶
- S3 对象
- 启动模板
- AMI
您可以在创建目录时使用 Studio 和 PowerShell 标记操作资源。对于 Studio,请参阅 使用 Web Studio 创建目录(映像页面)。对于 PowerShell,请参阅 使用 PowerShell 标记操作资源。
创建目录
您可以使用以下方式创建目录:
使用 Web Studio 创建目录
- 在左侧导航窗格中,单击计算机目录。
- 单击创建计算机目录。此时将显示计算机目录设置页面。
- 在计算机类型页面上,为目录选择一种计算机类型,例如,多会话操作系统。
-
在计算机管理页面上,选择以下设置:
- 选择电源管理的计算机(例如,虚拟机或刀片式 PC)。
- 选择Citrix 预配技术。然后,选择Citrix 机器创建服务™。
- 在资源字段中,选择在创建主机连接时配置的资源(可用区或本地区域),然后单击下一步。
- 在桌面体验页面上,选择用户登录时所需的随机桌面或静态桌面。
-
在映像页面上:
- 选择一个计算机模板,作为目录中所有计算机的主映像。
- 如果希望目录中的 VM 继承计算机配置文件中的配置,请选择一个计算机配置文件。默认情况下,使用计算机配置文件复选框处于选中状态。要将计算机配置文件源更改为其他 VM 或启动模板版本,请单击编辑按钮。
- 选中将计算机标签应用于操作资源复选框,以将计算机标签应用于操作资源。此选项控制是否将计算机标签应用于 AWS 环境中为方便预配计算机而创建的每个项目。操作资源是目录创建的副产品。它们包括临时资源和持久资源,例如准备 VM 实例和 AMI。
注意:
安全页面仅在您创建计算机目录时未分配计算机配置文件的情况下显示。
-
在虚拟机页面上:
- 输入目录的 VM 数量。
- 将显示基于计算机配置文件的默认计算机规范。要更改它,请选择编辑图标并选择一个计算机规范。
- 配置 AWS 租用。请参阅配置 AWS 租用的选项。
- 当主计算机大小达到最大容量时,您还可以配置辅助 VM。单击辅助大小(可选)。在辅助计算机大小窗口中,列出的 VM 具有 Spot 和常规 VM 类型。您最多可以选择 10 个辅助计算机大小。选择 10 个 VM 后,将禁用列出的其他 VM,无法进一步选择。单击下一步。在辅助计算机大小面板中,您可以选择多个计算机大小并拖放以更改优先级顺序。单击完成。选定的计算机大小将显示在辅助大小(可选)中。单击编辑图标以根据需要进行编辑。
-
安全页面仅在您创建计算机目录时未分配计算机配置文件的情况下显示。使用安全页面为 VM 配置安全组。这也适用于编辑和克隆现有计算机目录。
如果您创建基于计算机配置文件的计算机目录,则安全组配置将从计算机配置文件继承,并且不显示安全页面。
- 在网卡页面上,选择虚拟机的网卡(或 ENI)。
- 在磁盘设置页面上,选择是否启用回写缓存。
- 在计算机身份页面上,通过选择域并为将在此计算机目录中创建的 VM 创建新的 AD 帐户,为目录中的计算机配置本地 Active Directory 或 Microsoft Entra 混合加入。预配的 VM 将加入所选域。指定将为 VM 创建的新 AD 帐户的帐户命名方案。单击“下一步”。
- 在域凭据页面上,单击输入凭据以提供所选域的凭据。出现提示时,输入管理员级别的用户名和密码。如果您之前已按照我们的产品文档保存了域凭据,也可以使用服务帐户。
- 单击浏览其余页面,直到摘要页面。输入计算机目录的名称,然后选择完成以创建计算机目录。
在 AWS 本地区域中创建计算机目录的限制
- 某些本地区域仅支持某些硬件配置(例如,珀斯本地区域不支持 GP3 卷,仅支持 GP2)。
- 由于只有 gp2 在所有本地区域中普遍受支持,并非所有区域都支持 gp3,因此 ID 磁盘创建默认使用 gp2 卷类型。
- 您必须选择一个在所需本地区域中支持其硬件规格的计算机配置文件。
- 准备好的映像 AMI 快照和 ID 磁盘快照默认放置在区域中,而不是本地区域(由于 AWS 在本地区域中 EBS 快照支持可见性方面的限制)。
- 仅支持提供完整 EC2 和 EBS 服务的本地区域。
使用 PowerShell 创建一个目录
使用 PowerShell 配置 AWS 专用主机租用
或者,您可以通过 PowerShell 预配 AWS 专用主机。使用 New-ProvScheme cmdlet,并将参数 TenancyType 设置为 Host。
使用 PowerShell 标记操作资源
要使用 PowerShell 标记资源:
- 从 DDC 主机打开一个 PowerShell 窗口。
- 运行命令
asnp citrix以加载 Citrix 特定的 PowerShell 模块。
要为预配的 VM 标记资源,请使用自定义属性 AwsOperationalResourcesTagging。示例:
New-ProvScheme -ProvisioningSchemeName test
-CustomProperties “AwsOperationalResourcesTagging,true”
-MachineProfile "XDHyp:\HostingUnits\xxxx-ue1a\machineprofiletest (lt-01xxxxx).launchtemplate\lt-01xxxxx (1).launchtemplateversion"
... <Other <standard provscheme parameters>
<!--NeedCopy-->
启用 MCSIO 的目录
MCS 存储优化 (MCSIO) 通过将磁盘操作缓存在内存或小型高速磁盘中来提高 VM 性能。您可以使用 PowerShell 命令创建启用 MCSIO 的非持久性目录。要创建此类目录,您必须在准备 AMI 实例期间安装或升级 VDA 时安装 MCSIO 驱动程序。默认情况下,该驱动程序未安装。
准备好 MCSIO AMI 后(在安装 VDA 时,选择在安装中包含 MCSIO 驱动程序的选项),您可以创建启用 MCSIO 的非持久性目录。
注意:
使用 Studio 仅配置磁盘缓存(不带内存缓存)的 MCSIO 选项已在所有虚拟机管理程序和云服务环境中移除。
创建启用 MCSIO 的目录
针对 New-ProvScheme PowerShell 命令,以下是已添加的四个参数列表:
-
UseWriteBackCache:为给定预配方案启用缓存(回写缓存) -
WriteBackCacheDiskSize:指定用于缓存的临时磁盘大小(以 GB 为单位) -
WriteBackCacheMemorySize:指定用于缓存的内存量(以 MB 为单位)。这是一个可选参数。
注意:
WriteBackCacheDiskSize的值必须大于零,因为至少需要 1 GB 的缓存磁盘存储空间。缓存磁盘大小不得大于操作系统磁盘大小。WriteBackCacheMemorySize的值必须是非零且小于计算机目录内存大小。
影响 MCSIO 的自定义属性包括:
-
WBCDiskStorageType:定义卷类型,用于 AWS 中的临时磁盘。此参数采用volume-type[:iops][:throughput]格式的字符串参数。以下是卷类型:- gp2:此卷类型不使用 iops 和吞吐量参数
- gp3:此卷类型使用 iops 和吞吐量参数
- io1:此卷类型仅使用 iops 参数
- io2:此卷类型仅使用 iops 参数
默认卷类型为 gp2。
-
PersistWBC:控制在 AWS 实例关闭时是保留还是丢弃缓存磁盘。如果设置为true,则保留缓存磁盘。如果设置为false(默认值),则仅在 AMI 实例开机时创建并保留缓存磁盘。 -
PersistOSDisk:控制在 AWS 实例关闭时是保留还是丢弃操作系统磁盘。如果设置为true,则保留操作系统磁盘。如果设置为false(默认值),则仅在 AMI 实例开机时创建并保留操作系统磁盘。
在 PowerShell 窗口中执行以下步骤以创建启用 MCSIO 的非持久性目录:
- Open the PowerShell window.
- Run
asnp citrix*to load the Citrix-specific PowerShell modules. - 创建一个代理目录和一个身份池。
-
创建该预配方案。例如:
$HostingUnitUid = '0xxxx1d9-bbfc-xxxf-bxxb-exxxxxe008b2' $MasterImageVM = 'XDHyp:\HostingUnits\ctx-test\aws-apollo-non-persistent-multi-mcsio-vda-win2022 (ami-0bf1810488acbxxxb).template' $NetworkMap = @{ 'NetworkPath' = 'XDHyp:\HostingUnits\ctx-test\us-east-1a.availabilityzone\10.0.128.0`/17 (vpc-0fa6e41d72507fxxx).network' } $SecurityGroup = $( 'XDHyp:\HostingUnits\ctx-test\us-east-1a.availabilityzone\private.securitygroup' ) $ServiceOffering = 'XDHyp:\HostingUnits\ctx-test\T3 Medium Instance.serviceoffering' $CustomProperties = 'WBCDiskStorageType,gp3:6000:250;PersistWBC,false' $provScheme = New-ProvScheme -ProvisioningSchemeName $CatalogName -HostingUnitUid $HostingUnitUid ` -IdentityPoolUid $acctPool.IdentityPoolUid -CleanOnBoot ` - MasterImageVM $MasterImageVM ` -NetworkMap $NetworkMap ` -ServiceOffering $ServiceOffering ` -SecurityGroup $SecurityGroup ` -CustomProperties $CustomProperties ` -UseWriteBackCache -WriteBackCacheDiskSize 16 -WriteBackCacheMemorySize 256 <!--NeedCopy--> - 将 VM 添加到目录。
使用 MCSIO 提高启动性能
如果启用 MCSIO 并将 PersistWBC 和 PersistOSDisk 自定义属性设置为 true,则可以提高 VM 的启动性能。通过此设置,VM 可以更快地启动,因为它们无需初始化新的缓存磁盘或从其模板重新创建根磁盘。
使用 PowerShell 创建基于计算机配置文件的计算机目录
您可以使用计算机配置文件从 EC2 实例 (VM) 或启动模板版本捕获硬件属性,并将其应用于预配的计算机。捕获的属性可以包括(例如)EBS 卷属性、实例类型、EBS 优化、CPU 选项、租用类型、休眠功能、安全组以及其他受支持的 AWS 配置。
您可以使用 AWS EC2 实例 (VM) 或 AWS 启动模板版本作为计算机配置文件输入。
注意:
EBS 卷属性仅从计算机配置文件派生。
重要注意事项
创建 MCS 计算机目录时的重要注意事项:
- 如果您在
New-ProvScheme和Set-ProvScheme命令中添加计算机硬件属性参数,则参数中提供的值将覆盖计算机配置文件中的值。 - 如果将
AwsCaptureInstanceProperties设置为true且未设置MachineProfile属性,则仅捕获 IAM 角色和标签。 -
您不能同时设置
AwsCaptureInstanceProperties和MachineProfile。注意:
AwsCaptureInstanceProperties已弃用。 -
如果未提供计算机配置文件,则必须明确提供以下属性的值:
- 安全群组
- ENI 或虚拟网络
- 仅当您启用
AwsCaptureInstanceProperties或指定计算机配置文件时,才能启用AwsOperationalResourcesTagging。
创建 MCS 计算机目录后需要考虑的重要事项是:
- 您无法将基于计算机配置文件的目录更改为非基于计算机配置文件的目录。
在计算机配置文件输入中配置安全组
您可以创建 MCS 计算机目录,其中预配的 VM 按 ENI(网络接口)分配安全组。为此,请使用具有不同安全组映射到不同 ENI 的计算机配置文件输入(EC2 实例或启动模板)。例如,如果计算机配置文件输入具有带 SG 1 的 ENI A 和带 SG 2 的 ENI B,则预配的 VM 也必须具有带 SG 1 的 ENI A 和带 SG 2 的 ENI B。
检索网络接口详细信息
运行以下命令以获取网络接口数据记录列表,包括接口 SubnetId、分配的安全组和分配的网络。
(Get-HypInventoryItem -LiteralPath 'XdHyp:\HostingUnits\cvad-test' – ResourceType vm). AdditionalData
<!--NeedCopy-->
注意:
MCS 目前不允许每个网络接口有多个网络。
使用计算机配置文件创建计算机目录
要使用计算机配置文件创建计算机目录,请执行以下操作:
- 打开 PowerShell 应用程序窗口。
- 运行
asnp citrix*以加载思杰专用的 PowerShell 模块。 -
如果尚未创建身份池,请创建。例如,
New-AcctIdentityPool -IdentityPoolName idPool -NamingScheme ms## -Domain abcdf -NamingSchemeType Numeric <!--NeedCopy--> -
Run New-ProvScheme command. For example:
New-ProvScheme -ProvisioningSchemeName demet-test-1 -HostingUnitUid aa633238-9xxd-4cf6-80e8-232a758a1xx1 -IdentityPoolUid 34d5b088-e312-416f-907d-16573xxxxxc4 -CleanOnBoot -MasterImageVM 'XDHyp:\HostingUnits\cvad-test-scalestress\citrix-demet-ami.0 (ami-0ca813xxxxxx061ef).template' -MachineProfile 'XdHyp:\HostingUnits\cvad-test-scalestress\us-east-1a.availabilityzone\machine-profile-instance i (i-0xxxxxxxx).vm' <!--NeedCopy--> - 完成目录创建过程。
更新计算机配置文件
要更新最初使用计算机配置文件预配的目录上的计算机配置文件,请执行以下操作。您还可以在编辑 MCS 计算机目录时更改计算机配置文件源的租用类型和休眠功能。
-
运行
Set-ProvScheme命令。例如,Set-ProvScheme ` -ProvisioningSchemeUid "<ID" ` -MachineProfile "XDHyp:\HostingUnits\abc\us-east-1a.availabilityzone\citrix-cvad-machineprofile-instance (i-0xxxxxxxx).vm" <!--NeedCopy-->
使用 PowerShell 创建具有启动模板版本的目录
您可以创建以启动模板版本作为计算机配置文件输入的 MCS 计算机目录。您还可以将计算机配置文件目录的输入从 VM 更新为启动模板版本,以及从启动模板版本更新为 VM。
在 AWS EC2 控制台中,您可以提供启动模板的实例配置信息以及版本号。当您在创建或更新计算机目录时将启动模板版本指定为计算机配置文件输入时,该启动模板版本的属性将复制到预配的 VDA VM。
以下属性可以使用计算机配置文件输入提供,也可以显式作为 New-ProvScheme 或 Set-ProvScheme 命令中的参数提供。如果它们在 New-ProvScheme 或 Set-ProvScheme 命令中提供,则它们优先于这些属性的计算机配置文件值。
- 服务产品
- 网络
- 租用类型
注意:
如果在计算机配置文件启动模板中或作为
New-ProvScheme命令中的参数未提供服务产品,则会收到相应的错误。
要使用启动模板版本作为计算机配置文件输入来创建目录:
- Open a PowerShell window.
- 运行
asnp citrix*以加载 思杰 专用的 命令行外壳 模块。 -
获取启动模板的启动模板版本列表。例如:
XDHyp:\HostingUnits\test\test-mp-sard (lt-01xxxxx).launchtemplate> ls | Select FullPath <!--NeedCopy--> -
如果尚未创建身份池,请创建一个。例如:
New-AcctIdentityPool ` -IdentityPoolName "abc11" ` -NamingScheme "abc1-##" ` -NamingSchemeType Numeric ` -Domain "citrix-xxxxxx.local" ` -ZoneUid "xxxxxxxx" ` <!--NeedCopy--> -
创建一个预配方案,其中启动模板版本作为计算机配置文件输入。例如:
New-ProvScheme ` -ProvisioningSchemeName "MPLT1" ` -HostingUnitUid "c7f71f6a-3f45-4xxx-xxxx-xxxxxxxxxx" ` -IdentityPoolUid "bf3a6ba2-1f80-4xxx-xxxx-xxxxxxxxx" ` -MasterImageVM "XDHyp:\HostingUnits\xxxd-ue1a\apollo-non-persistent-vda-win2022 (ami-0axxxxxxxxxxx).template" ` -CleanOnBoot ` -MachineProfile "XDHyp:\HostingUnits\xxxx-ue1a\machineprofiletest (lt-01xxxxx).launchtemplate\lt-01xxxxx (1).launchtemplateversion" <!--NeedCopy--> -
将预配方案注册为代理目录。例如:
New-BrokerCatalog -Name "MPLT1" ` -AllocationType Random ` -Description "Machine profile catalog" ` -ProvisioningSchemeId fe7df345-244e-4xxxx-xxxxxxxxx ` -ProvisioningType Mcs ` -SessionSupport MultiSession ` -PersistUserChanges Discard <!--NeedCopy--> - 完成目录的创建过程。
更新计算机配置文件源
您还可以将计算机配置文件目录的输入从 VM 更新为启动模板版本,以及从启动模板版本更新为 VM。例如:
-
要将计算机配置文件目录的输入从 VM 更新为启动模板版本:
Set-ProvScheme -ProvisioningSchemeName "CloudServiceOfferingTest" ` -MachineProfile "XDHyp:\HostingUnits\xxxx-ue1a\machineprofiletest (lt-0bxxxxxxxxxxxx).launchtemplate\lt-0bxxxxxxxxxxxx (1).launchtemplateversion" <!--NeedCopy--> -
要将计算机配置文件目录的输入从启动模板版本更新为 VM:
Set-ProvScheme -ProvisioningSchemeName "CloudServiceOfferingTest" ` -MachineProfile "XDHyp:\HostingUnits\sard-ue1a\us-east-1a.availabilityzone\apollo-non-persistent-vda-win2022-2 (i-08xxxxxxxxx).vm" <!--NeedCopy-->
加密操作系统、ID 和 WBC 磁盘
您可以使用 AWS KMS 密钥(客户管理密钥和 AWS 管理密钥)创建持久和非持久的 VM 目录,这些密钥可用于加密操作系统磁盘、身份磁盘 (ID) 和回写缓存磁盘 (WBC)。
- AWS 管理密钥每年自动轮换。
- 客户管理密钥的自动轮换是可选的,可以手动管理。
有关 KMS 密钥的更多信息,请参阅以下 AWS 文档:
要加密操作系统、ID 和 WBC 磁盘,请配置以下选项之一:
- 使用已加密的主映像(例如,从包含使用 KMS 密钥加密的 EBS 根卷的实例或快照创建的 AMI)
- 使用包含加密 EBS 根卷的计算机配置文件源(VM 或启动模板)。
限制条件
请考虑以下限制条件:
- MCS 目前仅支持主映像 AMI 上的一个磁盘。
-
您不能直接加密现有的未加密 EBS 卷或快照,也不能修改现有加密卷的 KMS 密钥。为此,您必须:
- 为该卷创建一个新的快照。
- 基于该快照创建一个新的卷
- 对新卷进行加密。
请参阅以下 AWS 文档:
- 加密未加密的资源
- EBS 卷自动或默认加密的限制:自动加密现有和新的 Amazon EBS 卷。
创建具有磁盘加密的目录
您可以使用以下方法创建具有磁盘加密的 MCS 计算机目录:
- 主映像
- 计算机配置文件
使用计算机配置文件输入时的注意事项包括:
- 计算机配置文件输入的 KMS 密钥优先于主映像的 KMS 密钥。
- 如果未提供计算机配置文件输入,则使用主映像 AMI 的 KMS 密钥来加密目录 VM 的磁盘。
- 如果计算机配置文件中存在块设备映射,则主映像模板 (AMI) 和计算机配置文件中存在的块设备必须匹配。例如,如果 AMI 在
/dev/sda1上定义了设备,则计算机配置文件也必须在/dev/sda1上定义设备。 - 如果计算机配置文件源中没有密钥且主映像未加密,则目录 VM 的磁盘不会加密。
- 当主映像加密时,计算机配置文件源 VM 或启动模板必须具有加密的根卷才能被视为有效输入。
对现有目录进行修改
您可以使用 Set-ProvScheme PowerShell 命令修改现有目录,使其具有:
- 包含新 KMS 密钥的卷的计算机配置文件输入。
- 使用新 KMS 密钥加密的主映像模板 AMI。
重要注意事项:
- 添加到目录的新 VM 的卷使用新的 KMS 密钥加密。
- 要在存在现有计算机配置文件时更新加密设置,请使用新的计算机配置文件运行
Set-ProvScheme。 - 您无法将现有目录从加密卷修改为未加密卷。 您无法从加密主 AMI 更新映像到未加密主 AMI。
为 VM 实例启用 NitroTPM 和 UEFI 安全启动
创建目录时,您现在可以选择启用 NitroTPM 和/或 UEFI 安全启动的主映像 (AMI)。因此,目录中预配的 VM 也将启用 NitroTPM 和/或 UEFI 安全启动。此实施可确保 VM 的安全性和可信度。有关 NitroTPM 和 UEFI 安全启动的更多信息,请参阅 Amazon 文档。
局限性
- 目前,您可以在所有 AWS 区域(包括 AWS GovCloud(美国)区域)使用 NitroTPM 和安全启动,但中国除外。
- 您无法在现有目录上启用 NitroTPM 和 UEFI 安全启动。如果您需要启用 NitroTPM 和 UEFI 安全启动的目录,请创建一个新目录。
主要步骤
- 设置您的 AWS 环境。
- 创建到 AWS 的连接。
- 创建启用了 NitroTPM 和/或 UEFI 安全启动的主映像 (AMI)。
- 通过在 Web Studio 目录创建菜单中选择启用了 NitroTPM 和 UEFI 安全启动的主映像,或在使用 PowerShell 命令创建预配方案时,创建计算机目录。
添加到所创建目录的 VM 已启用 NitoTPM 和 UEFI 安全启动。
创建支持 NitroTPM 和 UEFI 安全启动的 AMI
-
您可以从已启用 NitroTPM 和/或 UEFI 安全启动的 VM 创建 AMI。
- 使用 AWS Marketplace 映像创建实例。例如,搜索
TPM-Windows_Server-2022-English-Full-Base on the aws-marketplace。 - 下载单会话或多会话 VDA。
- 从该 VM 创建 AMI。
- 使用 AWS Marketplace 映像创建实例。例如,搜索
-
Use the register-image command:
--boot-mode (string) --tpm-support (string) <!--NeedCopy-->有关详细信息,请参阅 注册映像。
请参阅以下 AWS 文档:
您可以从 Delivery controller™ 主机打开 PowerShell 窗口,以检查以下特定内容:
-
服务产品支持 NitroTPM 或 UEFI 安全启动
(Get-Item -Path “XDHyp:\HostingUnits\aws\T3 Medium Instance.serviceoffering”).AdditionalData.BootMode (Get-Item -Path “XDHyp:\HostingUnits\aws\T3 Medium Instance.serviceoffering”).AdditionalData.NitroTpmSupportVersions <!--NeedCopy--> -
模板支持 NitroTPM 或 UEFI 安全启动
(Get-HypInventoryItem -LiteralPath “XDHyp:\HostingUnits\aws” -ResourceType “template -Id “ID”).AdditionalData.BootMode (Get-HypInventoryItem -LiteralPath “XDHyp:\HostingUnits\aws” -ResourceType “template -Id “ID”).AdditionalData.TpmSupport <!--NeedCopy-->
更新现有目录的服务产品配置
您可以使用 Set-ProvScheme 更改现有目录的服务产品。此更改适用于新添加的 VM。但是,在以下情况下会收到错误:
| AMI 启动模式 | AMI 是否支持 Nitro TPM 硬件模块? | 服务产品支持 NitroTPM 和 UEFI 安全启动吗? |
|---|---|---|
| 统一可扩展固件接口 (UEFI) | 否 | 否 |
| 传统型 BIOS | 是 | 否 |
| 统一可扩展固件接口 | 是 | 否 |
| UEFI 为首选 | 是 | 否 |
复制虚拟机上的标签
您可以将计算机配置文件中指定的 NIC 和磁盘(身份磁盘、回写缓存磁盘和操作系统磁盘)上的标签复制到 MCS 计算机目录中新创建的虚拟机。您可以在任何计算机配置文件源(AWS 虚拟机实例或 AWS 启动模板版本)中指定这些标签。此功能适用于持久性和非持久性计算机目录和虚拟机。
注意:
- 在 AWS EC2 控制台中,您无法在 启动模板版本资源标签 下看到 标记网络接口 值。但是,您可以运行 PowerShell 命令
aws ec2 describe-launch-template-versions --launch-template-id lt-0bb652503d45dcbcd --versions 12来查看标签规范。- 如果计算机配置文件源(虚拟机或启动模板版本)有两个网络接口(eni-1 和 eni-2),并且 eni-1 具有标签 t1,eni-2 具有标签 t2,则虚拟机将获得这两个网络接口的标签。
使用 PowerShell 筛选虚拟机实例
您用作计算机配置文件虚拟机的 AWS 虚拟机实例必须兼容,以便计算机目录能够正确创建和运行。要列出可用作计算机配置文件输入虚拟机的 AWS 虚拟机实例,您可以使用 Get-HypInventoryItem 命令。该命令可以对托管单元上可用的虚拟机清单进行分页和筛选。
分页:
Get-HypInventoryItem supports two modes of pagination:
- 分页模式使用
-MaxRecords和-Skip参数返回项目集:-
-MaxRecords:默认值为 1。这控制要返回的项目数量。 -
-Skip: 默认值为 0。这控制从管理程序中列表的绝对开头(或绝对结尾)跳过多少项。
-
- 滚动模式使用
-MaxRecords、-ForwardDirection和-ContinuationToken参数以允许记录滚动:-
-ForwardDirection: 默认值为 True。这与-MaxRecords一起使用,以返回下一组匹配记录或上一组匹配记录。 -
-ContinuationToken: 返回紧随其后的项目(如果ForwardDirection为 false,则返回之前的项目),但不包括ContinuationToken中给定的项目。
-
分页的示例:
-
返回名称最低的计算机模板的单个记录。
AdditionalData字段包含TotalItemsCount和TotalFilteredItemsCount:Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template <!--NeedCopy--> -
返回名称最低的计算机模板的 10 条记录:
Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -MaxRecords 10 | select Name <!--NeedCopy--> -
返回以最高名称结尾的记录数组:
Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -ForwardDirection $False -MaxRecords 10 | select Name <!--NeedCopy--> -
返回从与给定
ContinuationToken关联的计算机模板开始的记录数组:Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -ContinuationToken "ami-07xxxxxxxxxx" -MaxRecords 10 <!--NeedCopy-->
筛选:
以下附加的可选参数都支持用于筛选。您可以将这些参数与分页选项结合使用。
-
-ContainsName "my_name": 如果给定字符串与 AMI 名称的一部分匹配,则该 AMI 将包含在Get结果中。例如:Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -MaxRecords 100 -ContainName ‘apollo’ | select Name <!--NeedCopy--> -
-Tags '{ "Key0": "Value0", "Key1": "Value1", "Key2": "Value2" }': 如果 AMI 至少具有其中一个标签,它将包含在Get结果中。例如:Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -MaxRecords 100 -Tags '{"opex owner": "Not tagged"}' | select Name <!--NeedCopy-->注意:
支持两种标签值。未标记标签值匹配其标签列表中没有给定标签的项目。所有值标签值匹配具有该标签的项目,无论标签的值如何。否则,仅当项目具有该标签且值等于筛选器中给定的值时,才会发生匹配。
-
-Id "ami-0a2d913927e0352f3": 如果 AMI 与给定 ID 匹配,则会将其包含在Get结果中。例如:Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -Id ami-xxxxxxxxxxxxx <!--NeedCopy-->
根据附加数据参数进行筛选:
AdditionalData 筛选参数根据模板或虚拟机的功能、服务产品或 AdditionalData 中的任何属性列出它们。例如:
(Get-HypInventoryItem -ResourceType "launchtemplateversion" -LiteralPath "XDHyp:\HostingUnits\aws" -MaxRecords 200).AdditionalData
<!--NeedCopy-->
您还可以添加 -Warn 参数以指示不兼容的虚拟机。虚拟机将包含一个名为 Warning 的 AdditionalData 字段。例如:
(Get-HypInventoryItem -ResourceType "launchtemplateversion" -LiteralPath "XDHyp:\HostingUnits\aws" -MaxRecords 200 -Template "ami-015xxxxxxxxx" -Warn $true).AdditionalData
<!--NeedCopy-->
虚拟机的备份 SKU 列表
公有云有时可能会出现特定 EC2 实例类型(“主 SKU”)容量不足的情况。如果主虚拟机配置不可用,则虚拟机无法启动,从而导致时间损失和业务中断。为解决此类情况,请提供一个备份 EC2 实例类型(“备份 SKU”)列表,以便 MCS 在出现容量相关问题时可以回退到这些实例类型。
在创建或更新 MCS 计算机目录时,使用自定义属性 BackupVmConfiguration 提供备份 EC2 实例类型列表(“备份 SKU 列表”)。
如果主 EC2 实例失败,MCS 会尝试按照您指定的顺序回退到备份 EC2 实例类型。如果 MCS 无法回退到任何提供的备份 EC2 实例类型,则会显示错误消息。然后,您可以尝试再次启动主 EC2 实例。如果此操作失败,MCS 会重试备份 EC2 实例类型。
备份 SKU 列表可以包含按需实例。
此功能适用于持久性和非持久性 MCS 计算机目录。
重要注意事项
- 您可以在备份 SKU 列表中提供多个备份 EC2 实例类型。
- 备份 SKU 列表必须是唯一的。
- 备份 EC2 实例不能与主 EC2 实例相同。
- 备份 EC2 实例必须是有效的 AWS 实例类型。
- 请勿指定重复的服务产品。例如:
BackupVmConfiguration,t2.small|t3.small|t2.small无效。 - 列表中指定的服务产品必须与计算机目录配置兼容。例如,如果目录使用 UEFI 且备份列表中指定的服务产品不支持 UEFI,则目录创建或更新将在预检期间失败。
- 您可以使用
Set-ProvSchemePowerShell 命令修改现有目录的备份 SKU 列表。您可以使用Set-ProvVM和Set-ProvVMUpdateTimeWindowPowerShell 命令修改现有 VM。
配置备份 EC2 实例
- 打开一个 PowerShell 命令行窗口。
- Run
asnp citrix\*to load the Citrix-specific PowerShell modules. - 创建 Broker 目录。
- 创建身份池。
-
使用自定义属性
BackupVmConfiguration添加备份 EC2 实例列表并创建预配方案。例如:$serviceOffering = "XDHyp:\HostingUnits\$hostingUnitName\T3 Medium Instance.serviceoffering" $customProperties = "AwsCaptureInstanceProperties,false;AwsOperationalResourcesTagging,false;BackupVmConfiguration,t2.small|t2.large|t3.small|t3.large;" $createdProvScheme = New-ProvScheme -ProvisioningSchemeName $provisioningSchemeName -HostingUnitName $hostingUnitName -IdentityPoolName $provisioningSchemeName -NetworkMapping $networkMapping -SecurityGroup $securityGroupPath -ServiceOffering $serviceOffering -MasterImageVM $masterImageVm -CustomProperties $customProperties <!--NeedCopy--> - 使用预配方案的唯一 ID 更新 BrokerCatalog。
- 创建 VM 并将其添加到目录。
使用 AWS Spot 实例创建目录
与按需实例相比,Spot 实例可节省高达 90% 的成本。如果容量不可用,Amazon EC2 可能会中断 Spot 实例,因此它们仅适用于非关键应用程序和桌面。
有关 Spot 实例的信息,请参阅 AWS 文档 Spot 实例。
此外,您可以将 Spot 实例用作主 EC2 实例类型和备份 EC2 实例。您可以使用 PowerShell 提供备份 EC2 实例类型列表(可以是按需实例和 Spot 实例的“备份 SKU”),以便 MCS 在出现容量相关问题时可以回退到这些实例类型。
重要注意事项
- 您必须仅使用计算机配置文件工作流创建 Spot 实例目录。
- 仅支持持久性 Spot 实例请求类型。不支持一次性 Spot 实例请求。
- 仅支持 停止 和 休眠 中断行为。
- 您可以将现有目录的配置从按需实例更改为 Spot 实例,反之亦然。但是,将 EC2 实例从按需更改为 Spot 实例很复杂。请参阅 AWS 文档 将 EC2 实例从按需定价切换到 Spot 定价。
- 删除已预配的 Spot 实例时,请取消现有的 Spot 实例请求。否则,AWS 将创建一个新的 Spot 实例。
使用 AWS Spot 实例创建目录的步骤
- 使用 Spot 实例创建计算机配置文件源。有关创建 Spot 实例的步骤,请参阅 创建 Spot 实例请求。
- 使用包含
New-ProvSchemePowerShell 命令的计算机配置文件创建计算机目录。您可以使用Set-ProvScheme命令更新目录。
使用 Spot 实例作为备份 SKU
您可以将 Spot 实例用作主 EC2 实例类型和备份 EC2 实例。您可以使用 PowerShell 提供备份 EC2 实例类型列表(可以是按需实例和 Spot 实例的“备份 SKU”),以便 MCS 在出现容量相关问题时可以回退到这些实例。
注意:
您可以在备份 SKU 列表中指定重复的 Spot 实例。示例:
BackupVmConfiguration,t2.small:Spot|t2.small|t3.small是有效的。
所需的权限
如果您使用 Spot 实例作为主 EC2 实例或备份 EC2 实例,则需要以下权限:
ec2:DescribeSpotInstanceRequestsec2:CancelSpotInstanceRequests
配置备份 Spot 实例
- Open a PowerShell window.
- Run
asnp citrix\*to load the Citrix-specific PowerShell modules. - 创建 Broker 目录。
- 创建身份池。
-
使用自定义属性
BackupVmConfiguration添加备份 EC2 实例列表并创建预配方案。例如:$serviceOffering \= "XDHyp:\\HostingUnits\\$hostingUnitName\\T3 Medium Instance.serviceoffering" $customProperties \= "AwsCaptureInstanceProperties,false;AwsOperationalResourcesTagging,false;BackupVmConfiguration,t2.small|t2.large|t3.small:Spot|t3.large:Spot" $createdProvScheme \= New-ProvScheme \-ProvisioningSchemeName $provisioningSchemeName \-HostingUnitName $hostingUnitName \-IdentityPoolName $provisioningSchemeName \-NetworkMapping $networkMapping \-SecurityGroup $securityGroupPath \-ServiceOffering $serviceOffering \-MasterImageVM $masterImageVm \-CustomProperties $customProperties <!--NeedCopy--> - 使用预配方案的唯一 ID 更新 BrokerCatalog。
- 创建虚拟机并将其添加到目录。
后续步骤
- 如果这是创建的第一个目录,系统将引导您创建交付组。
- 要查看整个配置过程,请参阅安装和配置。
- 要管理目录,请参阅管理计算机目录和管理 AWS EC2 目录。
更多信息
- 创建和管理连接与资源(/zh-cn/citrix-virtual-apps-desktops/2511/install-configure/connections)
- 连接到 亚马逊云科技弹性计算云
- 创建计算机目录(/zh-cn/citrix-virtual-apps-desktops/2511/install-configure/machine-catalogs-create)