部署支持 DPDK 的 NetScaler BLX 设备

NetScaler BLX 设备支持 Data Plane Development Kit (DPDK),该套件是一组 Linux 库和网络接口控制器,可实现更好的网络性能。支持 DPDK 的 BLX 设备只能在专用网络模式下运行。在 Linux 主机上部署支持 DPDK 的 BLX 设备包括以下步骤:

  • 在 Linux 主机上下载、安装和编译 DPDK 库
  • 在 Linux 主机上配置 DPDK
  • 配置 BLX 设备以支持 DPDK
  • 首次设置 BLX 设备的管理 IP 地址
  • 启动 BLX 设备

在 Linux 主机上下载、安装和编译 DPDK 库

DPDK 库托管在 DPDK 官方网站上。在 Linux 主机上安装 DPDK 库包括提取 DPDK 软件包、设置 DPDK 环境变量以及编译 DPDK 库。

要在 Linux 主机上下载受支持的 DPDK 库,请执行以下操作:

  1. 访问官方 DPDK 下载 页面。

  2. 将以下受支持的 DPDK 软件包版本下载到 Linux 主机:

    DPDK 17.11.6 (LTS)

下载 DPDK 库后,在 Linux 主机上解压 DPDK 包,设置 RTE_SDK DPDK 环境变量,然后编译 DPDK 库:

export RTE_SDK=<path to the extracted DPDK installation directory on the Linux host>

有关在 Linux 设备上安装和编译 DPDK 的更多信息,请参阅官方 DPDK 文档中的 官方 DPDK 文档

在 Linux 主机上配置 DPDK

安装 DPDK 库之后,必须在 Linux 主机上配置 DPDK。配置 DPDK 包括以下任务:

  • 插入 DPDK IGB UIO 内核模块
  • 将用于 BLX 设备的 Linux 主机 NIC 端口绑定到 DPDK IGB UIO 模块。
  • 为 DPDK 设置 hugepages

使用位于 DPDK usertools 子目录中的 DPDK 安装脚本 (dpdk-setup.sh) 来执行这些任务。

注意:

为方便起见,添加了以下与 DPDK 相关的过程。有关在 Linux 系统上配置 DPDK 的更多信息,请参阅官方 DPDK 文档中的 官方 DPDK 文档

插入 DPDK IGB UIO 内核模块

要插入 DPDK IGB UIO 内核模块,请执行以下操作:

  1. 运行 dpdk-setup.sh 脚本:

    bash $RTE_SDK/usertools/dpdk-setup.sh

  2. 在用户提示符中键入选项 17 ,然后按 Enter。

    .
    .
    [17] Insert IGB UIO module
    [18] Insert VFIO module
    [19] Insert KNI module
    [20] Setup hugepage mappings for non-NUMA systems
    [21] Setup hugepage mappings for NUMA systems
    [22] Display current Ethernet/Crypto device settings
    [23] Bind Ethernet/Crypto device to IGB UIO module
    [24] Bind Ethernet/Crypto device to VFIO module
    [25] Setup VFIO permissions
    .
    .
    ………………
    [34] Exit Script
    
    Option: 17
    
    <!--NeedCopy-->
    

将 Linux 主机 NIC 端口绑定到 DPDK IGB UIO 模块

要将 Linux 主机 NIC 端口绑定到 DPDK IGB UIO 模块,请执行以下操作

  1. 运行 dpdk-setup.sh 脚本:

    ./$RTE_SDK/usertoos/dpdk-setup.sh

  2. 在用户提示符中键入选项 23 ,然后按 Enter。

    .
    .
    [17] Insert IGB UIO module
    [18] Insert VFIO module
    [19] Insert KNI module
    [20] Setup hugepage mappings for non-NUMA systems
    [21] Setup hugepage mappings for NUMA systems
    [22] Display current Ethernet/Crypto device settings
    [23] Bind Ethernet/Crypto device to IGB UIO module
    [24] Bind Ethernet/Crypto device to VFIO module
    [25] Setup VFIO permissions
    .
    .
    ………………
    [34] Exit Script
    
    Option: 23
    
    <!--NeedCopy-->
    
  3. 在用户提示符下键入要绑定到 DPDK IGB UIO 内核模块的 Linux 主机端口的 PCI 地址,然后按 Enter 键:

    ```

使用 DPDK 兼容驱动程序的网络设备 ============================================

0000:83:00.1 'I350 Gigabit Fiber Network Connection 1522' drv=igb_uio unused=igb

使用内核驱动程序的网络设备 ===================================

0000:01:00.0 ‘Ethernet Controller 10-Gigabit X540-AT2 1528’ if=eno1 drv=ixgbe unused=igb_uio Active 0000:01:00.1 ‘Ethernet Controller 10-Gigabit X540-AT2 1528’ if=eno2 drv=ixgbe unused=igb_uio 0000:83:00.0 ‘I350 Gigabit Fiber Network Connection 1522’ if=enp131s0f0 drv=igb unused=igb_uio 0000:02:00.0 ‘Ethernet Controller XL710 for 40GbE QSFP+ 1584’ drv=i40e unused=igb_uio. « add 0000:83:00.2 ‘I350 Gigabit Fiber Network Connection 1522’ if=enp131s0f2 drv=igb unused=igb_uio 0000:83:00.3 ‘I350 Gigabit Fiber Network Connection 1522’ if=enp131s0f3 drv=igb unused=igb_uio 0000:84:00.0 ‘I350 Gigabit Fiber Network Connection 1522’ if=enp132s0f0 drv=igb unused=igb_uio 0000:84:00.1 ‘I350 Gigabit Fiber Network Connection 1522’ if=enp132s0f1 drv=igb unused=igb_uio ……….. 使用内核驱动程序的内存池设备 ===================================

<none>

其他 Mempool 设备 =====================

<none>

Enter PCI address of device to bind to IGB UIO driver: 0000:02:00.0

```
  1. 重复上述步骤,将另一个 Linux 主机网络端口绑定到 DPDK IGB UIO 模块。

