创建 Amazon WorkSpaces Core 托管实例目录
创建计算机目录 介绍了用于创建计算机目录的向导。以下信息涵盖了 Amazon WorkSpaces Core 托管实例的特定详细信息。
注意:
目前,支持创建持久性虚拟机和非持久性虚拟机(
CleanOnBoot属性为True或False)的目录。
先决条件
在创建 Amazon WorkSpaces Core 托管实例目录之前,您需要完成以下创建:
- 与 Amazon WorkSpaces Core 托管实例的连接。请参阅连接到 Amazon WorkSpaces Core 托管实例
- 准备好的映像。请参阅为 Amazon WorkSpaces Core 托管实例创建准备好的映像。
映像准备期间的网络设置
在映像准备期间,会基于原始虚拟机创建一个准备虚拟机 (VM)。此准备虚拟机与网络断开连接。为了断开准备虚拟机与网络的连接,会创建一个网络安全组以拒绝所有入站和出站流量。此网络安全组会持久存在并被重复使用。该网络安全组的名称为 Citrix.XenDesktop.IsolationGroup-GUID,其中 GUID 是随机生成的。
基于计算机配置文件的计算机目录
您可以使用计算机配置文件捕获 EC2 实例 (VM) 或启动模板版本的硬件属性,并将其应用于预配的计算机。捕获的属性可以包括(例如)租用类型、实例类型、安全组、网络映射、EBS 卷属性、EBS 优化、CPU 选项、休眠功能以及其他受支持的 AWS 配置。
您可以使用 AWS EC2 实例 (VM) 或 AWS 启动模板版本作为计算机配置文件输入。
注意:
- EBS 卷属性仅从计算机配置文件派生。
- 仅支持实例元数据服务 (IMDS) V2,不支持 IMDS V1。有关信息,请参阅实例元数据服务版本 2 的工作原理。
AWS 租用
AWS 提供以下租用选项:共享租用(默认类型)和专用租用。共享租用意味着来自不同客户的多个 Amazon WorkSpaces Core 实例可能驻留在同一物理硬件上。专用租用意味着您的 Amazon WorkSpaces Core 实例仅在您已部署的其他实例所在的硬件上运行。
注意:
仅支持专用实例(目前不支持专用主机)。其他客户不会使用同一块硬件。
租用类型从计算机配置文件中捕获
-
当您使用 MCS 在 AWS 中创建目录以预配计算机时,租用类型将从计算机配置文件中捕获。
- 共享硬件:此设置适用于大多数部署。多个客户共享硬件,即使他们之间不进行交互。使用共享硬件是运行 Amazon EC2 实例最经济的选择。
- 专用实例:此设置更适用于具有特定安全或合规性要求的部署。使用专用实例,您仍然可以享受与 AWS 其他客户分开的主机所带来的好处,但无需支付整个主机的费用。您无需担心主机的容量,但实例的收费费率更高。此外,专用实例对自带许可证 (BYOL) 的支持有限。
灵活计费
Amazon WorkSpaces Core 托管实例支持两种计费模式:
-
计费模式 描述
| 按月计费 | 固定的每月统一费率计费。适用于持久性桌面和可预测的工作负载。 |
| 按小时计费 | 即用即付计费。如果未明确指定计费模式,这是 AWS 的默认配置。 |
这些选项根据您的工作负载的持久性和使用模式,为管理计算成本提供了灵活性。
此功能需要使用 Amazon WorkSpaces 计费服务。默认情况下,MCS 使用此服务预配和管理实例,让您能够从更具竞争力的持久性工作负载统一费率定价中受益。
先决条件和注意事项
-
AWS 账户配置:您的 AWS 账户必须配置为使用 WorkSpaces 计费服务。虽然 AWS 账户默认已切换,但有些客户可能会要求 AWS 仍使用旧版 EC2 计费服务来使用 WorkSpaces Core 托管实例。
注意:
如果您的账户使用的是旧版 EC2 计费服务,则按月计费选项不可用。
- 主机连接:灵活计费仅适用于 Amazon WorkSpaces Core 主机连接。它不支持标准 AWS EC2 主机连接。
- 竞价型实例:WorkSpaces 计费服务不支持竞价型实例。
- 混合计费:AWS 账户必须对核心托管实例使用 WorkSpaces 计费或 EC2 计费。单个账户中不支持两者混合使用。
- 兼容性:只有特定的实例类型、平台类型 (OS) 和租用类型与某些计费模式兼容。MCS 会执行预检,以确保您的选择(服务产品、计算机配置文件和准备好的映像)与所选的计费模式匹配。
请参阅使用特定计费模式创建计算机目录。
创建目录
创建 Amazon WorkSpaces Core 托管实例目录需要准备好的映像和计算机配置文件。您可以使用 AWS VM 实例或 AWS 启动模板版本作为计算机配置文件输入。
您可以使用以下方式创建目录:
- Studio
-
使用 Studio 创建目录
-
从“映像”节点创建计算机目录
- 使用映像节点中的创建目录选项,使用映像版本创建目录。
此外,您可以在“计算机目录”节点中创建目录时选择版本,链接到目录创建工作流程中准备好的映像选项。请参阅从“计算机目录”节点创建计算机目录。
要从“映像”节点创建 MCS 计算机目录,请执行以下操作:
- 选择一个映像版本,然后单击“创建目录”。在“简介”页面上单击“下一步”。
-
- 在“计算机管理”和“映像”页面上,设置会根据所选映像版本预先选择。在“映像”页面上,为选定的准备好的映像输入备注。
- 完成以下页面上的设置。
- 在“摘要”页面上,检查计算机目录的详细信息。输入计算机目录的名称和描述。单击“完成”。
- 转到“计算机目录”节点以查看创建的计算机目录。
从“计算机目录”节点创建计算机目录
要从“计算机目录”节点创建 MCS 计算机目录,请执行以下操作:
- 在左侧导航窗格中单击“计算机目录”。
- 单击“创建计算机目录”。此时将显示“计算机目录设置”页面。
- 在“计算机类型”页面上,为目录选择计算机类型,例如“多会话操作系统”。
-
在“计算机管理”页面上,选择以下设置:
- 选择“已进行电源管理的计算机(例如,虚拟机或刀片式 PC)”。
- 选择“Citrix 预配技术”。然后,选择“Citrix Machine Creation Services™”。
- 在“资源”字段中,选择您在创建主机连接时配置的资源(可用区或本地区域),然后单击“下一步”。
- 在“桌面体验”页面上,选择用户登录时希望拥有的随机桌面或静态桌面。如果选择了静态桌面,请进一步指定是否要将用户在本地磁盘上所做的更改保存(持久或非持久)。
-
在“映像”页面上,单击“选择映像”以为计算机目录选择准备好的映像。选择您创建的准备好的版本。单击映像版本名称。要查看有关所选映像版本的更多详细信息,请单击带下划线的版本号。单击“完成”。
与准备好的映像关联的计算机配置文件将显示,并且其硬件属性(例如,实例类型、租户类型、网络映射、安全组、卷属性)用于在目录中创建计算机。要将计算机配置文件源更改为另一个 VM 或启动模板版本,请单击编辑按钮。
-
在“虚拟机”页面上:
- 输入目录的 VM 数量。
- 将显示默认计算机规范,该规范基于计算机配置文件。要更改它,请选择编辑图标并选择计算机规范。
- 在“NIC”页面上,为 VM 选择 NIC(或 ENI)。
-
在“计算机身份”页面上,为目录中的计算机配置计算机身份类型:
- 要配置“已加入域的计算机(本地 Active Directory 或 Microsoft Entra 混合加入)”,请选择域并为将在此计算机目录中创建的 VM 创建新的 AD 帐户。预配的 VM 将加入所选域。要预配“未加入域的计算机”,请选择未加入域的选项。
- 指定将为 VM 创建的新帐户的帐户命名方案。
- 在“域凭据”页面上,单击“输入凭据”以提供所选域的凭据。出现提示时输入管理员级别的用户名和密码。如果您之前已按照我们的产品文档保存了域凭据,也可以使用服务帐户。
- 单击其余页面,直到“摘要”页面。输入计算机目录的名称,然后选择“完成”以创建计算机目录。
在 AWS 本地区域中创建计算机目录的限制
- 某些本地区域仅支持某些硬件配置(例如,珀斯本地区域不支持 GP3 卷,仅支持 GP2)。
- 由于只有 gp2 在所有本地区域中普遍受支持,并非所有都支持 gp3,因此 ID 磁盘创建默认为使用 gp2 卷类型。
- 您必须选择一个计算机配置文件,其硬件规范在所需的本地区域中受支持。
- 准备好的映像 AMI 快照和 ID 磁盘快照默认放置在区域中,而不是本地区域(由于 AWS 在本地区域中 EBS 快照支持可见性方面的限制)。
-
仅支持完整 EC2 和 EBS 服务的本地区域是受支持的区域。
-
使用 PowerShell 创建目录
使用准备好的映像版本规范和计算机配置文件创建目录
-
使用
New-ProvScheme命令从准备好的映像版本规范创建 MCS 非持久性计算机目录。例如,New-ProvScheme -ProvisioningSchemeName <string> -ImageVersionSpecUid <Guid> -HostingUnitUid <Guid> -IdentityPoolUid <Guid> [-CleanOnBoot $true] [-MachineProfile <string>] [-ProvisioningSchemeType “MCS”] <!--NeedCopy--> -
使用
New-ProvScheme命令从准备好的映像版本规范创建 MCS 持久性计算机目录。例如,New-ProvScheme -ProvisioningSchemeName <string> -ImageVersionSpecUid <Guid> -HostingUnitUid <Guid> -IdentityPoolUid <Guid> [-CleanOnBoot $false] [-MachineProfile <string>] [-ProvisioningSchemeType “MCS”] <!--NeedCopy-->
用于创建目录的 PowerShell 命令完整集的示例:
$Catalog = New-BrokerCatalog -AllocationType "Random" -IsRemotePC $False -MinimumFunctionalLevel "L7_20" -Name "wsccatalog" -PersistUserChanges "Discard" -ProvisioningType "MCS" -Scope @() -SessionSupport "MultiSession"
$IdentityPool = New-AcctIdentityPool -AllowUnicode -Domain "domainname" -IdentityPoolName "wsccatalog" -IdentityType "ActiveDirectory" -NamingScheme "aws##" -NamingSchemeType "Numeric" -Scope @()
$PreparedImageVersionSpec = Get-ProvImageVersionSpec -ImageDefinitionName image1 -ImageVersionNumber 1 -Filter "PreparationType -eq 'Mcs'"
$Task = New-ProvScheme -ProvisioningSchemeName wsccatalog -ImageVersionSpecUid $PreparedImageVersionSpec.ImageVersionSpecUid -HostingUnitName wsc -IdentityPoolName wsccatalog -CleanOnBoot -Scope @() -SecurityGroup @() -MachineProfile 'XdHyp:\HostingUnits\cvad-test-scalestress\us-east-1a.availabilityzone\machine-profile-instance i (i-0xxxxxxxx).vm' -RunAsynchronously
Get-ProvTask -TaskId $Task.TaskId
$ProvScheme = Get-ProvScheme -ProvisioningSchemeName wsccatalog
- Set-BrokerCatalog -Name $Catalog.Name -ProvisioningSchemeId $ProvScheme.ProvisioningSchemeUid
<!--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 创建计算机目录时指定计费模式。
使用 PowerShell
要通过 PowerShell 指定计费模式,请在 New-ProvScheme 命令中使用 CustomProperties 参数。
$custprop = "BillingMode,Monthly"
New-ProvScheme -ProvisioningSchemeName "MyCatalog" `
-ImageVersionSpecUid $ImageVersionSpecUid `
-HostingUnitName "wsc-unit" `
-IdentityPoolName "MyIdentityPool" `
-MachineProfile "XdHyp:\HostingUnits\wsc-unit\machine-profile lt-123.launchtemplate\lt-123 (1).launchtemplateversion" `
-CustomProperties $custprop `
-CleanOnBoot
<!--NeedCopy-->
注意:
如果省略
BillingMode属性,则目录默认为Hourly。
更改现有目录的计费模式
您可以将现有目录从 Monthly 转换为 Hourly,反之亦然。此更改可应用于目录中的新 VM 和现有 VM。
更新的重要注意事项
- 服务窗口:现有 VM 必须经过服务窗口或电源循环才能应用计费更改。
- 验证:MCS 在应用更改之前验证现有实例类型和平台是否与新计费模式兼容。
使用 PowerShell 更新
-
要仅更新添加到目录的新 VM 的计费模式,请更新预配方案的计费模式自定义属性:
$custprop = "BillingMode,Hourly" Set-ProvScheme -ProvisioningSchemeName "MyCatalog" -CustomProperties $custprop <!--NeedCopy--> -
要更新目录中新旧 VM 的计费模式,请创建具有更新的自定义属性的新预配方案版本,并将新版本应用于所有 VM:
$custprop = "BillingMode,Hourly" New-ProvSchemeVersion -ProvisioningSchemeName "MyCatalog" -CustomProperties $custprop New-ProvSchemeHardwareUpdate -ProvisioningSchemeVersion 2 ` -StartsNow -AllVMs ` -MaxDurationInMinutes 100 ` -ProvisioningSchemeName "MyCatalog" <!--NeedCopy--> -
监视计费信息
您可以验证目录和单个虚拟机的计费模式。
运行以下 PowerShell 命令以检查您帐户的计费资格:
-
将
BillingMode作为 CustomProperties 的一部分返回- Get-ProvScheme –ProvisioningSchemeName “"MyCatalog" " | Select ProvisioningSchemeName, CustomProperties <!--NeedCopy-->- 将
BillingMode作为 VMInfo 的一部分返回
Get-ProvVMDetails –ProvisioningSchemeName “"MyCatalog" " | Select-Object -ExpandProperty VMInfo <!--NeedCopy--> - 将
故障排除和验证
MCS 包含预检检查,以防止不兼容的配置。在目录创建或编辑期间,您可能会遇到以下错误:
- **NoInstanceConfigFoundForBillingMode**:如果所选的服务产品(实例类型)、租期和平台类型不支持所选的计费模式,则会发生此错误。
- **Spot Instance Not Supported**:如果您尝试将 Spot 实例与 WorkSpaces 主机连接一起使用,则验证将失败。
- **EC2 billing restriction**:如果您的 AWS 帐户使用旧版 EC2 计费模型,则尝试设置“每月”计费模式会导致验证错误。
使用 PowerShell 创建具有启动模板版本的目录
您可以使用启动模板版本作为计算机配置文件输入来创建 MCS 计算机目录。您还可以将计算机配置文件目录的输入从 VM 更新为启动模板版本,以及从启动模板版本更新为 VM。
在 AWS EC2 控制台中,您可以提供启动模板的实例配置信息以及版本号。当您在创建或更新计算机目录时将启动模板版本指定为计算机配置文件输入时,该版本启动模板的属性将复制到预配的 VDA VM。
以下属性可以使用计算机配置文件输入或作为 New-ProvScheme 或 Set-ProvScheme 命令中的参数显式提供。如果它们在 New-ProvScheme 或 Set-ProvScheme 命令中提供,则它们优先于这些属性的计算机配置文件值。
- 服务产品
- 网络
注意:
> 如果计算机配置文件启动模板中未提供服务产品,或者未作为 `New-ProvScheme` 命令中的参数提供,则会收到相应的错误。
要使用启动模板版本作为计算机配置文件输入创建目录:
-
- 打开 PowerShell 窗口。
- 运行
asnp citrix*以加载 Citrix 特定的 PowerShell 模块。
-
- 获取启动模板的启动模板版本列表。例如:
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" ` -ImageVersionSpecUid ‘24dfb047-e867-527g-896c-25664xxxxx1t’ ` -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”
```
启用 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:定义卷类型,该类型用于 Amazon WorkSpaces Core 托管实例中的临时磁盘。此参数采用volume-type[:iops][:throughput]格式的字符串参数。以下是卷类型:- gp2:此卷类型不使用 iops 和吞吐量参数
- gp3:此卷类型使用 iops 和吞吐量参数
- io1:此卷类型仅使用 iops 参数
- io2:此卷类型仅使用 iops 参数
-
默认卷类型为 gp2。
-
PersistWBC:控制在 Amazon WorkSpaces Core 托管实例关闭时是保留还是丢弃缓存磁盘。如果设置为true,则保留缓存磁盘。如果设置为false(默认值),则仅在 AMI 实例通电时创建并保留缓存磁盘。 -
PersistOSDisk:控制在 Amazon WorkSpaces Core 托管实例关闭时是保留还是丢弃操作系统磁盘。如果设置为true,则保留操作系统磁盘。如果设置为false(默认值),则仅在 AMI 实例通电时创建并保留操作系统磁盘。
在 PowerShell 窗口中执行以下步骤以创建启用 MCSIO 的非持久性目录:
- 打开 PowerShell 窗口。
-
- 运行
asnp citrix*以加载 Citrix 特定的 PowerShell 模块。
- 运行
- 创建代理目录和身份池。
-
创建预配方案。例如:
$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 可以更快地启动,因为它们无需初始化新的缓存磁盘或从其模板重新创建根磁盘。
加密操作系统和 ID 磁盘
您可以创建包含 AWS KMS 密钥(客户管理密钥和 AWS 管理密钥)的 VM 目录,这些密钥可用于加密操作系统磁盘和身份磁盘 (ID)。
- AWS 管理密钥每年自动轮换。
-
客户管理密钥可选择自动轮换,也可手动管理。
-
有关 KMS 密钥的更多信息,请参阅以下 AWS 文档:
-
- AWS KMS 概念
-
要加密操作系统和 ID 磁盘,请配置以下选项之一:
- 使用已加密的准备好的映像(例如,从包含使用 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 密钥的卷的计算机配置文件输入。
- 使用映像管理从具有加密 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)。
- 从主映像创建准备好的映像。请参阅为 Amazon WorkSpaces Core 托管实例创建准备好的映像。
- 在 Citrix Studio 目录创建菜单中或使用 PowerShell 命令创建预配方案时,通过选择启用 NitroTPM 和 UEFI 安全启动的准备好的映像来创建计算机目录。
添加到所创建目录的 VM 将启用 NitroTPM 和 UEFI 安全启动。
创建支持 NitroTPM 和 UEFI 安全启动的 AMI
-
您可以从已启用 NitroTPM 和/或 UEFI 安全启动的 VM 创建 AMI。
- 使用 AWS Marketplace 映像创建实例。例如,在 aws-marketplace 上搜索
TPM-Windows_Server-2022-English-Full-Base。 - 下载单会话或多会话 VDA。
- 从该 VM 创建 AMI。
- 使用 AWS Marketplace 映像创建实例。例如,在 aws-marketplace 上搜索
-
使用 register-image 命令:
--boot-mode (string) --tpm-support (string) <!--NeedCopy-->有关更多信息,请参阅 register-image。
请参阅以下 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 | 否 | 否 |
| Legacy BIOS | 是 | 否 |
| UEFI | 是 | 否 |
| UEFI Preferred | 是 | 否 |
复制 VM 上的标签
您可以将计算机配置文件中指定的网卡、磁盘(身份磁盘、回写缓存磁盘和操作系统磁盘)上的标签复制到 MCS 计算机目录中新创建的 VM。您可以在任何计算机配置文件源(AWS VM 实例或 AWS 启动模板版本)中指定这些标签。此功能适用于持久性和非持久性计算机目录和 VM。
注意:
- 在 AWS EC2 控制台中,您无法在 Launch Template Version Resource Tags 下看到 Tag Network Interfaces 值。但是,您可以运行 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 支持两种分页模式:
- 分页模式使用
-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 筛选器参数根据模板或虚拟机的能力、服务产品或 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-->
后续步骤
- 有关管理 Amazon WorkSpaces Core 目录的信息,请参阅管理 Amazon WorkSpaces Core 托管实例的目录。
更多信息
- AWS 虚拟化环境
- 连接到 Amazon WorkSpaces Core 托管实例
- 映像管理
- 为 Amazon WorkSpaces Core 托管实例创建准备好的映像
- 有关 Amazon WorkSpaces Core GitHub PowerShell 示例,请参阅 citrix-mcs-sdk-samples-Amazon WorkSpaces Core。