CentOS DPDK安裝

DPDK

安裝與踩雷

更新:新的一篇出來啦《DPDK簡單介紹》,建議直接看這個(gè)。距離這篇隔了挺久了,更新了點(diǎn)別的內(nèi)容,比這篇可能更與時(shí)俱進(jìn)一點(diǎn)吧?關(guān)于DPDK,我個(gè)人研究其實(shí)根本沒多少……以后再寫相關(guān)內(nèi)容可能就不知道猴年馬月去了

下面是好幾個(gè)月之前的內(nèi)容了,dpdk都出到19了,回頭新寫一篇CentOS + Ubuntu兩邊的貼在這,不過可能得五月底了,因?yàn)槲业綍r(shí)候如果交個(gè)論文上去查重查到自己寫的博客,那估計(jì)想死的心都有了……總之敬請期待

下面是原文:


最近由于在學(xué)校有相關(guān)課題,所以花時(shí)間下載安裝了一下dpdk

萬萬沒想到dpdk這技術(shù)出來也挺久了,但是各種相關(guān)內(nèi)容在網(wǎng)上實(shí)在不算很多,尤其是由于每個(gè)人配置不同,可能會碰到各種各樣詭異的問題

我在這里大概記錄一下我安裝使用dpdk的過程以及過程中踩的坑,希望能幫到后面安裝的人吧。

安裝

這里注一下轉(zhuǎn)載鏈接,我安裝過程大致是參考這這個(gè)博客來的,雖然這個(gè)人寫的看上去也很像轉(zhuǎn)的,我也懶的去找他轉(zhuǎn)的誰的了,好歹是解決了我的很多問題。

CentOS安裝DPDK

那么正式開始:


1. 介紹安裝步驟之前自然要先給出一下配置:

屬性 內(nèi)容
平臺 Linux
環(huán)境 vmware
系統(tǒng) CentOS 7
CPU 4核(2個(gè) * 2核)
內(nèi)存 4G
網(wǎng)卡配置 2個(gè)以上的虛擬網(wǎng)卡

內(nèi)存牽扯到大頁內(nèi)存分配的問題,所以最好是大一些,4G應(yīng)該足夠用了

CPU核數(shù)也會影響轉(zhuǎn)發(fā)效率等因素,所以最好有2核及以上

網(wǎng)絡(luò)接口由于要綁定IGB UIO,所以至少要有兩個(gè)


2. 下載解壓dpdk

有圖形化交互界面自然可以開瀏覽器上官網(wǎng)下,沒有的話就用wget命令吧

注:個(gè)人推薦下18.11,因?yàn)橐郧坝?6.07時(shí)遭遇了謎之bug……

上面是以前寫的,現(xiàn)在建議直接

git clone https://github.com/DPDK/dpdk.git

官網(wǎng)下載地址

wget http://fast.dpdk.org/rel/dpdk-18.11.tar.xz

下完了之后同樣,有桌面就點(diǎn)extract選個(gè)地方解壓,沒有的話

tar xf dpdk-18.11.tar.xz


3. 安裝支持dpdk所需的軟件等

來自我之前丟出來的博客:

配置 ifconfig:yum install net-tools.x86_64

安裝 gcc:yum –y install

安裝 gccc++:yum –y install gcc-c++
上面這玩意用不著,下面那個(gè)kernel-header實(shí)際上應(yīng)該也不需要

numactl-devel這個(gè)是需要的,視情況python也是需要的

安裝內(nèi)核文件: yum install –y kernel-devel kernel-headers

然后:yum install kernel.x86_64 -y

內(nèi)核文件不更新會出現(xiàn)挺麻煩的問題,如圖:

麻煩的問題

這個(gè)主要就是build文件里面指向的內(nèi)核路徑和目前的內(nèi)核頭文件不匹配(說實(shí)在的我也不是很懂),按理說更新過內(nèi)核頭文件就不會有問題,出了問題的話解決起來主要就是修改build文件的指向路徑,刪除鏈接之類的,自行Google吧。


4. 安裝dpdk

初學(xué)者的話個(gè)人推薦腳本安裝,反正我是初學(xué)者,所以就用腳本安裝了。

cd Downloads/dpdk-18.11/usertools

這路徑根據(jù)自己的安裝路徑自己改

./dpdk-setup.sh

跑之前記得開啟root權(quán)限,不然可能編譯不了

還有跑之前記得把ifconfig里面隨便關(guān)兩個(gè)接口,不關(guān)綁不上IGB UIO的

假設(shè)我的兩個(gè)虛擬網(wǎng)卡是ens33, ens37,那么

ifconfig ens 33 down

自己虛擬機(jī)里面要關(guān)哪個(gè)用 ifconfig 查看就是了

不down的后果

不down掉的話,綁定會告訴你ok,然而實(shí)際上真相是上面那個(gè)not modifying,也就是失敗了。

前面長這樣
后面長這樣

按照我給的這個(gè)圖,操作順序大概是15,18,22,24,即

build,插入IGB UIO模塊,分配大頁內(nèi)存以及把網(wǎng)絡(luò)接口綁到IGB UIO上

每次跑腳本都要全部跑一遍,最好按順序來。

不按順序的話

輸入15編譯時(shí)遭遇no numa.h

yum install numactl-devel即可

分配大頁內(nèi)存時(shí)可以先看看自己的系統(tǒng)是否是numa結(jié)構(gòu)

我查到的方法是可以# grep -i numa /var/log/dmesg看看結(jié)果就知道是不是了

不是的話,那就是No NUMA configuration found

分配大頁內(nèi)存時(shí)存在虛擬機(jī)大頁內(nèi)存為1G或者2MB的差別

這個(gè)google一下就有辨別方法了,講道理一般都是2MB

所以分配大頁內(nèi)存時(shí)最好至少輸入512,即512 * 2MB

不然……

不然死給你看咯

這個(gè)會在跑例程時(shí)跳出來搞你,解決辦法要么是大頁內(nèi)存開大點(diǎn),要么是虛擬機(jī)內(nèi)存開大點(diǎn)。


5. 如果到這里都還順利的話,可以跑28里面的歷程測試一下效果

注意事項(xiàng)和可能遭遇的問題都寫上面了,要是遇到我沒提到的,那愛莫能助了,google吧。

貼個(gè)testpmd運(yùn)行的結(jié)果:

結(jié)果

行啦,到這如果還沒出問題,那么dpdk安裝就算是圓滿完成了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容