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

  • 通过添加更多管理程序主机简化横向扩展: 可能需要更少的 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 功能:

  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。

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

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

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

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

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

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

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 站点链接起来。

要配置虚拟机:

  1. 查找虚拟机的第一个 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-->
    

禁用虚拟机的缓存

可以通过销毁将虚拟机的 VIF 与 pvs-site 链接的 Citrix Provisioning 代理来禁用虚拟机的 PVS-Accelerator。

  1. 查找虚拟机的第一个 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 加速器