Citrix Hypervisor

PVS 加速器

Citrix Hypervisor PVS 加速器功能为将 Citrix Hypervisor 与 Citrix Provisioning 结合使用的客户提供了扩展功能。要对 Citrix Virtual Apps and Desktops 或 Citrix DaaS 进行映像管理和托管,通常会选择 Citrix Provisioning。PVS 加速器显著提高了已然出色至极的 Citrix Hypervisor 和 Citrix Provisioning 组合的性能。这一新增功能提供的部分优势包括:

  • 数据局部性: 利用内存、SSD 和 NVM 设备的性能和局部性来实现读取请求,同时显著降低网络使用率。

  • 改进了最终用户体验: 数据局部性缩短了缓存的目标设备 (VM) 的读 I/O 延迟,进一步加快了最终用户应用程序的运行速度。

  • 加快了 VM 启动和启动高峰时期的速度: 缩短了读 I/O 延迟并且提高了效率,能够加快 VM 的启动时间,并且可以在大量设备在短时间内启动时提升性能。

  • 通过添加更多虚拟机管理程序主机简化了横向扩展过程: 所需的 Citrix Provisioning 服务器数量可能会减少,因为存储负载有效地分散在所有 Citrix Hypervisor 服务器上。峰值负载使用原始主机中的缓存进行处理。

  • 降低了 TCO 并且简化了基础结构要求: Citrix Provisioning 服务器数量减少意味着硬件和许可证要求降低,并且管理开销也降低。所释放的容量可用于工作负载。

备注:

PVS 加速器适用于 Citrix Hypervisor Premium Edition 客户或者可以通过 Citrix Virtual Apps and Desktops 授权或 Citrix DaaS 授权访问 Citrix Hypervisor 的客户。要使用 PVS 加速器功能,请将许可证服务器升级到版本 11.14。

要将 PVS 加速器用于启用了 UEFI 的 VM,请确保您使用的是 Citrix Provisioning 1906 或更高版本。

升级 PVS 加速器补充包后,XenCenter 可能会列出 PVS 加速器的多个版本。但是,只有最新版本处于活动状态。不需要卸载 PVS 加速器,因为此功能的旧版本始终被最新版本取代。

PVS 加速器的工作原理

PVS 加速器利用驻留在 Citrix Hypervisor 的控制域 (dom0) 中的代理机制。启用此功能后,Citrix Provisioning 目标设备 (VM) 读取请求将直接在 Citrix Hypervisor 服务器计算机上缓存。这些请求在物理内存或存储库中缓存。该 Citrix Hypervisor 服务器上的后续 VM 发出相同的读取请求时,虚拟磁盘将直接通过流技术从缓存推送,而非从 Citrix Provisioning 服务器推送。不再需要通过流技术从 Citrix Provisioning 服务器推送大大降低了网络利用率以及服务器上的处理量。此方法大大改进了 VM 的性能。

注意事项

使用 PVS 加速器功能时,请注意以下事项:

  • XenCenter 和 Citrix Provisioning 中的 PVS 加速器用户界面仅在安装了 PVS 加速器补充包时显示。

  • Citrix Provisioning 目标设备能够识别其代理状态。安装该功能后,无需执行其他配置。

  • 在部署了多个使用相同 VHD 的 Citrix Provisioning 服务器但具有不同文件系统时间戳的环境中,数据可能会多次缓存。由于存在此限制,因此,我们建议您为虚拟磁盘使用 VHDX 格式,而非 VHD 格式。

  • 请勿将大端口范围用于 PVS 服务器通信。很少需要在 PVS 服务器上设置超过 20 个端口的范围。使用 PVS 加速器时,端口范围较大可能会减慢数据包处理速度并延长 Citrix Hypervisor 控制域的启动时间。

  • 启动启用了 PVS 加速器的 VM 后,VM 的缓存状态将在 XenCenter 中显示:
    • 在池或主机的 PVS 选项卡中
    • 在 VM 的常规选项卡中
  • 在 Citrix Hypervisor 服务器上,启用了 PVS 加速器的 VM 不能超过 200 个。

  • 客户可以在 XenCenter 中使用主机的性能选项卡中的 RRD 衡量指标来确认 PVS 加速器的正确操作。有关详细信息,请参阅监视和管理您的部署

  • PVS 加速器要求 Citrix Provisioning 7.13 或更高版本。

  • 要将 PVS 加速器用于启用了 UEFI 的 VM,请确保您使用的是 Citrix Provisioning 1906 或更高版本。

  • PVS 加速器适用于 Citrix Hypervisor Premium Edition 客户或者可以通过 Citrix Virtual Desktops 和 Citrix Virtual Apps and Desktops 授权或 Citrix DaaS 授权访问 Citrix Hypervisor 的客户。

  • PVS 加速器要求使用许可证服务器 11.14 或更高版本。

  • PVS 加速器利用 OVS 的功能,因此在使用 Linux 桥接作为网络后端的主机上不可用。

  • PVS 加速器在缓存的 VM 的第一个虚拟网络接口 (VIF) 上运行。因此,请将第一个 VIF 连接到 Citrix Provisioning 存储网络以使缓存功能运行。

  • PVS 加速器当前不能在强制将 IP 绑定到某些 MAC 地址的网络端口上使用。此开关功能可能称为“IP 源保护”或类似的名称。在此类环境中, 启用 PVS 加速器后,PVS 目标将无法启动,并出现错误“登录请求超时!”。

