部署支持 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 库:
-
访问官方 DPDK 下载 页面。
-
下载以下支持的DPDK包版本到Linux主机:
下载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 内核模块:
-
运行 dpdk-setup.sh 脚本:
bash $RTE_SDK/usertools/dpdk-setup.sh
-
在用户提示符下输入选项 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 模块:
-
运行 dpdk-setup.sh 脚本:
./$RTE_SDK/usertoos/dpdk-setup.sh
-
在用户提示符下输入选项 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-->
-
在用户提示符中输入要绑定到 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-->
-
重复上述步骤,将另一个Linux主机网口绑定到DPDK IGB UIO模块。
为 DPDK 设置 大页面
为 DPDK设置 大页面
:
-
运行 dpdk-setup.sh 脚本:
./$RTE_SDK/usertoos/dpdk-setup.sh
-
根据 Linux 主机内存架构,在用户提示符下输入选项 20 或 21,然后按回车键。
. . [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-->
-
在用户提示符中输入为 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:
-
打开 Linux 主机中的 BLX 配置文件 (blx.conf)。 BLX配置文件的完整路径为:
/etc/blx/blx.conf
-
在 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 地址和默认路由:
-
打开 Linux 主机中的 BLX 配置文件 (blx.conf)。 BLX配置文件的完整路径为:
/etc/blx/blx.conf
-
取消注释以下参数并设置管理IP地址:
# ipaddress:
-
取消注释以下参数并在静态路由部分设置默认路由:
# 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 文档。