嘘~ 正在从服务器偷取页面 . . .

ThinkSystem服务器配置SR-IOV简介


本文以一个来自客户的配置实例来简单介绍如何在ThinkSystem上启用并正确配置SR-IOV功能。关于什么是SR-IOV这里就不做过多介绍了,网上可以搜索到很多详细的介绍。

需求背景

客户在ThinkSystem服务器上使用的网卡为Intel X710-DA2双口万兆网卡,操作系统为CentOS7。如下图所示,需要启用两张网卡的SR-IOV功能。然后对PF和VF做bonding配置,再将bonding接口分配给容器或虚拟机使用。

Bonding模式为Mode=2(balance-xor) 表示XOR Hash负载分担,和交换机的聚合强制不协商方式配合。(需要xmit_hash_policy)。

服务器硬件配置步骤

1.开机按F1进入到uEFI配置界面, 依次进入“System Settings –Network – Network Device list。

2.选择需要启用SR-IOV功能的网卡,这里选择”x710”,点击进入“Device level configuration”。

3.将Virtualization Mode的设置由”None” 修改为”SR-IOV”。

4.然后保存退出。如果设置比较多,可以采取批量修改uEFI设置的方来进行修改。

操作系统配置步骤

1.修我以为GRUB配置文件,启用IOMMU kernel支持,也就是在操作系统内核中启用IOMMU。如下图所示,在/etc/default/grub中添加“intel_iommu=on” 和 “iommu=pt”。

2.重新生成配置文件并重启服务器使其生效。

[root@localhost ~]# grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

Generating grub configuration file …
Found linux image: /boot/vmlinuz-3.10.0-862.el7.x86_64
Found initrd image: /boot initramfs-3.10.0-862.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-1c036995948542bd901f9a7f2e21ed0b
Found initrd image: /boot/initramfs-0-rescue-1c036995948542bd901f9a7f2e21ed0b.img
done

3.在网卡上启用VF并且设置成永久配置。例如这里在网络接口ens2f0上启用了一个VF,并将其设置为永久配置,否由OS重启后VF配置会丢失。

# echo 1 > /sys/class/net/ens2f0/device/sriov_numvfs
# chmod +x /etc/rc.d/rc.local
# echo "echo 1 > /sys/class/net/ens2f0/device/sriov_numvfs" >> /etc/rc.local

注意:
对于些比较旧的OS kernel版本, 需要使用以下方法来启用VF,这种方法将在所有可用的端口上启用VF。

# modprobe igb max_vfs=1
# echo "options igb max_vfs=1" >>/etc/modprobe.d/i40e.conf
# grubby --update-kernel=ALL --args="intel_iommu=pt i40e.max_vfs=1“
# grub2-mkconfig -o /boot/grub2/grub.cfg

4.最后就是配置bonding或teaming,如下图可以看到ens2f0和ens3f0是PF并组成一个bond接口。enp47s2和enp7s2是VF并组成一个bond接口。


文章作者: kclouder
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 kclouder !
  目录