启用 PVS 加速器

客户必须在 Citrix Hypervisor 和 Citrix Provisioning 中完成以下配置设置,以启用 PVS 加速器功能:

  1. 在池中的每个 Citrix Hypervisor 服务器上安装 PVS 加速器补充包。可以从 Citrix Hypervisor 产品下载页面下载该补充包。可以使用 XenCenter 或 xe CLI 安装该补充包。有关使用 XenCenter 安装补充包的信息,请参阅 XenCenter 文档中的安装补充包。有关 CLI 的说明,请参阅《Citrix Hypervisor 补充包和 DDK 指南》。

  2. 在 Citrix Hypervisor 中使用 XenCenter 或 xe CLI 配置 PVS 加速器。此配置包括添加 Citrix Provisioning 站点以及指定 Citrix Provisioning 缓存存储的位置。
    • 有关 CLI 的说明,请参阅下面部分中的在 Citrix Hypervisor 中使用 CLI 配置 PVS 加速器
    • 有关使用 XenCenter 配置 PVS 加速器的信息,请参阅 XenCenter 文档中的 PVS 加速器
  3. 在 Citrix Hypervisor 中配置 PVS 加速器后,请使用 PVS UI 完成 PVS 站点的缓存配置。有关详细说明,请参阅在 Citrix Provisioning 中完成缓存配置

配置端口

Citrix Provisioning Services 使用以下端口:

  • 6901、6902、6905:用于预配服务器出站通信(发往目标设备的数据包)
  • 6910:用于使用 Citrix Provisioning Services 登录目标设备
  • 可配置的目标设备端口。默认端口为 6901。
  • 可配置的服务器端口范围。默认范围为 6910-6930。

有关 Citrix Provisioning Services 使用的端口的信息,请参阅 Citrix 技术使用的通信端口

Citrix Hypervisor 中配置的端口范围必须包括所有正在使用的端口。例如,使用 6901-6930 作为默认配置。

注意:

请勿将大端口范围用于 PVS 服务器通信。很少需要在 PVS 服务器上设置超过 20 个端口的范围。使用 PVS 加速器时,端口范围较大可能会减慢数据包处理速度并延长 Citrix Hypervisor 控制域的启动时间。

使用 CLI 在 Citrix Hypervisor 中配置 PVS 加速器

  1. 运行以下命令以在 Citrix Hypervisor 上创建 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)
    <!--NeedCopy-->
    
  2. 创建缓存存储。

    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 不适用于 VM。

  • 必须在配置缓存存储之前扩展控制域内存。

    注意:

    如果选择在控制域内存中存储缓存,该功能最多将占用控制域内存中指定的缓存大小。此选项仅在已将额外的内存分配给控制域时可用。有关增加控制域内存的信息,请参阅更改分配给控制域的内存量

    增加分配给主机的控制域的内存量后,可以为 PVS 加速器显式分配额外的内存。

    执行以下过程可在控制域内存中配置缓存存储:

    1. 运行以下命令可查找要配置为用于缓存的主机的 UUID:

      xe host-list name-label=host-name-label --minimal
      <!--NeedCopy-->
      
    2. 创建特殊类型 tmpfs 的 SR:

      xe sr-create type=tmpfs name-label=MemorySR host-uuid=HOST_UUID device-config:uri=""
      <!--NeedCopy-->
      

      注意:

      对于特殊类型 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
      <!--NeedCopy-->
      

      其中 SR_UUID 是在步骤 b 中创建的 SR 的 UUID

在 Citrix Provisioning 中完成缓存配置

在 Citrix Hypervisor 中配置 PVS 加速器后,请执行以下步骤以完成 Citrix Provisioning 站点的缓存配置。

在 Citrix Provisioning 管理员控制台中,使用 Citrix Virtual Desktops 设置向导或流 VM 向导(取决于部署类型)访问代理功能。尽管这两个向导相似,并且共享多个相同的屏幕,但仍存在以下差异:

  • Citrix Virtual Desktops 设置向导用于配置使用 Citrix Virtual Desktops 控制的 Citrix Hypervisor 虚拟机管理程序上运行的 VM。

  • 流 VM 向导用于在主机上创建 VM。不涉及 Citrix Virtual Desktops。

