1、DPDK?背景介紹
隨著芯片技術(shù)與高速網(wǎng)絡(luò)接口技術(shù)的一日千里式發(fā)展,報(bào)文吞吐需要處?理10Gbps?端口處理能力,世面上大量的?25G、?40G?甚至100G?高速端口已經(jīng)出現(xiàn),主流處理器的主頻仍停留在?3GHz?左右。
IO?超越?CPU?的運(yùn)行速率,是橫在行業(yè)面前的技術(shù)挑戰(zhàn)。2009?年開始,以?Venky?Venkastraen,Walter?Gilmore,Mike?Lynch為核心的?Intel?團(tuán)隊(duì),?開始了可行性研究,?希望借助軟件技術(shù)來(lái)實(shí)現(xiàn),很快他們?nèi)〉昧艘欢ǖ募夹g(shù)?突破,設(shè)計(jì)了運(yùn)行在?Linux?用戶態(tài)的網(wǎng)卡程序架構(gòu)。隨后,?Intel與?6wind 進(jìn)行了更進(jìn)一步的合作,共同交付了早期的?DPDK?軟件開發(fā)包。2011?年開始,??6wind、Windriver、Tieto、Radisys?先后宣布了對(duì)?Intel?DPDK?的商業(yè)服務(wù)?支持。Intel?起初只是將?DPDK以源代碼方式分享給少量客戶,作為評(píng)估IA 平臺(tái)和硬件性能的軟件服務(wù)模塊,?隨著時(shí)間推移與行業(yè)的大幅度接受,?2013?年Intel?將?DPDK?這一軟件以?BSD?開源方式,分享在Intel的網(wǎng)站上,供開發(fā)者免費(fèi)下載。
2013?年?4 月, 6wind?聯(lián)合其他開發(fā)者成立了?www.dpdk.org的開源社區(qū),?DPDK?走上?了開?源的大道?。DPDK?在?代碼開?源?后,?任何開發(fā)?者被?允?許通?過(guò)?www.dpdk.org?提交代碼,隨著開發(fā)者社區(qū)進(jìn)一步擴(kuò)大,Intel?持續(xù)加大了在?開源社區(qū)的投入,?同時(shí)在?NFV?浪潮下,越來(lái)越多的公司和個(gè)人開發(fā)者加入了?這一社區(qū),比如?Brocade,Cisco,RedHat,?VMWARE,?IBM,他們不再只是?DPDK 的消費(fèi)者,角色向生產(chǎn)者轉(zhuǎn)變,開始提供代碼,對(duì)DPDK的代碼進(jìn)行優(yōu)化,??整理。起初?DPDK完全專注于Intel的服務(wù)器平臺(tái)技術(shù),專注于利用處理器與芯片組高級(jí)特性,?支持?Intel 的網(wǎng)卡產(chǎn)品線系列。
DPDK?2.1 版本在 2015 年 8 月發(fā)布,?幾乎所有行業(yè)主流的網(wǎng)卡設(shè)備商都已經(jīng)加入了?DPDK?社區(qū),?提供源代碼級(jí)別支持。例如?Emulex?收購(gòu)的?Broadcom 網(wǎng)卡,Mellanox,Chelsio以及Cisco等等。另外除了支持通用網(wǎng)卡之外,能否將DPDK應(yīng)用在特別的加速芯片上,是一個(gè)有趣的話題,有很多工作在進(jìn)行中,?Intel?最新提交了用于?Crypto?設(shè)備的接口設(shè)計(jì)接口?,可以利用類似?Intel的QuickAssit的硬件加速單元,?實(shí)現(xiàn)一個(gè)針對(duì)數(shù)據(jù)包加解密與壓縮處理的軟件接口。
在多架構(gòu)支持方面,?DPDK社區(qū)也取得了很大的進(jìn)展,?IBM中國(guó)研究院的?祝超博士,啟動(dòng)了將?DPDK?移植到?Power?體系架構(gòu)的工作,F(xiàn)reescale的中?國(guó)開發(fā)者也參與修改,Tilera與Ezchip的工程師也花了不少精力將DPDK?運(yùn)行在?Tile?架構(gòu)下。很快?DPDK?從單一的基于?Intel?平臺(tái)為基石的軟件,?逐?步演變成一個(gè)相對(duì)完整的生態(tài)系統(tǒng),?覆蓋了多個(gè)處理器,?多個(gè)以太網(wǎng)和硬件加速技術(shù)。
在?Linux?社區(qū)融合方面,?DPDK?也開始和一些主流的?Linux?社區(qū)合作,并?得到了越來(lái)越多的響應(yīng)。作為L(zhǎng)inux?社區(qū)最主要的貢獻(xiàn)者之一RedHat,嘗?試了在?Fedora?Linux?集成了?DPDK;接著Redhat?Enterprise?Linux在安裝?庫(kù)里也加入DPDK支持,用戶可以自動(dòng)下載安裝DPDK擴(kuò)展庫(kù)。Redhat?工程?師還嘗試了將?DPDK與?Container?集成測(cè)試,?公開發(fā)布了運(yùn)行結(jié)果。傳統(tǒng)虛?擬化的領(lǐng)導(dǎo)者?VMWARE?的工程師也加入了?DPDK?社區(qū),負(fù)責(zé)?VMXNET3-PMD?模塊的維護(hù)。?Canonical?在?Ubuntu?15 中加入了?DPDK 的支持。