1/3
2/3
3/3
PVE 7.x-8.x Proxmox VE 7 8 网卡 Sriov 开启 保姆级教程
去采梦
编辑于 2024年05月08日 21:45
收录于文集
共1篇

  • 使用vi命令或Finalshell等工具编辑 /etc/default/grub,在 GRUB_CMDLINE_LINUX_DEFAULT这一行后面根据所使用的平台加上相应命令。Intel平台:

代码块
JavaScript
自动换行
复制代码
intel_iommu=on iommu=pt
复制成功

      AMD平台:

代码块
JavaScript
自动换行
复制代码
amd_iommu=on iommu=pt
复制成功

编辑 /etc/default/grub

完成后在控制台输入:

代码块
JavaScript
自动换行
复制代码
update-grub
复制成功

cut-off

二、 添加如下vfio modules 到 /etc/modules:

代码块
JavaScript
自动换行
复制代码
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
复制成功

添加vfio modules 到 /etc/modules

完成后控制台输入:

代码块
JavaScript
自动换行
复制代码
update-initramfs -u -k all
复制成功
  • 重启PVE宿主机

cut-off

三、查看网卡是否支持SRIOV

部份寨卡日常作为物理机或软路由不使用虚拟化等功能时可能跟原厂卡没什么区别,但涉及到虚拟化等应用场景时便会发现可能有各种各样的小问题,我这有一块i350的寨卡就无法支持Sriov功能,那么如何查看自己的网卡是否支持Sriov?

(一)在控制台中输入:

代码块
JavaScript
自动换行
复制代码
lspci | grep -i eth    
复制成功

以查看网卡Businfo信息

查看网卡Businfo

根据对应Businfo输入:

代码块
JavaScript
自动换行
复制代码
lspci -s 01:00.0 -v
复制成功

查看对应网卡

输出内容有SR-IOV相关则表示该网卡支持开启SRIOV功能

(二)还可以通过输入

代码块
JavaScript
自动换行
复制代码
cat /sys/class/net/enp33s0f3p3/device/sriov_totalvfs
复制成功

    以查看对应网卡支持的最大VF数量(enp33s0f3p3需改为你自己需要查看的网卡名,网卡少的可以在网页后台network里看,多的话输入ethtool -i enp33s0f3np3     根据输出的bus-info确认)

Bus-info对应网卡名称

代码块
JavaScript
自动换行
复制代码
cat /sys/class/net/enp33s0f3p3/device/sriov_numvfs 
复制成功

 查看对应网卡已开启的VF数量

cut-off

四、开启网卡SR-IOV

控制台输入命令:

代码块
JavaScript
自动换行
复制代码
echo 7 > /sys/class/net/enp33s0f3p3/device/sriov_numvfs   临时开启VF
复制成功

之后在刷新PVE网页后台---network查看是否多了对应的VF,或者可以在控制台输入

ip link show  查看VF接口开启情况

VF生成

确认VF网口正常启用后,在/etc/systemd/system 新建一个名为sriov-nic.service的文件,在文件内添加以下内容:

代码块
JavaScript
自动换行
复制代码
[Unit]
Description=Script to enable SR-IOV on boot

[Service]
Type=oneshot

# Starting SR-IOV-1
ExecStart=/usr/bin/bash -c '/usr/bin/echo 10 > /sys/class/net/enp33s0f3np3/device/sriov_numvfs'
#Setting static MAC for VFs-1
ExecStart=/usr/bin/bash -c '/usr/bin/ip link set enp33s0f3np3 vf 0 mac 88:6b:e6:50:2c:a1'
ExecStart=/usr/bin/bash -c '/usr/bin/ip link set enp33s0f3np3 vf 1 mac 88:6b:e6:50:2c:a2'
ExecStart=/usr/bin/bash -c '/usr/bin/ip link set enp33s0f3np3 vf 2 mac 88:6b:e6:50:2c:a3'
ExecStart=/usr/bin/bash -c '/usr/bin/ip link set enp33s0f3np3 vf 3 mac 88:6b:e6:50:2c:a4'
ExecStart=/usr/bin/bash -c '/usr/bin/ip link set enp33s0f3np3 vf 4 mac 88:6b:e6:50:2c:a5'
ExecStart=/usr/bin/bash -c '/usr/bin/ip link set enp33s0f3np3 vf 5 mac 88:6b:e6:50:2c:a6'
ExecStart=/usr/bin/bash -c '/usr/bin/ip link set enp33s0f3np3 vf 6 mac 88:6b:e6:50:2c:a7'
ExecStart=/usr/bin/bash -c '/usr/bin/ip link set enp33s0f3np3 vf 7 mac 88:6b:e6:50:2c:a8'
ExecStart=/usr/bin/bash -c '/usr/bin/ip link set enp33s0f3np3 vf 8 mac 88:6b:e6:50:2c:a9'
ExecStart=/usr/bin/bash -c '/usr/bin/ip link set enp33s0f3np3 vf 9 mac 88:6b:e6:50:2c:b1'

[Install]
WantedBy=multi-user.target
复制成功

/etc/systemd/system新建sriov-nic.service

cut-off

ExecStart=/usr/bin/bash -c '/usr/bin/echo 10 > /sys/class/net/enp33s0f3np3/device/sriov_numvfs' 这里的10根据需要开启的网口数量修改,一般千兆卡最大就是8,我这是万兆的卡支持到32,按需修改。每个VF后的mac 88:6b:e6:50:2c:a1 可以删掉,我这样设置是为了固定MAC地址,方便识别。

      

cut-off

      

网页端显示的VF网口

配置修改好该文件后便可重启PVE宿主机,仍然用之前的方式查看是否正常生成对应的VF网口,有的话就成功了,在网页后台分配对应的VF网口到虚拟机便可使用,部份网卡可能需要安装驱动。