NetScaler VPX 14.1

在 KVM 虚拟机管理程序上配置 NetScaler VPX 以在 SR-IOV 模式下使用 Intel QAT 进行 SSL 加速

Linux KVM 虚拟机管理程序上的 NetScaler VPX 实例可以使用 Intel QuickAssist Technology (QAT) 来加速 NetScaler SSL 性能。使用 Intel QAT,所有高延迟的加密处理都可以卸载到芯片,从而释放一个或多个主机 CPU 来执行其他任务。

以前,所有 NetScaler® 数据路径加密处理都是通过使用主机 vCPU 在软件中完成的。

注意:

目前,NetScaler VPX 仅支持 Intel QAT 系列中的 C62x 芯片型号。此功能从 NetScaler 14.1 版本 build 8.50 开始受支持。

先决条件

  • Linux 主机配备了 Intel QAT C62x 芯片,该芯片可以直接集成到主板中,也可以作为外部 PCI 卡添加。

    Intel QAT C62x 系列型号: C625、C626、C627、C628。只有这些 C62x 型号包含公钥加密 (PKE) 功能。其他 C62x 变体不支持 PKE。

  • NetScaler VPX 设备能够满足 VMware ESX 虚拟化平台的硬件要求。有关更多信息,请参阅 在 Linux KVM 虚拟化平台上安装 NetScaler VPX 实例

限制事项

没有为单个虚拟机预留加密单元或带宽的规定。任何 Intel QAT 硬件的所有可用加密单元都由使用 QAT 硬件的所有虚拟机共享。

设置主机环境以使用 Intel QAT

  1. 在 Linux 主机中下载并安装 Intel 提供的 C62x 系列 (QAT) 芯片型号驱动程序。有关 Intel 软件包下载和安装说明的更多信息,请参阅 适用于 Linux 的 Intel QuickAssist Technology 驱动程序。 下载包中包含一个 readme 文件。此文件提供了在主机中编译和安装软件包的说明。

    下载并安装驱动程序后,执行以下健全性检查:

    • 记下 C62x 芯片的数量。每个 C62x 芯片最多有 3 个 PCIe 端点。

    • 确保所有端点都已启动。运行 adf_ctl status 命令以显示所有 PF 端点(最多 3 个)的状态。

       root@Super-Server:~# adf_ctl status
      
       Checking status of all devices.
       There is 51 QAT acceleration device(s) in the system
       qat_dev0 - type: c6xx,  inst_id: 0,  node_id: 0,  bsf: 0000:1a:00.0,  #accel: 5 #engines: 10 state: up
       qat_dev1 - type: c6xx,  inst_id: 1,  node_id: 0,  bsf: 0000:1b:00.0,  #accel: 5 #engines: 10 state: up
       qat_dev2 - type: c6xx,  inst_id: 2,  node_id: 0,  bsf: 0000:1c:00.0,  #accel: 5 #engines: 10 state: up
       <!--NeedCopy-->
      
    • 为所有 QAT 端点启用 SRIOV(VF 支持)。

       root@Super-Server:~# echo 1 > /sys/bus/pci/devices/0000\:1a\:00.0/sriov_numvfs
       root@Super-Server:~# echo 1 > /sys/bus/pci/devices/0000\:1b\:00.0/sriov_numvfs
       root@Super-Server:~# echo 1 > /sys/bus/pci/devices/0000\:1c\:00.0/sriov_numvfs
      
       <!--NeedCopy-->
      
    • 确保显示所有 VF(每个端点 16 个 VF,总计 48 个 VF)。
    • 运行 adf_ctl status 命令以验证所有 PF 端点(最多 3 个)和每个 Intel QAT 芯片的 VF 都已启动。在此示例中,系统只有一个 C62x 芯片。因此,它总共有 51 个端点(3 个 + 48 个 VF)。

      adf_ctl status 命令的执行情况和结果显示

  2. 在 Linux 主机上启用 SR-IOV 功能。
  3. 创建虚拟机。创建 VM 时,分配适当数量的 PCI 设备以满足性能要求。

注意:

每个 C62x (QAT) 芯片最多可以有三个独立的 PCI 端点。每个端点都是 VF 的逻辑集合,并与芯片的其他 PCI 端点平等共享带宽。每个端点最多可以有 16 个 VF,显示为 16 个 PCI 设备。将这些设备添加到 VM 以使用 QAT 芯片进行加密加速。

注意事项

  • 如果 VM 加密要求使用多个 QAT PCI 端点/芯片,我们建议您以循环方式选择相应的 PCI 设备/VF,以实现对称分布。
  • 我们建议选择的 PCI 设备数量等于许可的 vCPU 数量(不包括管理 vCPU 数量)。添加的 PCI 设备数量多于可用 vCPU 数量不一定会提高性能。

    示例:

    考虑一个具有一个 Intel C62x 芯片(包含 3 个端点)的 Linux 主机。在配置具有 6 个 vCPU 的 VM 时,从每个端点选择 2 个 VF,并将它们分配给 VM。此分配可确保 VM 的加密单元得到有效且平等的分配。在总可用 vCPU 中,默认情况下,一个 vCPU 保留用于管理平面,其余 vCPU 可用于数据平面 PE。

将 QAT VF 分配给部署在 Linux KVM 虚拟机管理程序上的 NetScaler VPX 实例

  1. 在 Linux KVM 虚拟机管理器中,确保虚拟机 (NetScaler VPX) 已关机。

  2. 导航到 添加硬件 > PCI 主机设备

  3. 将 Intel QAT 虚拟功能分配给 PCI 设备。

    分配 Intel QAT 虚拟功能(/zh-cn/vpx/media/linux-add-hardware.png)

  4. 单击 完成

  5. 重复上述步骤,将一个或多个 Intel QAT VF 分配给 NetScaler VPX 实例,直到达到总 vCPU 数量减一的限制。因为一个 vCPU 保留用于管理进程。

    每个 VM 的 QAT VF 数量 等于 vCPU 数量 减去 1

  6. 启动虚拟机。

  7. 在 NetScaler 命令行界面中运行 stat ssl 命令以显示 SSL 摘要,并在将 QAT 虚拟功能分配给 NetScaler VPX 后验证 SSL 卡。

    在此示例中,我们使用了 5 个 vCPU,这意味着有 4 个数据包引擎 (PE)。

    统计 SSL 命令

关于此部署

本次部署是根据以下组件规格进行测试的:

  • NetScaler VPX 版本信息和内部版本号: 14.1–8.50
  • Ubuntu 版本: 18.04,内核 5.4.0-146
  • 英特尔 C62x QAT 适用于 Linux 的驱动程序版本: L.4.21.0-00001
在 KVM 虚拟机管理程序上配置 NetScaler VPX 以在 SR-IOV 模式下使用 Intel QAT 进行 SSL 加速