部署支持 DPDK 的 NetScaler BLX 设备

NetScaler BLX 设备支持数据平面开发工具包 (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 设置 大页面

使用位于 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 并按回车键。

    .
    .
    [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 并按回车键。

    .
    .
    [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 键:

    
    Network devices using DPDK-compatible driver
    ============================================
    0000:83:00.1 'I350 Gigabit Fiber Network Connection 1522' drv=igb_uio unused=igb
    
    Network devices using kernel driver
    ===================================
    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
    ………..
    Mempool devices using kernel driver
    ===================================
    <none>
    
    Other Mempool devices
    =====================
    <none>
    
    
    Enter PCI address of device to bind to IGB UIO driver: 0000:02:00.0
    
    <!--NeedCopy-->
    
  4. 重复上述步骤,将另一个Linux主机网口绑定到DPDK IGB UIO模块。

为 DPDK 设置 大页面

为 DPDK设置 大页面

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

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

  2. 根据 Linux 主机内存架构,在用户提示符下输入选项 2021,然后按回车键。

    .
    .
    [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
    
    <!--NeedCopy-->
    
  3. 在用户提示符中输入为 DPDK 保留的 hugepages的数量,然后按回车键:

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

配置 BLX 设备以支持 DPDK

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

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

笔记

设置 DPDK 配置 参数并启动 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
    .
    .
    <!--NeedCopy-->
    

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

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

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

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

首次设置管理 IP 地址和默认路由

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

    /etc/blx/blx.conf

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

    # ipaddress:

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

    # default

示例配置:

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

.
.

ipaddress: 203.0.113.10
.
.
default 203.0.113.1
.
.
<!--NeedCopy-->

启动支持 DPDK 的 BLX 设备

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

systemctl start blx

BLX 设备现在处于 Up 状态。

再次检查 BLX 设备的状态:

systemctl status blx

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

  • Citrix ADC CLI
  • Citrix ADC 图形用户界面
  • Citrix NITRO REST API

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

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

部署支持 DPDK 的 NetScaler BLX 设备