linux加载虚拟sriov网卡,如何配置BroadCOM网卡的SR-IOV功能
本案例中使用的服務器測試環境如下:
服務器:H3C R390X G2
操作系統:RHEL7.3
SR-IOV網卡型號:Brocadcom 530FLB (BCM57810芯片)
1.??? 首先在BIOS中開啟網卡的SR-IOV的支持
服務器開機自檢按ESC或DEL進入BIOS Setup,點擊Advanced -> 選中530FLR網卡。 默認Multi-Function Mode為SF,這里改成SR-IOV
2.?? ?操作系統中開啟IOMMU支持
執行dmesg | grep -i iommu看操作系統是否開啟了IOMMU支持,如果沒開啟,則編輯如下
# vi /etc/default/grub
...
GRUB_CMDLINE_LINUX="nofb splash=quiet console=tty0 intel_iommu=on
...
重新生成grub配置文件
#grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
#reboot
重啟后查看iommu啟動情況
#dmesg | grep -i iommu
則表示開啟成功
3.?? ?系統中查看網卡,我們使用的是BCM57810芯片的網卡(Broadcom)
查看網卡信息
4.?? ?開啟網卡的VF端口
注意:首先要確保端口是up狀態
#ifup ens9f0
查看sriov的端口數量
# cat /sys/class/net/ens9f0/device/sriov_numvfs
0
如果返回結果是0,表示沒有VF接口
5.?? ?開啟VF端口
# echo 8 > /sys/class/net/ens9f0/device/sriov_numvfs
備注:enable VF時,可能會報錯如下:
[? 641.704649] bnx2x 0000:03:00.0: not enough MMIO resources for SR-IOV
[? 641.704656] [bnx2x_enable_sriov:2514(ens9f0)]pci_enable_sriov failed with -12
上面的報錯通常是BIOS issue,可能是BIOS不支持 (The BIOS is not providing enough MMIO space for VFs)
參考文檔:https://access.redhat.com/solutions/37376
解決辦法: 在kernel中再加入一個參數pci=realloc
修改/etc/default/grub,在之前的iommu選項后,加入該參數
重新生成grub
#grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
#reboot
6.?? ?檢查VF開啟情況
經過剛剛的設置之后,再次執行下面的命令后,即可查看到VF port
# echo 8 > /sys/class/net/ens9f0/device/sriov_numvfs
# lspci | grep –i ethernet
# ip addr show
但是所有的mac地址都是00:00:00:00:00:00
根據Broadcom bnx2x driver的readme描述,這屬于正常情況
https://downloads.hpe.com/pub/softlib2/software1/pubsw-linux/p1050551721/v140545/README
Known issues/Limitations/Caveats
-----------------------------------
-The bnx2x driver now assigns all zeroes as the MAC address for SR-IOV virtual functions. Users need to manually configure valid MAC addresses for virtual functions using iproute2 or ifconfig methods
7.?? ?手動設置VF的MAC地址
# ip link show
先查看MAC地址
手動設置MAC地址
# ip link set enp3s1f1 addr 14:aa:bb:cc:dd:01
下面的腳本是為了實現自動化配置所有VF端口的命令
# counter=1; for i in $(ip a | grep enp3s1 | awk '{print $2;}' | tr -d ":"); do ip link set $i addr aa:bb:cc:dd:ee:$counter; ((counter++)); done
注意:需要適當修改enp3s1端口名稱為實際端口的名稱
總結
以上是生活随笔為你收集整理的linux加载虚拟sriov网卡,如何配置BroadCOM网卡的SR-IOV功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gitlab linux版本下载,Lin
- 下一篇: linux防火墙添加udp 123,ce