Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
在此页面上
 

示例:如何在 KVM 服务器上使用 Ubuntu 在 vSRX 3.0 上设置 SR-IOV 10GbE 高可用性

此示例说明如何在 vSRX 3.0 实例上设置 SR-IOV 10GbE 高可用性部署。

要求

此示例使用以下硬件、软件组件和操作系统:

装置

  • vSRX 3.0

软件

  • Junos OS 20.4R1 版

硬件

  • 网卡:英特尔公司以太网控制器 X710/X520/82599

  • 驱动程序:i40e版本:2.1.14-k或ixgbe版本:5.1.0-k

  • CPU: 英特尔 (R) 至强 (R) 金牌 5120 CPU @ 2.20 GHz

  • 56 个中央处理器

  • 0- 55 个在线 CPU 列表

  • 每个内核 2 个线程

  • 每个插槽 14 个内核

  • 2 个插座

  • 2 个非一致性内存访问 (NUMA) 节点

有关 SR-IOV 支持的 NIC、虚拟机管理程序和端口的详细信息,请参阅 硬件规格

操作系统

表 1:SR-IOV HA 支持的 KVM 操作系统和网络适配器信息

KVM 操作系统和网络适配器

支持

英特尔 82599/X520/X540(基于 82599 ixgb 驱动程序)

是的

英特尔 X710/XL710/XXV710/X722(基于 i40e 驱动程序)

是的

Mellanox ConnectX-4/ConnectX-4 Lx

Ubuntu 18.04 (kernel:4.15.0 + libvirt:4.0.0) 和 20.04 (kernel:5.4.0 + libvirt:6.0.0) LTS

是的

Redhat 8.2 (kernel:4.18.0 + libvirt:4.5.0)

是的

此示例中使用的操作系统包括:

  • KVM 服务器上的 Ubuntu 18.04.3 LTS

  • 内核:4.15.0-64 通用

  • 内核:4.18.0-193.1.2.el8_2.x86_64

  • 红帽 RHEL 8.2

概述

此示例演示如何:

  • 设置 10 千兆高可用性部署

  • 在 NIC 接口上构建 VF 总线信息并更改 XML 模板

  • 配置基本 vSRX 3.0 实例

在高可用性环境中,控制链路和结构数据链路是确保机箱群集稳定性的关键通信通道。这两个链路都是同一 Linux 网桥的一部分。主机操作系统 (Ubuntu) 共享分配给 vSRX 3.0 控制平面的 CPU,用于执行日常任务,并与其中一个 vSRX 3.0 PFE 数据平面线程共享用于数据包处理。这种资源争用,加上缺少用于控制链路的专用 VLAN 或 NIC,可能会导致检测信号未命中。

注意:

使用命令时 use-actual-mac-on-physical-interfaces ,不支持通过 SR-IOV 的结构链路。

此外,主机上的中断处理也会影响性能。当数据包到达网卡时,硬件中断指示和服务 vSRX 3.0 控制平面的 CPU 核心必须停止并为中断提供服务。来自网卡的大量数据包可能会导致更多的硬件中断和更少的 CPU 资源来为 vSRX 3.0 控制平面提供服务。

为了克服设计约束和 CPU 资源争用,我们建议进行以下更改:

  • 为每个 vSRX 3.0 控制平面、vSRX 3.0 数据平面和主机操作系统分配专用 CPU。

  • 在主机上分配所需的内存。

  • 在高可用性部署中将 SR-IOV 用于交换矩阵接口。

  • 删除用于控制链路通信的 GRE,并在高可用性部署中使用组播。

  • 启用 IRQ 关联以避免 CPU 为 vSRX 3.0 控制平面和数据平面处理中断。

  • 将物理网卡描述符从 512 字节扩大到 4096 字节。

