在進行DPDK安裝之前需要先確認以下幾個方面的準備工作:
- 確認CPU支持VT-d以使用IOMMU內存管理技術,它不僅可以降低CPU的負載,還可以提升數據報文的處理性能。
- 檢查DPDK需要的環境依賴是否都已經安裝好了。
一、DPDK基礎知識
在進行DPDK的安裝之前,先簡單介紹一下DPDK的基礎知識。
DPDK是Data Plane Development Kit的縮寫,它是一個開源的、不依賴於特定CPU和操作系統的用戶空間數據平面框架,旨在通過使用I/O虛擬化技術和內存映射機制來提供對流水線、周期計數器和訪問NIC指令的直接訪問。DPDK被廣泛應用於網絡設備的高速數據包處理、虛擬化、雲計算等場景。
DPDK包括以下兩個組件:
- EAL(環境抽象層):是DPDK的核心模塊,提供了跨平台、可移植的內存管理、調度、中斷處理等功能。
- Packet Framework:是DPDK中對數據包進行處理的框架,包括PMD(driver)、mbuf、等模塊。
二、環境依賴
DPDK需要以下軟件包依賴:
- kernel-devel(與系統內核相應版本的開發頭文件和靜態代碼)
- numactl, numactl-devel (NUMA 預配置工具)
- gcc (編譯DPDK源碼)
- make (編譯DPDK源碼)
在安裝環境依賴的時候需要確認kernel版本是否和安裝的開發頭文件和靜態庫文件一致。
三、DPDK安裝
我們可以從官方網站中下載DPDK源碼,也可以從Github源代碼存儲庫下載,如下:
wget http://fast.dpdk.org/rel/dpdk-20.08.tar.xz tar -xf dpdk-20.08.tar.xz cd dpdk-20.08
然後進行配置和編譯:
make config T=x86_64-native-linuxapp-gcc make
make config命令用來進行一些額外的編譯參數設置,其中T參數用來設置編譯所使用的編譯器和目標平台的類型,如下表:
T參數 | 說明 |
---|---|
x86_64-native-linuxapp-gcc | 64位Linux應用程序編譯器 |
i686-native-linuxapp-gcc | 32位Linux應用程序編譯器 |
arm-native-linuxapp-gcc | ARM應用程序編譯器 |
完成編譯之後,需要設置大頁面並動態定義Hugepage的目錄和數量:
echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages mkdir -p /mnt/huge mount -t hugetlbfs nodev /mnt/huge
最後,需要加載DPDK設備驅動程序:
./app/test-pmd/linuxapp/kni/build/kni.ko ./app/test-pmd/linuxapp/igb_uio/igb_uio.ko
四、DPDK使用
啟動DPDK程序需要使用testpmd命令。以雙口,組播和抓包為例:
./app/test-pmd/testpmd -l 0-1 -n 4 -- --total-num-mbufs=256 --portmask=3 --enable-rx-cksum
其中-l參數用來指定使用哪些核心,-n參數用來指定使用的內存通道數,–total-num-mbufs參數用來指定存放數據包的mbuf總數,–portmask參數用來指定端口號,–enable-rx-cksum參數用來啟用包接收校驗和校驗。
以上就是DPDK安裝指南了,對於初次安裝者而言,配置DPDK的時間會有點長,但是只要有耐心並按照步驟逐一進行操作,最終還是可以安裝成功並投入生產應用的。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/270241.html