Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

示例:在 KVM 上的多个实例vMX SR-IOV

vMX KVM 上的交换机支持单根 I/O 虚拟化 (SR-IOV) 接口类型。单根 I/O 虚拟化 (SR-IOV) 允许物理功能显示为多个独立的 vNIC。SR-IOV 允许设备(例如网络适配器)独立访问其各种硬件功能之间的资源。如果有支持 SR-IOV NIC物理设备,可以将支持 SR-IOV 的 vNIC 或虚拟功能 (VF) 连接到 vMX 实例,以提高性能。

系统要求:

  • Junos OS 18.4 或更高版本。

  • VMX for KVM 上的 SR-IOV 需要以下 Intel NIC驱动程序:

    • 使用 10G 端口和 ixgbe 驱动程序的 Intel X520 或 X540

    • 使用 10G 端口和 i40e 驱动程序的 Intel X710 或 XL710

    从 Junos OS 19.1R1-S1 版和 Junos OS 版本 19.2R1 开始,VMX 实例支持具有 Intel XL710-QDA2 NIC 的 40G 端口。使用 40G 端口时,vMX自动检查端口速度并分配两个 I/O v CPU。

要启用 VMX 实例上的 SR-IOV,必须完成以下任务:

  • 准备NIC SR-IOV 在系统 (/sys/) 模式下使用 SR-IOV。

  • 从 Intel 安装驱动程序,必须编译驱动程序,卸载旧驱动程序,以及安装新的编译驱动程序

    注意:

    智能vMX也提供修改的 intel 驱动程序。您可以使用 Intel 的本机驱动程序或使用已vMX驱动程序。

  • 准备 vmx.conf 文件

  • 使用Junos CLI配置本机驱动程序

  • 启用 SR-IOV 的 BIOS 要求 - 确保系统 BIOS 设置中已启用 Intel VT-d 或 AMD 的MU。

识别此接口的 PCI 地址和内核NIC

  1. 要查找 PCI 地址,请使用以下命令:
  2. 要使用 PCI 查找内核名称,请使用以下命令:
  3. 要找到用于此 NIC的驱动程序,请使用以下命令:

从 Intel 下载和安装最新的驱动程序软件

您可从 Intel 下载最新的驱动程序软件并更换 Ubuntu 提供的现有驱动程序软件。

在此例中®从 Intel ® 网络适配器驱动程序 for PCIe* Intel® 10 千兆位以太网网络连接 在 Linux 下下载该软件,并将其保存至您选择的任何目录中,然后按照 README 说明继续下一步操作。

要安装 Intel 的驱动程序软件:

  1. 安装驱动程序软件。
  2. 卸载旧驱动程序,然后使用 / 命令加载 rmmod 更新的 modprobe 驱动程序。
    警告:

    命令 rmmod 将卸载 10GE 驱动程序。如果这是您连接到的唯一接口,则对主机的访问将丢失。

  3. 验证新驱动程序是否正确安装。

准备NIC在系统模式下使用 SR-IOV

主机需要通过设置值NIC每个专用主机,以及有多少 VF 会为给定的网络使用 sriov_numvfs SR-IOV,NIC。该vmx.sh脚本未了解多少 VF 将使用共享NIC。因此,您必须相应 sriov_numvfs 配置 。

该值可设置为在重新启动后永久使用,并可在重新启动后不永久更改的启动选项。

此示例中提供的过程是使用 sriov_numvfs /sys配置的临时解决方案 对 /sys/class/net/ interface-name /device/ 的任何设置都是非永久性的,因此配置不会在重新启动后继续运行。 sriov_numvfs

要NIC使用 SR-IOV,请完成以下步骤:

使用以下命令创建虚拟功能 (VF):

以下命令允许 4 个 VNF 对 SR-IOV 使用共享NIC ens8f1。您必须使用 sudo,或者需要作为 root 用户登录。

注意:

选项 sriov_numvfs 仅接受值 0-n,其中 n 是 SR-IOV 支持的最大 VF 数。

在启动时设置 SR-IOV