为 DPDK 设置 hugepages

要为 DPDK 设置 hugepages,请执行以下操作

  1. 运行 dpdk-setup.sh 脚本:

    ./$RTE_SDK/usertoos/dpdk-setup.sh

  2. 在用户提示符下键入选项 2021(基于 Linux 主机内存体系结构),然后按 Enter 键。

    .
    .
    [17] Insert IGB UIO module
    [18] Insert VFIO module
    [19] Insert KNI module
    [20] Setup hugepage mappings for non-NUMA systems.
    [21] Setup hugepage mappings for NUMA systems
    [22] Display current Ethernet/Crypto device settings
    [23] Bind Ethernet/Crypto device to IGB UIO module
    [24] Bind Ethernet/Crypto device to VFIO module
    [25] Setup VFIO permissions
    .
    .
    ………………
    [34] Exit Script
    
    Option: 21
    
    
  3. 在用户提示符下键入要留给 DPDK 的 hugepages 的数量,然后按 Enter 键:

    Removing currently reserved hugepages
    Unmounting /mnt/huge and removing directory
    
    Input the number of 2048kB hugepages
    Example: to have 128MB of hugepages available in a 2MB huge page system,
    enter '64' to reserve 64 * 2MB pages
    
    Number of pages: 1024
    
    Reserving hugepages
    Creating /mnt/huge and mounting as hugetlbfs
    
    

配置 BLX 设备以支持 DPDK

要配置 BLX 设备以支持 DPDK,必须在 BLX 配置文件 (blx.conf) 中设置以下参数。

  • DPDK 配置。此参数使 BLX 设备能够在 DPDK 模式下启动以获得更好的性能。此外,此参数指定支持 DPDK 的 BLX 设备要使用的数据包引擎的数量。默认值设置为 8 (0xff)。支持 DPDK 的 BLX 设备支持的最大数据包引擎数量为 28。

注意

设置 DPDK config 参数并启动 BLX 设备后,绑定 DPDK 的 Linux NIC 端口将自动添加为 BLX 设备的一部分。

要配置 BLX 设备以支持 DPDK,请执行以下操作:

  1. 打开 Linux 主机中存在的 BLX 配置文件 (blx.conf)。BLX 配置文件的完整路径是:

    /etc/blx/blx.conf

  2. 在 BLX 配置文件 (blx.conf) 中删除该行开头的 #(哈希符号),取消注释以下包含 dpdk-config 参数的行:

    # dpdk-config: -c 0xff

    示例配置

    在以下 blx.conf 文件示例摘录中,dpdk-config 参数设置已启用。

    .
    .
    # dpdk EAL core mask parameter. Applicable only when blx-dpdk is installed.
    
    dpdk-config: -c 0xff
    .
    .
    

首次设置 BLX 设备的管理 IP 地址

BLX 设备的管理 IP 地址是您出于管理目的访问设备的 IP 地址。BLX 设备的管理 IP 地址也称为 Citrix ADC IP (NSIP) 地址。

一个 BLX 设备只能有一个 Citrix ADC IP (NSIP) 地址。此外,您必须为已配置的 Citrix ADC IP 子网添加默认路由,以便可以从局域网上的其他网络访问 Citrix ADC IP。

要首次设置 BLX 设备的管理 IP 地址,必须在 BLX 配置文件 (blx.conf) 中设置相关参数。

要首次设置管理 IP 地址和默认路由,请执行以下操作

  1. 打开 Linux 主机中存在的 BLX 配置文件 (blx.conf)。BLX 配置文件的完整路径是:

    /etc/blx/blx.conf

  2. 取消注释以下参数并设置管理 IP 地址:

    # ipaddress:

  3. 取消注释以下参数并在静态路由部分设置默认路由:

    # default

示例配置

blx.conf file 的以下示例摘录中,设置了管理 IP 地址和默认路由:

.
.

ipaddress: 203.0.113.10
.
.
default 203.0.113.1
.
.

启动支持 DPDK 的 BLX 设备

运行以下命令启动 BLX 设备:

systemctl start blx

BLX 设备现在处于启动状态。

再次检查 BLX 设备的状态:

systemctl status blx

成功安装和启动 BLX 设备后,您可以使用以下方法之一在设备上配置 Citrix ADC 功能:

  • Citrix ADC CLI
  • Citrix ADC GUI
  • Citrix NITRO REST API

有关使用这些方法的详细信息,请参阅配置 BLX 设备

有关 Citrix ADC 功能的更多信息,请参阅 Citrix ADC 文档 ```

部署支持 DPDK 的 NetScaler BLX 设备