SR-IOV VF 网卡命名问题简单记录下

最近工作项目中通过 KVM + SR-IOV VF 来构建虚拟网关节点,在资源实施规划部署时需要对每个网络平面的网卡进行统一化的命名,具体形如
Domain Node NameAdmin Node Name 网卡都有统一的命名规范。

通过业务脚本实现对应网卡及 Slot 配置文件

通过 virsh atach 网卡。eg:

1
virsh attach-device ${NODE_NAME} ${XML_CONFIG} --config

为了保证生效识别到,最好通过 virsh shutdown ${NODE_NAME}virsh start ${NODE_NAME} 来拉起网卡。
由于时间问题,具体的环境已经没有这里就不做贴图了。

这个时候通过 ip a 能够发现识别到网卡,此时借鉴如下 How to Set a custom Interface Name With NetworkManager in Centos/RHEL 7 都不行。

通过自己的理解和调研,其实以上介绍的就是通过对 /etc/udev/rules.d 进行命名配置让 kennel 在系统启动引导阶段进行网卡重命名。

后面通过另外一种方式绕了一层:

  • 首先对原有 /etc/default/grub 配置文件进行配置, mv /etc/default/grub /etc/default/grub.bak
  • 配置 /etc/default/grub 内容:
1
2
3
4
5
6
7
8
9
10
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="ofconsole"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap net.ifnames=0 rhgb quiet" >> 添加 net.ifnames=0 重新生成网卡命名配置规范
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
GRUB_TERMINFO="terminfo -g 80x24 console"
GRUB_DISABLE_OS_PROBER=true
  • 生成启动文件 grub2-mkconfig -o /boot/grub2/grub.cfg
  • 重启虚机 reboot

通过 ip a 查看虚机网卡命名是否生效:
VF-Interface

对网卡进行配置

1
2
3
4
5
6
nmcli c add con-name ${C_NAME} type ethernet ifname ${IF_NAME} ipv4.address 172.18.1.67/26
nmcli c mod ${C_NAME} ipv4.method static
nmcli c mod ${C_NAME} connection.autoconnect yes
nmcli c mod ${C_NAME} 802-3-ethernet.mtu 9000
nmcli c mod ${C_NAME} ipv6.addr-gen-mode eui64
nmcli c up ${C_NAME}

由于之前将 Github 作为图床,怎么说呢,不可控性太多了,今天就用 oss 配置了下,后面迁移啥的也比较方便,还是专业的产品做专业的事情吧。