DPDK (1) - PMD驱动方案
為了支持Userspace IO,DPDK可以選擇如下三種類型的驅動:
- uio_pci_generic
- uio + igb_uio
- vfio-pci
uio_pci_generic是內核原生的一種uio驅動,該驅動提供了uio功能,直接使用如下命令加載:
sudo modprobe uio_pci_generic這個原生驅動是不支持VF設備創建的,因此DPDK也提供了另外一種uio驅動igb_uio,它是可以用于宿主機上來創建VF設備的。適用性比內核原生的uio_pci_generic更強一些,其中igb_uio.ko是由dpdk代碼庫編譯出來的:
sudo modprobe uio sudo insmod kmod/igb_uio.ko從DPDK release 1.7開始,DPDK對VFIO進行了支持,因此VFIO Driver成了新的可選項:
sudo modprobe vfio-pci當DPDK使用vfio來實現網絡功能時可以直接加載該驅動。
特別注意:
對于使用VFIO驅動來使用DPDK的場景,必須保證:
1.硬件上支持支持VT-x、VT-d,BIOS中需要打開相關特性
2.對于物理機的內核中需要支持IOMMU特性(在啟動參數添加 iommu=pt, intel_iommu=on)
物理機上使用DPDK
在物理機上使用DPDK,需要內核中加載DPDK PMD Driver,那么需要使用如下命令加載DPDK的驅動:
modprobe uio insmod igb_uio usertools/dpdk-devbind.py --bind=igb_uio bb:ss.f當然這里我們也可以使用上面介紹過的其他類型的內核模塊:uio_pci_generic 或者 vfio-pci 。
虛擬機中使用DPDK
對于支持SR-IOV的網卡來說,比如Intel的X710/XL710網卡,在虛擬化的環境中使用,網卡可以進行透傳,本文以透傳的方式來進行實踐介紹,對于支持SR-IOV的網卡來說,它分為PF和VF模塊,在宿主機中需要加載對應的PF Driver和VF Driver來驅動這兩個子模塊。
宿主機
在宿主機上可以直接使用Linux kernel官方的intel PF驅動,比如i40e,也可以使用DPDK專用的 PMD PF驅動。如果使用了DPDK PMD PF 驅動,那么這個宿主機網絡的管理權就完全交給DPDK了。
- 方案一:i40e驅動
通過重新加載intel提供的i40e驅動,并指定max_vfs參數來創建VF功能,對于該網卡的VF功能內核默認使用的驅動為i40evf,因此在使用dpdk之前,還需要在Host上將VF與i40evf驅動解綁,重新綁定到vfio-pci驅動上:
modprobe vfio-pci宿主機中需要使用vfio_pci這個內核模塊來對需要分配給客戶機的設備進行隱藏, 從而讓宿主機和未被分配該設備的客戶機都無法使用該設備, 達到隔離和安全使用的目的。而在客戶機不需要使用該設備后, 讓宿主機使用該設備, 則需要將其恢復到使用原本的驅動。
這里也可以利用DPDK提供的腳本dpdk_bind_nic.py來設置:
usertools/dpdk-devbind.py --bind=vfio-pci bb:ss.f此時該VF已經由vfio驅動接管,對于上一章介紹的,如果在宿主機上使用VFIO DPDK,那么此時就已經滿足了條件,但是我們此處是為了演示虛擬機中使用DPDK,所以此時不能啟動DPDK去使用該VF,而需要在虛擬機中透傳該設備來使用。
- 方案二:DPDK PMD PF驅動
需要內核啟動參數中使能iommu=pt, intel_iommu=on,然后啟動后加載DPDK驅動:
modprobe uio insmod kmod/igb_uio.ko usertools/dpdk-devbind.py --bind=igb_uio bb:ss.f echo 2 > /sys/bus/pci/devices/0000\:bb\:ss.f/max_vfs (To enable two VFs on a specific PCI device)虛擬機
對于虛擬機來說,透傳過來的VFIO網卡對于虛擬機來說就相當于是一個常規的物理網卡,默認就會使用該物理網卡對應的驅動,比如i40e driver,那么如果要在虛擬機中使用DPDK,就需要把虛擬網卡重新綁定到igb_uio驅動,這樣就可以在虛擬機中使用DPDK了。實際上操作還是與宿主機中一樣:
modprobe uio insmod kmod/igb_uio.ko usertools/dpdk-devbind.py --bind=igb_uio bb:ss.f總結
以上是生活随笔為你收集整理的DPDK (1) - PMD驱动方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 银行卡号自动识别,包括银行名称、英文缩写
- 下一篇: 电脑重启桌面 计算机图标消失,电脑重启桌