PVE开启SR-IOV记录

本文详细指导如何在i58600T平台下配置华擎Z390主板的SR-IOV功能,涉及开启IOMMU、修改网卡参数、配置开机脚本及VF网卡管理,适合Proxmox VE 7.0-11用户。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CPU:i5 8600T

主板:华擎 Z390太极

网卡:富士通 I350-T4

系统版本:PROXMOX VE 7.0-11

一、打开IOMMU

打开 /etc/default/grub 文件,在GRUB_CMDLINE_LINUX_DEFAULT行添加以下内容

pci=assign-busses是因为部署SR IOV的时候报错”Cannot allocate memory“

参考”qemu中sriov试验 - 简书

GRUB_CMDLINE_LINUX_DEFAULT=" intel_iommu=on pci=assign-busses pcie_acs_override=downstream"

更新grub

update-grub

在/etc/modules文件里添加如下内容 

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

更新

update-initramfs -u -k all

重启

reboot

检查IOMMO功能是否开启

dmesg | grep -e DMAR -e IOMMU -e AMD-Vi

如果没有出现,那么在/etc/modprobe.d/的任意一个.conf文件中增加这些内容(不安全中断)

options vfio_iommu_type1 allow_unsafe_interrupts=1

二、测试SR-IOV网卡生成

可以先进行测试

譬如在 enp2s0f0 网卡上开4个VF

echo 4 > /sys/class/net/enp2s0f0/device/sriov_numvfs

成功不会有任何反馈,回到PVE节点网络查看网络列表是否有VF网卡出现,也可以使用

lspci

查看pci设备中是否有vf网卡

三、注册系统服务

首先创建启动脚本

cd /etc/systemd/system
vi sriov.service

 示例是在i350-T4(系统名称enp2s0)的0号和1号口上分别开5个vf网卡、固化MAC地址防止重启MAC随机变动并且设置所有PF和VF为UP状态

[Unit]
Description=Script to enable SR-IOV on boot
 
[Service]
Type=simple
#start SR-IOV
ExecStartPre=/usr/bin/bash -c '/usr/bin/echo 5 > /sys/class/net/enp2s0f0/device/sriov_numvfs'
ExecStartPre=/usr/bin/bash -c '/usr/bin/echo 5 > /sys/class/net/enp2s0f1/device/sriov_numvfs'
#set VF MAC
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set dev enp2s0f0 vf 0 mac 00:54:00:00:00:00'
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set dev enp2s0f0 vf 1 mac 00:54:00:00:00:01'
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set dev enp2s0f0 vf 2 mac 00:54:00:00:00:02'
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set dev enp2s0f0 vf 3 mac 00:54:00:00:00:03'
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set dev enp2s0f0 vf 4 mac 00:54:00:00:00:04'
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set dev enp2s0f1 vf 0 mac 00:54:00:00:01:00'
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set dev enp2s0f1 vf 1 mac 00:54:00:00:01:01'
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set dev enp2s0f1 vf 2 mac 00:54:00:00:01:02'
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set dev enp2s0f1 vf 3 mac 00:54:00:00:01:03'
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set dev enp2s0f1 vf 4 mac 00:54:00:00:01:04'
#set PF up
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set enp2s0f0 up'
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set enp2s0f1 up'
#set VF up
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set enp2s0f0v0 up'
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set enp2s0f0v1 up'
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set enp2s0f0v2 up'
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set enp2s0f0v3 up'
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set enp2s0f0v4 up'
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set enp2s0f1v0 up'
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set enp2s0f1v1 up'
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set enp2s0f1v2 up'
ExecStartPre=/usr/bin/bash -c '/usr/bin/ip link set enp2s0f1v3 up'
ExecStart=/usr/bin/bash -c '/usr/bin/ip link set enp2s0f1v4 up'
Restart=on-failure
 
[Install]
WantedBy=multi-user.target

 注册开机启动服务

systemctl daemon-reload
systemctl enable sriov.service

重启

reboot

四、备注地址线

使用命令

dmesg | grep enp*s*f*

查看对应PF和VF地址线,做好PVE界面里面的备注,这样就不容易搞混

好了,可以爽了~~ 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值