PVS 加速器
XenServer PVS-Accelerator 功能为使用 XenServer 和 Citrix Provisioning 的客户提供了扩展功能。Citrix Provisioning 是 Citrix Virtual Apps and Desktops™ 或 Citrix DaaS 映像管理和托管的常用选择。PVS-Accelerator 显著改进了 XenServer 和 Citrix Provisioning 之间本已出色的组合。此新功能提供的一些优势包括:
-
数据本地化: 将内存、SSD 和 NVM 设备的性能和本地化用于读取请求,同时大幅降低网络利用率。
-
改善最终用户体验: 数据本地化可减少缓存目标设备 (VM) 的读取 I/O 延迟,进一步加速最终用户应用程序。
-
加速 VM 启动和启动风暴: 降低读取 I/O 延迟并提高效率可以加速 VM 启动时间,并在许多设备在短时间内启动时实现更快的性能。
-
通过添加更多管理程序主机简化横向扩展: 可能需要更少的 Citrix Provisioning™ 服务器,因为存储负载会有效地分散到所有 XenServer 主机上。峰值负载通过源主机内的缓存进行处理。
-
降低 TCO 并简化基础架构要求: 更少的 Citrix Provisioning 服务器意味着硬件和许可证要求的降低,此外还减少了管理开销。释放的容量可用于工作负载。
注意:
XenServer Premium Edition 客户可以使用 PVS-Accelerator。要使用 PVS-Accelerator 功能,请将 Citrix License Server 升级到版本 11.14 或更高版本。
要将 PVS-Accelerator 与启用 UEFI 的 VM 结合使用,请确保您使用的是 Citrix Provisioning 1906 或更高版本。
PVS-Accelerator 的工作原理
PVS-Accelerator 采用驻留在 XenServer 控制域 (dom0) 中的代理机制。启用此功能后,Citrix Provisioning 目标设备 (VM) 读取请求会直接缓存在 XenServer 主机上。这些请求缓存在物理内存或存储库中。当该 XenServer 主机上的后续 VM 发出相同的读取请求时,虚拟磁盘会直接从缓存流式传输,而不是从 Citrix Provisioning 服务器流式传输。无需从 Citrix Provisioning 服务器流式传输,可显著降低网络利用率和服务器上的处理。这种方法可显著提高 VM 性能。
注意事项
使用 PVS-Accelerator 功能时,请考虑以下事项:
-
Citrix Provisioning 目标设备知道其代理状态。安装此功能后,无需进行额外配置。
-
PVS-Accelerator 支持基于 IPv4 和 IPv6 的协议。(IPv6 需要 Citrix Provisioning 2402 CU1、Citrix Provisioning 2407 或更高版本。)
-
在部署了多个 Citrix Provisioning 服务器且使用相同 VHD 但文件系统时间戳不同的环境中,数据可能会被多次缓存。由于此限制,我们建议对虚拟磁盘使用 VHDX 格式,而不是 VHD。
-
请勿为 PVS 服务器通信使用大端口范围。在 PVS 服务器上设置超过 20 个端口的范围很少有必要。大端口范围会降低数据包处理速度,并在使用 PVS-Accelerator 时增加 VM 的启动时间。
- 启用 PVS-Accelerator 后启动 VM,该 VM 的缓存状态将显示在 XenCenter® 中:
- 在池或主机的 PVS 选项卡中
- 在 VM 的 General 选项卡中
-
在 XenServer 主机上,您不能运行超过 200 个启用 PVS-Accelerator 的 VM。
-
客户可以使用 XenCenter 中主机 Performance 选项卡上的 RRD 指标来确认 PVS-Accelerator 的正确运行。有关详细信息,请参阅 监视和管理您的部署。
-
PVS-Accelerator 需要 Citrix Provisioning 7.13 或更高版本。
-
要将 PVS-Accelerator 与启用 UEFI 的 VM 结合使用,请确保您使用的是 Citrix Provisioning 1906 或更高版本。
-
PVS-Accelerator 适用于 XenServer Premium Edition 客户。
-
PVS-Accelerator 需要 License Server 11.14 或更高版本。
-
PVS-Accelerator 在缓存 VM 的第一个虚拟网络接口 (VIF) 上运行。因此,请将第一个 VIF 连接到 Citrix Provisioning 存储网络以使缓存正常工作。
- PVS-Accelerator 目前不能用于强制 IP 绑定到特定 MAC 地址的网络端口。此交换机功能可能称为“IP 源防护”或类似名称。在此类环境中,启用 PVS-Accelerator 后,PVS 目标将无法启动,并显示错误“Login request time out!”。
启用 PVS-Accelerator
客户必须在 XenServer 和 Citrix Provisioning 中完成以下配置设置,以启用 PVS-Accelerator 功能:
- 使用 XenCenter 或 xe CLI 在 XenServer 中配置 PVS-Accelerator。此配置包括添加 Citrix Provisioning 站点并指定 Citrix Provisioning 缓存存储的位置。
- 有关 CLI 说明,请参阅以下部分中的 使用 CLI 在 XenServer 中配置 PVS-Accelerator。
- 有关使用 XenCenter 配置 PVS-Accelerator 的信息,请参阅 XenCenter 文档中的 PVS-Accelerator。
- 在 XenServer 中配置 PVS-Accelerator 后,使用 PVS UI 完成 PVS 站点的缓存配置。有关详细说明,请参阅 完成 Citrix Provisioning 中的缓存配置。
配置端口
Citrix Provisioning Services 使用以下端口:
- 6901, 6902, 6905:用于预配服务器出站通信(发往目标设备的包)
- 6910:用于目标设备登录 Citrix Provisioning Services
- 可配置的目标设备端口。默认端口为 6901。
- 可配置的服务器端口范围。默认范围是 6910-6930。
有关 Citrix Provisioning Services 使用的端口的信息,请参阅 XenServer 使用的通信端口。
XenServer 中配置的端口范围必须包含所有正在使用的端口。例如,对于默认配置,请使用 6901-6930。
注意:
请勿为 PVS 服务器通信使用大端口范围。在 PVS 服务器上设置超过 20 个端口的范围很少有必要。使用 PVS-Accelerator 时,大端口范围会减慢数据包处理速度并增加虚拟机的启动时间。
使用 CLI 在 XenServer 中配置 PVS-Accelerator
-
运行以下命令以在 XenServer 上创建 Citrix Provisioning 站点配置:
PVS_SITE_UUID=$(xe pvs-site-introduce name-label=My PVS Site) -
对于池中的每个主机,指定要使用的缓存。您可以选择将缓存存储在存储库 (SR) 上或控制域内存中。
在存储库上配置缓存存储
选择存储库 (SR) 作为缓存存储时,请考虑以下特性:
优点:
- 最近读取的数据会尽力缓存在内存中。访问数据可以像使用控制域内存一样快。
- 当缓存位于 SR 上时,其大小可以大得多。SR 空间的成本通常是内存空间成本的一小部分。在 SR 上进行缓存可以减轻 Citrix Provisioning 服务器的更多负载。
- 您无需修改控制域内存设置。缓存会自动使用控制域中可用的内存,并且永远不会导致控制域内存不足。
- 缓存 VDI 可以存储在共享存储上。但是,这种存储选择很少有意义。仅当共享存储明显快于 Citrix Provisioning 服务器时,此方法才有意义。
- 您可以使用基于文件或基于块的 SR 作为缓存存储。
缺点:
- 如果 SR 速度慢,并且请求的数据不在内存层中,则缓存过程可能比远程 Citrix Provisioning 服务器慢。
- 存储在共享存储上的缓存 VDI 无法在主机之间共享。缓存 VDI 特定于一个主机。
执行以下步骤以在存储库上配置缓存存储:
-
运行以下命令以查找用于缓存的 SR 的 UUID:
xe sr-list name-label=Local storage host=host-name-label --minimal) <!--NeedCopy--> -
创建缓存存储。
xe pvs-cache-storage-create host=host-name-label pvs-site-uuid=PVS_SITE_UUID \ sr-uuid=SR_UUID size=10GiB <!--NeedCopy-->注意:
选择存储库 (SR) 时,此功能将使用 SR 上指定的最大缓存大小。它还会隐式地将可用的控制域内存用作尽力而为的缓存层。
在控制域内存中配置缓存存储
选择控制域内存作为缓存存储时,请考虑以下特性:
优点:
使用内存意味着在访问或填充缓存时,读/写性能始终快速。
缺点:
-
硬件必须适当调整大小,因为用于缓存存储的 RAM 不可用于虚拟机。
-
必须在配置缓存存储之前扩展控制域内存。
注意:
如果您选择将缓存存储在控制域内存中,则此功能将使用控制域内存中指定的最大缓存大小。此选项仅在为控制域分配了额外内存后才可用。有关增加控制域内存的信息,请参阅更改分配给控制域的内存量。
增加分配给主机控制域的内存量后,可以将额外内存显式分配给 PVS-Accelerator。
执行以下步骤以在控制域内存中配置缓存存储:
-
运行以下命令以查找要配置缓存的主机的 UUID:
xe host-list name-label=host-name-label --minimal <!--NeedCopy--> -
创建特殊类型
tmpfs的 SR:xe sr-create type=tmpfs name-label=MemorySR host-uuid=HOST_UUID device-config:uri="" <!--NeedCopy-->注意:
对于特殊类型
tmpfs的 SR,所需参数name-label的值将被忽略,并改用固定名称。 -
运行以下命令以创建缓存存储:
xe pvs-cache-storage-create host-uuid=HOST_UUID pvs-site-uuid=PVS_SITE_UUID sr-uuid=SR_UUID size=1GiB <!--NeedCopy-->其中
SR_UUID是在步骤 b 中创建的 SR 的 UUID
-
完成 Citrix Provisioning 中的缓存配置
在 XenServer 中配置 PVS-Accelerator 后,执行以下步骤以完成 Citrix Provisioning 站点的缓存配置。
在 Citrix Provisioning 管理员控制台中,使用 Citrix Virtual Desktops™ 设置向导或流式 VM 向导(取决于您的部署类型)来访问代理功能。尽管这两个向导相似且共享许多相同的屏幕,但存在以下差异:
-
Citrix Virtual Desktops 设置向导用于配置在由 Citrix Virtual Desktops 控制的 XenServer 虚拟机管理程序上运行的 VM。
-
流式 VM 向导用于在主机上创建 VM。它不涉及 Citrix Virtual Desktops。
启动 Citrix Provisioning 管理员控制台:
-
导航到 Citrix Provisioning 站点。
-
选择 Citrix Provisioning 站点,右键单击以显示上下文菜单。
-
根据部署选择合适的向导。选择“为所有虚拟机启用 PVS-Accelerator”选项以启用 PVS-Accelerator 功能。
-
如果您是首次启用虚拟磁盘缓存,则“流式虚拟机设置”向导上会显示“XenServer”屏幕。它会显示 XenServer 上配置的所有尚未与 Citrix Provisioning 站点关联的 Citrix Provisioning 站点列表。使用该列表,选择一个 Citrix Provisioning 站点以应用 PVS-Accelerator。当您使用相同的 XenServer 主机为同一个 Citrix Provisioning 站点运行向导时,此屏幕不会显示。
-
单击“下一步”以完成缓存配置。
-
单击“完成”以预配 Citrix Virtual Desktops 或流式虚拟机,并将选定的 Citrix Provisioning 站点与 XenServer 中的 PVS Accelerator 关联。完成此步骤后,XenCenter 中“PVS-Accelerator 配置”窗口中的“查看 PVS 服务器”按钮将启用。单击“查看 PVS 服务器”按钮将显示与 Citrix Provisioning 站点关联的所有 PVS 服务器的 IP 地址。
缓存操作
PVS-Accelerator 功能缓存:
-
虚拟磁盘的读取,但不缓存写入或从写入缓存的读取
-
基于映像版本。当多个虚拟机使用相同的映像版本时,它们会共享缓存块
-
具有任何非持久性写入缓存类型的设备
-
访问模式为“标准映像”的虚拟磁盘。它不适用于访问模式为“私有映像”的虚拟磁盘
-
标记为 生产或测试类型 的设备。标记为维护类型的设备不会被缓存
PVS-Accelerator CLI 操作
以下部分介绍了客户在使用 CLI 时可以执行的 PVS-Accelerator 操作。客户也可以使用 XenCenter 执行这些操作。有关详细信息,请参阅 XenCenter 文档中的 PVS-Accelerator。
查看 Citrix Provisioning 配置的 Citrix Provisioning 服务器地址和端口
PVS-Accelerator 通过优化虚拟机与 Citrix Provisioning 服务器之间的网络流量来工作。在 Citrix Provisioning 服务器上完成配置后,Citrix Provisioning 服务器会使用其 IP 和端口填充 XenServer 上的 pvs-server 对象。PVS-Accelerator 随后使用此信息专门优化虚拟机与其 Citrix Provisioning 服务器之间的流量。可以使用以下命令列出已配置的 Citrix Provisioning 服务器:
xe pvs-server-list pvs-site-uuid=PVS_SITE_UUID params=all
<!--NeedCopy-->
配置虚拟机以进行缓存
可以使用以下任一工具为虚拟机启用 PVS-Accelerator:
- Citrix 供应 CLI
- Citrix Virtual Desktops 安装向导
- 流式虚拟机安装向导
- XenCenter
- xe CLI
xe CLI 通过使用虚拟机的 VIF 配置 PVS-Accelerator。它会创建一个 Citrix Provisioning 代理,将虚拟机的 VIF 与 Citrix Provisioning 站点链接起来。
要配置虚拟机:
-
查找虚拟机的第一个 VIF 以在其上启用缓存:
VIF_UUID=$(xe vif-list vm-name-label=pvsdevice_1 device=0 --minimal) <!--NeedCopy--> -
创建 Citrix Provisioning 代理
xe pvs-proxy-create pvs-site-uuid=PVS_SITE_UUID vif-uuid=$VIF_UUID <!--NeedCopy-->
禁用虚拟机的缓存
可以通过销毁将虚拟机的 VIF 与 pvs-site 链接的 Citrix Provisioning 代理来禁用虚拟机的 PVS-Accelerator。
-
查找虚拟机的第一个 VIF:
VIF_UUID=$(xe vif-list vm-name-label=pvsdevice_1 device=0 --minimal) <!--NeedCopy--> -
查找虚拟机的 Citrix Provisioning 代理:
PVS_PROXY_UUID=$(xe pvs-proxy-list vif-uuid=$VIF_UUID --minimal) <!--NeedCopy--> -
销毁 Citrix Provisioning 代理:
xe pvs-proxy-destroy uuid=$PVS_PROXY_UUID <!--NeedCopy-->
移除主机或站点的 PVS-Accelerator 存储
要移除主机或站点的 PVS-Accelerator 存储:
-
查找您希望销毁其存储的主机:
HOST_UUID=$(xe host-list name-label=HOST_NAME --minimal) <!--NeedCopy--> -
查找对象的 UUID:
PVS_CACHE_STORAGE_UUID=$(xe pvs-cache-storage-list host-uuid=$HOST_UUID --minimal) <!--NeedCopy--> -
销毁对象:
xe pvs-cache-storage-destroy uuid=$PVS_CACHE_STORAGE_UUID <!--NeedCopy-->
忘记站点的 PVS-Accelerator 配置
要忘记站点的 PVS-Accelerator 配置:
-
查找 Citrix Provisioning 站点:
PVS_SITE_UUID=$(xe pvs-site-list name-label=My PVS Site) <!--NeedCopy--> -
运行以下命令以忘记 Citrix Provisioning 站点:
xe pvs-site-forget uuid=$PVS_SITE_UUID <!--NeedCopy-->