以下过程提供了一些替代方法来配置 SR-IOV,其中配置仍然会重新启动主机。

以下选项可用于在主机的启动过程中设置值:

  • 使用 rc.local

  • 设置调制选项

  • 使用 grub 设置内核 paramater

下例显示一种使用 sriov_numvfs grub 内核命令配置值的方法

您必须设置"intel_iommu=on"和 ixgbe.max_vfs= value

有关巨大页面的信息,请参阅 准备 Ubuntu 主机以安装 vMX

编辑文件"/etc/default/grub":

编辑后,更新以下更新:

编写新的启动加载程序以在下次重新启动时使更改处于活动状态。

重新启动主机以让设置处于活动状态。

验证sriov_numvfs设置

目的

要验证 sriov_numvfs 配置,请CLI。此示例中,与 SR-IOV NIC要求在 PCI 地址 85:00.0 时为 ens8f1。请注意输出中的"虚拟功能"。

行动

/sys/class/net/ens8f1/device/sriov_numvfs还包含所需的值 sriov_numvfs。

对于测试,sriov_numvfs直接编写 为 来快速更改 /sys/class/net/interface-name/device/sriov_numvfs

更改服务sriov_numvfs

我们建议提前sriov_numvfs创建 sriov_numvfs(例如:在启动时使用 grub 命令),因为在部署第 1 个使用给定 NIC 与 SR-IOV 的 vMX 实例之后,不允许更改 VF 编号。如果您必须更改 VF 的编号,则必须停止运行vMX。我们建议将sriov_numvfs选项设置为更高的值,以避免更改数字sriov_numvfs。

要更改 VF 的已配置值,必须先将该值更改为 0,然后再更改为所需的整数值。

如果未分配 VF,则 VF 数量可更改为任何有效值(0 - n,其中 n 是 SR-IOV 支持的最大 VF 数)

您必须执行以下步骤才能修改 VF 数量:

  1. 使用共享 SR-IOV 服务停止运行 VNF NIC。

  2. 将虚拟 Functor (VF) 编号设置为 0 ,以禁用 SR-IOV 网络适配器。

  3. 更改所需 VF 数(此示例使用六个)

    注意:

    如果显示以下错误消息,则首先将值设置为步骤 2 中所述的值,然后再执行步骤 3

  4. 使用以下命令验证您的配置:

重新启动服务vMX,对 SR-IOV 使用 vmx.conf 文件。

更新 VMX 配置文件 (vmx.conf) 参数

配置 vMX 所需的参数在启动配置文件中定义。配置文件采用 YAML 格式。默认文件为 config/vmx.conf 。您可以将配置文件保存为不同实例的不同名称。

要配置 SR-IOV 设备类型的接口,必须指定接口、NIC 和 MAC 地址。 表 1 提供了用于更改 vmx.conf 文件的配置参数的详细信息。

表 1:VMX配置文件参数

组件

VM 参数

描述

vPFE

device-type

用于使用 SR-IOV 的所有接口,或用于允许混合使用 sriov mixed SR-IOV 和非基于 SR-IOV 的接口。

use_native_drivers

设置为 true 允许使用主机的 Intel ixgbe 驱动程序(已下载且按以上步骤完成)

接口

type

如果 类型 设置为 sriov ,则 port-speed-mbpsnic 必须设置 。

port-speed-mbps

设置为 用于 10000 10GE NIC。

nic

要使用的接口的内核名称。

virtual-function

使用 0 此标准vMX实例设置为 NIC。确保使用此共享 1 vMX设置NIC第二个服务(等等)

mac-address

确保使用共享密钥的每个 VF NIC使用唯一或不同的MAC 地址。

示例 vmx.conf 文件:

开始 vmx-install

使用 Intel ixgbe 驱动程序所需的更改

当您尝试将现有部署从修改的 IXGBE 驱动程序移动到未修改的 IXGBE 驱动程序时,请在 Junos CLI 中进入编辑模式,并使用以下命令(使用"本机"驱动程序)。

有关详细信息,请参阅 修改和未修改的 IXGBE 驱动程序