XenServer

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 启动时间,并在许多设备在短时间内启动时实现更快的性能。

  • 通过添加更多管理程序主机简化横向扩展: 由于存储负载有效地分散到所有 XenServer 主机上,因此可能需要更少的 Citrix Provisioning™ 服务器。峰值负载通过源主机内的缓存进行处理。

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

注意:

PVS-Accelerator 适用于 XenServer Premium Edition 客户。要使用 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 使用 OVS 的功能,因此在将 Linux Bridge(已弃用)用作网络后端的主机上不可用。

  • PVS-Accelerator 作用于缓存 VM 的第一个虚拟网络接口 (VIF)。因此,请将第一个 VIF 连接到 Citrix Provisioning 存储网络以使缓存正常工作。

  • PVS-Accelerator 目前无法用于强制 IP 绑定到特定 MAC 地址的网络端口。此交换机功能可能称为“IP Source Guard”或类似名称。在此类环境中,启用 PVS-Accelerator 后,PVS 目标将无法启动,并显示错误“Login request time out!”。

启用 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)
    <!--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 不可用于虚拟机。

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

    注意:

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

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

    执行以下步骤以在控制域内存中配置缓存存储:

    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 中的缓存配置

在 XenServer 中配置 PVS-Accelerator 后,执行以下步骤以完成 Citrix Provisioning 站点的缓存配置。

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

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

  • 流式 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 功能缓存:

  • 来自虚拟磁盘的读取,但不缓存写入或来自写入缓存的读取

  • 基于映像版本。当多个虚拟机使用相同的映像版本时,它们会共享缓存块

  • 具有任何非持久性写入缓存类型的设备

  • 访问模式为标准映像的虚拟磁盘。它不适用于访问模式为私有映像的虚拟磁盘

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

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
<!--NeedCopy-->

配置 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)
    <!--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-Accelerator。

  1. 查找 VM 的第一个 VIF:

    VIF_UUID=$(xe vif-list vm-name-label=pvsdevice_1 device=0 --minimal)
    <!--NeedCopy-->
    
  2. 查找虚拟机的 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-Accelerator 存储

要移除主机或站点的 PVS-Accelerator 存储,请执行以下操作:

  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-Accelerator 配置

要忘记站点的 PVS-Accelerator 配置,请执行以下操作:

  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 加速器