PVS 加速器

Last published : Oct 07, 2026
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 服务器意味着硬件和许可证要求的降低,此外还减少了管理开销。释放的容量可用于工作负载。
注意:
PVS-Accelerator 适用于 XenServer Premium Edition 客户。要使用 PVS-Accelerator 功能,请将 Citrix License Server 升级到 11.14 或更高版本。
要将 PVS-Accelerator 与启用 UEFI 的 VM 结合使用,请确保您使用的是 Citrix Provisioning 1906 或更高版本。
<iframe src="https://www.youtube.com/embed/g1K-r-Tgnd0" width="720px" height="480px" frameborder="0" title="YouTube video player" allowfullscreen=""> </iframe>

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 使用 OVS 的功能,因此在将 Linux Bridge(已弃用)用作网络后端的主机上不可用。
  • PVS-Accelerator 作用于缓存 VM 的第一个虚拟网络接口 (VIF)。因此,请将第一个 VIF 连接到 Citrix Provisioning 存储网络以使缓存正常工作。
  • PVS-Accelerator 目前无法用于强制 IP 绑定到特定 MAC 地址的网络端口。此交换机功能可能称为“IP 源防护”或类似名称。在此类环境中,启用 PVS-Accelerator 后,PVS 目标将无法启动,并显示错误“登录请求超时!”。

启用 PVS-Accelerator

客户必须在 XenServer 和 Citrix Provisioning 中完成以下配置设置,才能启用 PVS-Accelerator 功能:
  1. 使用 XenCenter 或 xe CLI 在 XenServer 中配置 PVS-Accelerator。此配置包括添加 Citrix Provisioning 站点并指定 Citrix Provisioning 缓存存储的位置。
    • 有关 CLI 说明,请参阅下一节中的 使用 CLI 在 XenServer 中配置 PVS-Accelerator。
    • 有关使用 XenCenter 配置 PVS-Accelerator 的信息,请参阅 XenCenter 文档中的 PVS-Accelerator。
  2. 在 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

  1. 运行以下命令以在 XenServer 上创建 Citrix Provisioning 站点配置:
    PVS_SITE_UUID=$(xe pvs-site-introduce name-label=My PVS Site)
  2. 对于池中的每个主机,指定要使用的缓存。您可以选择将缓存存储在存储库 (SR) 或控制域内存中。

在存储库上配置缓存存储

选择用于缓存存储的存储库 (SR) 时,请考虑以下特性:
优点:
  • 最近读取的数据会尽力缓存在内存中。访问数据可以像使用控制域内存一样快。
  • 当缓存位于 SR 上时,其容量可以大得多。SR 空间的成本通常只是内存空间成本的一小部分。在 SR 上进行缓存可以减轻 Citrix Provisioning 服务器的负载。
  • 您无需修改控制域内存设置。缓存会自动使用控制域中可用的内存,并且永远不会导致控制域内存不足。
  • 缓存 VDI 可以存储在共享存储上。但是,这种存储选择很少有意义。仅当共享存储明显快于 Citrix Provisioning 服务器时,此方法才有意义。
  • 您可以使用基于文件或基于块的 SR 进行缓存存储。
缺点:
  • 如果 SR 速度较慢,并且请求的数据不在内存层中,缓存过程可能会比远程 Citrix Provisioning 服务器慢。
  • 存储在共享存储上的缓存 VDI 无法在主机之间共享。缓存 VDI 仅特定于一台主机。
执行以下步骤以在存储库上配置缓存存储:
  1. 运行以下命令以查找用于缓存的 SR 的 UUID:
    xe sr-list name-label=Local storage host=host-name-label --minimal)
  2. 创建缓存存储。
    xe pvs-cache-storage-create host=host-name-label pvs-site-uuid=PVS_SITE_UUID \
             sr-uuid=SR_UUID size=10GiB
    注意:
    选择存储库 (SR) 时,此功能将使用 SR 上指定的最大缓存大小。它还会隐式地将可用的控制域内存用作尽力而为的缓存层。

在控制域内存中配置缓存存储

选择用于缓存存储的控制域内存时,请考虑以下特性:
优点:
使用内存意味着在访问或填充缓存时,读/写性能始终快速。
缺点:
  • 必须适当调整硬件大小,因为用于缓存存储的 RAM 不可用于虚拟机。
  • 必须在配置缓存存储之前扩展控制域内存。
    注意:
    如果选择将缓存存储在控制域内存中,则此功能将使用控制域内存中指定的最大缓存大小。此选项仅在为控制域分配额外内存后才可用。有关增加控制域内存的信息,请参阅更改分配给控制域的内存量。
    增加主机控制域的内存分配量后,可以将额外的内存显式分配给 PVS-Accelerator。
    执行以下步骤以在控制域内存中配置缓存存储:
    1. 运行以下命令以查找要配置缓存的主机的 UUID:
      xe host-list name-label=host-name-label --minimal
    2. 创建特殊类型 tmpfs 的 SR:
      xe sr-create type=tmpfs name-label=MemorySR host-uuid=HOST_UUID device-config:uri=""
      注意:
      对于特殊类型 tmpfs 的 SR,所需参数 name-label 的值将被忽略,并改用固定名称。
    3. 运行以下命令以创建缓存存储:
      xe pvs-cache-storage-create host-uuid=HOST_UUID
      pvs-site-uuid=PVS_SITE_UUID sr-uuid=SR_UUID size=1GiB
      其中 SR_UUID 是在步骤 b 中创建的 SR 的 UUID

完成 Citrix Provisioning 中的缓存配置