我们建议您将 vSRX 3.0 的所有收入端口均配置为 SR-IOV。此外,在 KVM 上,您可以在管理端口 -fxp0/ 控制端口 - em0 / 结构端口 ge-0/0/* 上配置 SR-IOV 高可用性。

注意:

不支持 SR-IOV 高可用性第 2 层功能。此外,VMware 和 Mellanox NIC 不支持 SR-IOV 高可用性功能。

图 1 显示了此示例中使用的拓扑。

图 1:高可用性信任和不信任双 NIC 拓扑 High Availability Trust and Untrust Dual NIC Topology

配置

SR-IOV 高可用性部署

分步过程

要配置 SR-IOV 高可用性部署,请执行以下操作:

  1. 启用 SR-IOV 端口。

    输入可用端口所需的输入。

  2. 在以下位置可用的默认 grub 文件中进行以下更改:

  3. 执行升级蛴螬。

  4. 重新引导主机以使更改生效。

  5. (可选)核心 0-3 切换到中断上下文 - 中断服务例程 (ISR) 来处理即将到来的中断。NUMA 0 上的核心 4-13 用于 vSRX。运行以下脚本:

  6. 将所有 NIC 上的 tx 和 rx 缓冲区大小增加到 4096。

  7. 关闭流控制。

  8. 检查服务器在重新启动后是否持续存在。

  9. 将 SR-IOV VF 信任模式设置为打开并关闭欺骗检查。

    或者,您也可以将以下命令添加到 rc.local 脚本中:

在网卡上构建虚拟功能的总线信息

分步过程

要在网卡上构建 VF 的总线信息,请执行以下操作:

  1. 现在我们知道了备份接口,我们需要识别每个 NIC 上所有 VF 的总线信息。

    对于信任网络中的备份接口,我们需要前三个 VF 的总线信息。

    对于不信任网络中的备份接口,我们需要前两个 VF 上的总线信息。

  2. 表 2 说明了构建模板所需的 XML 到 Junos 接口映射。

    表 2:XML 到 Junos 接口的映射

    网卡

    Vf

    巴士信息

    接口

    XML 位置

    FXP0

    FXP0

    1

    em0

    em0

    2

    eth0

    0

    0000:18:02.0

    ge-0/0/0 晶圆厂0

    GE-7/0/0 晶圆厂1

    3

    1

    0000:18:02.1

    ge-0/0/1

    GE-7/0/1

    4

    2

    0000:18:02.2

    ge-0/0/5

    GE-7/0/5

    8

    乙醚1

    0

    0000:18:06.0

    ge-0/0/3

    GE-7/0/3

    6

    乙醚2

    0

    0000:18:0a.0

    ge-0/0/2

    GE-7/0/2

    5

    eth3

    0

    0000:18:0e.0

    ge-0/0/4

    GE-7/0/4

    7

    XML 到 Junos 的配置是顺序的。第一个接口分配给 fxp0,第二个接口分配给 em0,最后一个接口分配给 ge-0/0/9,如 表 3 所示。

  3. 基于表 2 开发以下表 3

    表 3:Junos 接口和总线信息

    XML 位置

    巴士信息

    Junos 接口

    1

    BR0

    FXP0

    2

    BR1

    em0

    3

    0000:18:02.0

    ge-0/0/0

    4

    0000:18:02.1

    ge-0/0/1

    5

    0000:18:0a.0

    ge-0/0/2

    6

    0000:18:06.0

    ge-0/0/3

    7

    0000:18:0e.0

    ge-0/0/4

    8

    0000:18:02.2

    ge-0/0/5

  4. 按照 表 3 修改以下 XML 模板中的接口第 2、3、4、8 和 12 节。

配置 vSRX 3.0

CLI 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,将命令复制并粘贴到层次结构级别的 CLI [edit] 中,然后从配置模式进入 commit

注意:

此配置中不使用 ge-0/0/3、ge-0/0/4、ge-7/0/3、ge-7/0/4。

验证

确认配置工作正常。

验证机箱群集状态

目的

验证机箱群集状态、统计信息和冗余组信息。

行动

在操作模式下,输入以下命令。

验证部署结果

意义

示例输出显示机箱群集状态中没有手动故障切换,并为您提供欺骗检查状态和 SR-IOV VF 信任模式状态。

结果

在配置模式下,输入 show security zonesshow chassis 命令确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。