Truenas scale开启X710网卡SR-IOV

·

方法一、使用Truenas开机脚本

编写脚本文件

#!/bin/bash

# 定义变量
INTERFACE="enp3s0f0"
NUM_VFS=8

# 检查并启用SRIOV
echo $NUM_VFS > /sys/class/net/$INTERFACE/device/sriov_numvfs || { echo "Failed to enable SRIOV"; exit 1; }

# 设置VF的MAC地址
for ((i=0; i<$NUM_VFS; i++)); do
  MAC_ADDR="54:13:10:cf:00:$i"
  ip link set dev $INTERFACE vf $i trust on mac $MAC_ADDR spoofchk off || { echo "Failed to set MAC address for VF $i"; exit 1; }
done

echo "SRIOV enabled and VF MAC addresses set successfully."

设置脚本开机执行

方法二、添加系统开机脚本

文件路径

/etc/init.d/net-sriov

该文件会在Truenas Scale更新后被系统删除,所以该开启SR-IOV的方法会在Truenas Scale更新后失效。

文件内容

#! /bin/sh
### BEGIN INIT INFO
# Provides:          sriov_script
# Required-Start:    $network $named $remote_fs $syslog $sriov_scripts
# Required-Stop:     $remote_fs $sriov_scripts
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: SR-IOV initialization.
#Description:       Initializing VM's network with sriov support.
### END INIT INFO

start () {
    # enable SRIOV
    echo 8 > /sys/class/net/enp3s0f0/device/sriov_numvfs


    # set up mac addresses
    ip link set dev enp3s0f0 vf 0 trust on mac 54:13:10:cf:00:00 spoofchk off
    ip link set dev enp3s0f0 vf 1 trust on mac 54:13:10:cf:00:01 spoofchk off
    ip link set dev enp3s0f0 vf 2 trust on mac 54:13:10:cf:00:02 spoofchk off
    ip link set dev enp3s0f0 vf 3 trust on mac 54:13:10:cf:00:03 spoofchk off
    ip link set dev enp3s0f0 vf 4 trust on mac 54:13:10:cf:00:04 spoofchk off
    ip link set dev enp3s0f0 vf 5 trust on mac 54:13:10:cf:00:05 spoofchk off
    ip link set dev enp3s0f0 vf 6 trust on mac 54:13:10:cf:00:06 spoofchk off
    ip link set dev enp3s0f0 vf 7 trust on mac 54:13:10:cf:00:07 spoofchk off

}

stop () {
    [ "$READ_INTERFACES" != "no" ] && network_interfaces ifdown
}

case $1 in
    start)
        start
        ;;
    stop | force-stop)
        stop
        ;;
    *)
        echo "Usage: $0 {start|stop}" >&2
        exit 1
        ;;
esac

exit 0

修改换行符

如果是在Windows中创建的脚本文件,切记修改文件换行符为UNIX、Linux形式。

相关命令简介

查看网卡列表

lspci | grep Eth

查看SR-IOV虚拟网卡最大数量

cat /sys/bus/pci/devices/0000:03:00.0/sriov_totalvfs

查看当前启用的虚拟网卡数量

cat /sys/bus/pci/devices/0000:03:00.0/sriov_numvfs

将数字写入这个文件即可生成相应数量的虚拟网卡,但系统重启后虚拟网卡消失且文件内容归0。

给开机脚本添加执行权限

chmod +x /etc/init.d/net-sriov

启用服务

systemctl enable net-sriov

一些命令截图

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注