在 XenServer 中配置 PVS-Accelerator 后,执行以下步骤以完成 Citrix Provisioning 站点的缓存配置。
在 Citrix Provisioning 管理员控制台中,使用 Citrix Virtual Desktops™ 设置向导或流式 VM 向导(取决于您的部署类型)来访问代理功能。尽管这两个向导相似并共享许多相同的屏幕,但存在以下差异:
  • Citrix Virtual Desktops 设置向导用于配置在 XenServer 虚拟机管理程序上运行并使用 Citrix Virtual Desktops 控制的 VM。
  • 流式 VM 向导用于在主机上创建 VM。它不涉及 Citrix Virtual Desktops。
启动 Citrix Provisioning 管理员控制台:
  1. 导航到 Citrix Provisioning 站点。
  2. 选择 Citrix Provisioning 站点,右键单击以显示上下文菜单。
  3. 根据部署选择相应的向导。选择选项 为所有虚拟机启用 PVS-Accelerator 以启用 PVS-Accelerator 功能。
  4. 如果您是首次启用虚拟磁盘缓存,则 XenServer 屏幕会出现在流式虚拟机设置向导上。它显示了在 XenServer 上配置的所有尚未与 Citrix Provisioning 站点关联的 Citrix Provisioning 站点列表。使用该列表,选择一个 Citrix Provisioning 站点以应用 PVS-Accelerator。当您使用相同的 XenServer 主机为同一个 Citrix Provisioning 站点运行向导时,此屏幕不会显示。
  5. 单击 下一步 以完成缓存配置。
  6. 单击 完成 以预配 Citrix Virtual Desktops 或流式虚拟机,并将选定的 Citrix Provisioning 站点与 XenServer 中的 PVS Accelerator 关联。此步骤完成后,XenCenter 中 PVS-Accelerator 配置 窗口中的 查看 PVS 服务器 按钮将启用。单击 查看 PVS 服务器 按钮将显示与 Citrix Provisioning 站点关联的所有 PVS 服务器的 IP 地址。

缓存操作

PVS-Accelerator 功能缓存:
  • 虚拟磁盘的读取,但不缓存写入或从写入缓存的读取
  • 基于映像版本。当多个虚拟机使用相同的映像版本时,它们会共享缓存块
  • 具有任何非持久性写入缓存类型的设备
  • 访问模式为 Standard Image 的虚拟磁盘。它不适用于访问模式为 Private Image 的虚拟磁盘
  • 标记为 生产或测试类型 的设备。标记为维护类型的设备不会被缓存

PVS-Accelerator CLI 操作

以下部分描述了客户在使用 CLI 时可以执行的 PVS-Accelerator 操作。客户也可以使用 XenCenter 执行这些操作。有关更多信息,请参阅 XenCenter 文档中的 PVS-Accelerator。

查看 Citrix Provisioning 配置的 Citrix Provisioning 服务器地址和端口

PVS-Accelerator 通过优化 VM 与 Citrix Provisioning 服务器之间的网络流量来工作。在 Citrix Provisioning 服务器上完成配置后,Citrix Provisioning 服务器会使用其 IP 和端口填充 XenServer 上的 pvs-server 对象。PVS-Accelerator 随后使用此信息专门优化 VM 及其 Citrix Provisioning 服务器之间的流量。可以使用以下命令列出已配置的 Citrix Provisioning 服务器:
xe pvs-server-list pvs-site-uuid=PVS_SITE_UUID params=all

配置 VM 以进行缓存

可以使用以下任一工具为 VM 启用 PVS-Accelerator:
  • Citrix 供应 CLI
  • Citrix Virtual Desktops 安装向导
  • 流式 VM 安装向导
  • XenCenter
  • xe CLI
xe CLI 通过使用 VM 的 VIF 配置 PVS-Accelerator。它会创建一个 Citrix Provisioning 代理,将 VM 的 VIF 与 Citrix Provisioning 站点链接起来。
配置 VM:
  1. 查找 VM 的第一个 VIF 以在其上启用缓存:
    VIF_UUID=$(xe vif-list vm-name-label=pvsdevice_1 device=0 --minimal)
  2. 创建 Citrix Provisioning 代理
    xe pvs-proxy-create pvs-site-uuid=PVS_SITE_UUID vif-uuid=$VIF_UUID

禁用 VM 的缓存

可以通过销毁将 VM 的 VIF 与 pvs-site 链接的 Citrix Provisioning 代理来禁用 VM 的 PVS-Accelerator。
  1. 查找 VM 的第一个 VIF:
    VIF_UUID=$(xe vif-list vm-name-label=pvsdevice_1 device=0 --minimal)
  2. 查找虚拟机的 Citrix Provisioning 代理:
    PVS_PROXY_UUID=$(xe pvs-proxy-list vif-uuid=$VIF_UUID --minimal)
  3. 销毁 Citrix Provisioning 代理:
    xe pvs-proxy-destroy uuid=$PVS_PROXY_UUID

移除针对主机或站点的 PVS-Accelerator 存储

要移除针对主机或站点的 PVS-Accelerator 存储:
  1. 查找您要销毁其存储的主机:
    HOST_UUID=$(xe host-list name-label=HOST_NAME --minimal)
  2. 查找对象的 UUID:
    PVS_CACHE_STORAGE_UUID=$(xe pvs-cache-storage-list host-uuid=$HOST_UUID --minimal)
  3. 销毁对象:
    xe pvs-cache-storage-destroy uuid=$PVS_CACHE_STORAGE_UUID

忘记针对站点的 PVS-Accelerator 配置

要忘记针对站点的 PVS-Accelerator 配置:
  1. 查找 Citrix Provisioning 站点:
    PVS_SITE_UUID=$(xe pvs-site-list name-label=My PVS Site)
  2. 运行以下命令以忘记 Citrix Provisioning 站点:
    xe pvs-site-forget uuid=$PVS_SITE_UUID