KVM 上的 vRR 支持单根 I/O 虚拟化 (SR-IOV) 接口类型。单根 I/O 虚拟化 (SR-IOV) 允许物理功能显示为多个独立的 vNIC。SR-IOV 允许设备(例如网络适配器)独立访问其各种硬件功能之间的资源。如果有支持 SR-IOV 的物理 NIC,可以将支持 SR-IOV 的 vNIC 或虚拟功能 (VF) 连接到 vRR 实例,以提高性能。
- 启用 SR-IOV 的 BIOS 要求;确保系统 BIOS 设置中已启用 Intel VT-d 或 AMDMU
- 适用于 KVM 的 VRR 上的 SR-IOV 需要以下 Intel NIC驱动程序:
- 使用 40G 端口和 i40e 驱动程序的 Intel X710 或 XL710
- 使用 10G 端口和 ixgbe 驱动程序的 Intel X520 或 X540
- Junos OS版本:
- 从 17.4 Junos OS版本开始,vRR 上将支持使用 Intel X710/XL710 NIC 的 40G 端口。
- 从 Junos OS 20.4R3 版开始,vRR 上支持带 Intel X520/X540 NIC 的 10G 端口。
- 使用 命令查找主机上的可用 NIC(lshw -businfo -c network设备)。
- 在下面的输出中:10G NIC 为 enp2s0f0 和 enp2s0f1
- 40G NIC 包括 enp4s0f0 和 enp4s0f1
root@vrr-host: lshw -businfo -c network
Bus info Device Class Description
========================================================
pci@0000:02:00.0 enp2s0f0 network 82599ES 10-Gigabit SFI/SFP+ Network Connection
pci@0000:02:00.1 enp2s0f1 network 82599ES 10-Gigabit SFI/SFP+ Network Connection
pci@0000:04:00.0 enp4s0f0 network Ethernet Controller XL710 for 40GbE QSFP+
pci@0000:04:00.1 enp4s0f1 network Ethernet Controller XL710 for 40GbE QSFP+
pci@0000:04:02.0 enp4s2 network Illegal Vendor ID
pci@0000:07:00.0 enp7s0f0 network I350 Gigabit Network Connection
pci@0000:07:00.1 enp7s0f1 network I350 Gigabit Network Connection
- 使用计划在 上配置 SR-IOV 的设备卸下主机上的任何虚拟机。
- 检查设备上支持的最大 VF 数(例如 enp2s0f0 和 enp4s0f0)
cat /sys/class/net/ enp4s0f0/device/sriov_totalvfs 63
- 配置设备上需要的 VF 数量
echo 2 > /sys/class/net/enp4s0f0/device/sriov_numvfs (as a root user)
- 验证是否使用 命令创建 lspci VF。您可看到与设备的以太网控制器对应的虚拟功能。
lspci | grep Ethernet
04:00.0 Ethernet controller: Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ (rev 02) - PF1
04:00.1 Ethernet controller: Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ (rev 02) - PF2
04:02.0 Ethernet controller: Intel Corporation XL710/X710 Virtual Function (rev 02) - VF1
04:0a.0 Ethernet controller: Intel Corporation XL710/X710 Virtual Function (rev 02) - VF2
- 更换网络设备的现有接口部分,以获取新 XML。确保管理设备条目保持为正确状态。
<interface type='hostdev' managed='yes'>
<mac address='30:b6:4f:60:f2:82'/> - the same as in a non-SR-IOV XML or pick a valid mac
<driver name='kvm'/>
<source>
<address type='pci' domain='0x0000' bus='0x04’ slot='0x00’ function='0x0'/> - get this value from lspci output for the VF - column 1 domain:bus:slot:function (domain is 0x0000 by default).
</source>
<alias name='hostdev0'/>
<address type='pci' domain='0x0000' bus='0x01' slot='0x01’ function='0x0'/> - keep the same as in the existing XML
</interface>
- 使用基于 SRIOV 的新接口启动 VRR 实例
- 最后,要检查在 vRR 中创建的 VF Junos,请在启动消息中执行 grep 以"重命名"。
root@device> show system boot-messages | grep renaming
re_vrr_ifd_rename: renaming ixv* -> em* - 10G (ixv*)
re_vrr_ifd_rename: renaming ixlv* -> em* - 40G (ixlv*)
re_vrr_ifd_rename: renaming vtnet* -> em* - Management