1. 程式人生 > 其它 >Ubuntu系統開啟Intel千兆網絡卡SR-IOV

Ubuntu系統開啟Intel千兆網絡卡SR-IOV

技術標籤:PCIepci-esr-iov

  1. 將網絡卡插在主機板上。

  2. BIOS中開啟CPU虛擬化支援(Intel VT-d或者AMD AMD-Vi)

    在我測試的PC中,進入BIOS介面後,依次選擇Advanced->CPU Setup進入CPU配置介面,然後將該介面下的Intel Virtual TechnologyVT-d Feature設定為Enabled。網上有人說BIOS中還需要開啟SR-IOV選項卡,但是在我的機器上沒找到。

  3. 儲存BIOS配置,重啟PC進入Ubuntu 18.04系統。

  4. 安裝libvirt,並檢視是否開啟相關服務。

    # 安裝
    sudo apt-get
    install libvirt-dev libvirt-daemon libvirt-clients libvirt-bin # 檢視服務是否開啟 sudo systemctl is-active libvirtd
  5. 開啟iommu

    # 檢視在/proc/cmdline中是否有intel_iommu=on
    cat /proc/cmdline
    
    # 如果沒有,則修改/etc/default/grub檔案
    sudo vim /etc/default/grub
    

    /etc/default/grub中查詢GRUB_CMDLINE_LINUX=""字樣,在其中新增intel_iommmu=on iommu=pt pci=assign-busses

    ,儲存退出。

    # 執行命令使/etc/default/grub檔案生效
    sudo update-grub
    

    重啟PC,檢視iommu是否成功開啟。

    # 重啟系統
    sudo reboot
    
    # 檢視在/proc/cmdline中是否有intel_iommu=on
    cat /proc/cmdline
    
    # 檢視啟動過程中是否有iommu開啟的資訊
    dmesg | grep -e DMAR -e IOMMU
    
  6. 執行ifconfig指令確認Intel網絡卡的名字,比如我的網絡卡是enp1s0f0

  7. 切換到網絡卡配置目錄:

    cd /sys/class/net/enp1s0f0/device/
    
  8. 變更sriov_numvfs檔案的屬性:

    sudo chmod 666 sriov_numvfs
    
  9. 確定該網絡卡最大能支援幾個VF:

    cat sriov_totalvfs
    
  10. 開啟SR-IOV(注意,配置的VF數量要小於等於剛才sriov_totalvfs的值)

    echo '7' > sriov_numvfs
    
  11. 執行lspci命令,檢視是否開啟。

    lspci