启动 Citrix Provisioning 管理员控制台:

  1. 导航到 Citrix Provisioning 站点。

  2. 选择 Citrix Provisioning 站点,然后单击鼠标右键以显示上下文菜单。

  3. 根据部署选择恰当的向导。选择选项对所有虚拟机启用 PVS 加速器以启用 PVS 加速器功能。

  4. 如果您是首次启用虚拟磁盘缓存,“流虚拟机设置”向导上将显示 Citrix Hypervisor 屏幕。此屏幕显示在 Citrix Hypervisor 上配置的尚未与 Citrix Provisioning 站点关联的所有 Citrix Provisioning 站点的列表。使用该列表可选择要应用 PVS 加速器的 Citrix Provisioning 站点。使用相同的 Citrix Hypervisor 服务器为相同的 Citrix Provisioning 站点运行该向导时将不显示此屏幕。

  5. 单击下一步完成缓存配置。

  6. 单击完成以预配 Citrix Virtual Desktops 或流 VM,并将选定的 Citrix Provisioning 站点与 Citrix Hypervisor 中的 PVS 加速器相关联。完成此步骤后,PVS 加速器配置窗口中的查看 PVS 服务器按钮将在 XenCenter 中处于启用状态。单击查看 PVS 服务器按钮将显示与 Citrix Provisioning 站点关联的所有 PVS 服务器的 IP 地址。

缓存操作

PVS 加速器功能缓存以下内容:

  • 从虚拟磁盘中读取,但不写入到写入缓存或从中读取

  • 基于映像版本。多个 VM 使用相同的映像版本时,这些 VM 将共享缓存的块。

  • 使用任何非永久写入缓存类型的设备

  • 访问模式为“标准映像”的虚拟磁盘。不适用于访问模式为“专用映像”的虚拟磁盘

  • 标记为生产或“测试”类型的设备。标记为维护类型的设备未被缓存

PVS 加速器 CLI 操作

下一节介绍了使用 PVS 加速器时客户能够通过 CLI 执行的操作。客户还可以使用 XenCenter 执行这些操作。有关详细信息,请参阅 XenCenter 文档中的 PVS 加速器

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

PVS 加速器通过优化 VM 与 Citrix Provisioning 服务器之间的网络流量运行。在 Citrix Provisioning 服务器上完成配置时,Citrix Provisioning 服务器将使用其 IP 地址和端口填充 Citrix Hypervisor 上的 pvs-server 对象。PVS 加速器随后使用此信息专门优化 VM 与其 Citrix Provisioning 服务器之间的流量。可以使用以下命令列出所配置的 Citrix Provisioning 服务器:

xe pvs-server-list pvs-site-uuid=PVS_SITE_UUID params=all
<!--NeedCopy-->

配置 VM 以启用缓存

可以使用以下任意工具为 VM 启用 PVS 加速器:

  • Citrix Provisioning CLI
  • Citrix Virtual Desktops 设置向导
  • 流 VM 设置向导
  • XenCenter
  • xe CLI

xe CLI 使用 VM 的 VIF 配置 PVS 加速器。它将创建一个 Citrix Provisioning 代理,该代理将 VM 的 VIF 与 Citrix Provisioning 站点链接。

要配置 VM,请运行以下命令:

  1. 查找 VM 的第一个 VIF 以在其上启用缓存:

    VIF_UUID=$(xe vif-list vm-name-label=pvsdevice_1 device=0 --minimal)
    <!--NeedCopy-->
    
  2. 创建 Citrix Provisioning 代理

    xe pvs-proxy-create pvs-site-uuid=PVS_SITE_UUID vif-uuid=$VIF_UUID
    <!--NeedCopy-->
    

对 VM 禁用缓存

可以通过销毁将 VM 的 VIF 与 pvs-site 链接的 Citrix Provisioning 代理为 VM 禁用 PVS 加速器。

  1. 查找 VM 的第一个 VIF:

    VIF_UUID=$(xe vif-list vm-name-label=pvsdevice_1 device=0 --minimal)
    <!--NeedCopy-->
    
  2. 查找 VM 的 Citrix Provisioning 代理:

    PVS_PROXY_UUID=$(xe pvs-proxy-list vif-uuid=$VIF_UUID --minimal)
    <!--NeedCopy-->
    
  3. 销毁 Citrix Provisioning 代理:

    xe pvs-proxy-destroy uuid=$PVS_PROXY_UUID
    <!--NeedCopy-->
    

删除主机或站点的 PVS 加速器存储

要删除主机或站点的 PVS 加速器存储,请运行以下命令:

  1. 查找要销毁其存储的主机:

    HOST_UUID=$(xe host-list name-label=HOST_NAME --minimal)
    <!--NeedCopy-->
    
  2. 查找对象的 UUID:

    PVS_CACHE_STORAGE_UUID=$(xe pvs-cache-storage-list host-uuid=$HOST_UUID --minimal)
    <!--NeedCopy-->
    
  3. 销毁对象:

    xe pvs-cache-storage-destroy uuid=$PVS_CACHE_STORAGE_UUID
    <!--NeedCopy-->
    

忘记站点的 PVS 加速器配置

要忘记站点的 PVS 加速器配置,请执行以下操作:

  1. 查找 Citrix Provisioning 站点:

    PVS_SITE_UUID=$(xe pvs-site-list name-label=My PVS Site)
    <!--NeedCopy-->
    
  2. 运行以下命令可忘记 Citrix Provisioning 站点:

    xe pvs-site-forget uuid=$PVS_SITE_UUID
    <!--NeedCopy-->
    
PVS 加速器