深度解析華云數(shù)據(jù)高速虛擬路由器解決方案
網(wǎng)絡(luò)是云平臺(tái)建設(shè)與運(yùn)行中最為關(guān)鍵的基礎(chǔ)架構(gòu)資源,業(yè)務(wù)穩(wěn)定與高效運(yùn)行離不開高速穩(wěn)定的網(wǎng)絡(luò)數(shù)據(jù)包處理能力,因此作為網(wǎng)絡(luò)中的核心組件,路由器的設(shè)計(jì)方案至關(guān)重要。
華云數(shù)據(jù)作為國(guó)內(nèi)領(lǐng)先的云計(jì)算服務(wù)提供商,自研了華云高速虛擬路由器,其是業(yè)界***個(gè)基于fd.io/VPP技術(shù)的虛擬路由解決方案。在相同的硬件條件下,能夠提供比普通虛擬路由方案高八倍的性能。華云高速虛擬路由器還支持集群方式工作,集群中多個(gè)服務(wù)器可以同時(shí)對(duì)外提供服務(wù)。比原有的主備方式不僅提高了性能,也增加了整體的可靠性。這個(gè)技術(shù)幫助華云的公有云平臺(tái)打造了一個(gè)大容量,低延遲的基礎(chǔ)網(wǎng)絡(luò),也給了需要高質(zhì)量網(wǎng)絡(luò)的私有云客戶一個(gè)好的方案選擇。
VPP技術(shù)是思科和英特爾等公司共同推出的一個(gè)通信程序開發(fā)平臺(tái),是思科的路由技術(shù)和英特爾的DPDK用戶空間網(wǎng)絡(luò)技術(shù)的一次***結(jié)合。

圖一:vpp在網(wǎng)絡(luò)應(yīng)用中的位置
近年來(lái),隨著半導(dǎo)體和多核計(jì)算機(jī)體系架構(gòu)技術(shù)的不斷創(chuàng)新和市場(chǎng)的發(fā)展,越來(lái)越多的網(wǎng)絡(luò)設(shè)備基礎(chǔ)架構(gòu)開始向基于通用處理器平臺(tái)的架構(gòu)方向融合,期望用更低的成本和更短的產(chǎn)品開發(fā)周期來(lái)提供多樣的網(wǎng)絡(luò)單元和豐富的功能,如應(yīng)用處理、控制處理、包處理、信號(hào)處理等。為了適應(yīng)這一新的產(chǎn)業(yè)趨勢(shì),英特爾公司聯(lián)合第三方軟件開發(fā)公司及時(shí)推出了基于Intel?x86架構(gòu)DPDK (Data Plane Development Kit,數(shù)據(jù)平面開發(fā)套件) 實(shí)現(xiàn)了高效靈活的包處理解決方案。
在專業(yè)的通信網(wǎng)絡(luò)系統(tǒng)中,高速數(shù)據(jù)進(jìn)出速率是衡量系統(tǒng)性能的關(guān)鍵指標(biāo)之一。大多通信系統(tǒng)是基于Linux的定制系統(tǒng),在保證實(shí)時(shí)性的嵌入式開發(fā)環(huán)境中開發(fā)出用戶態(tài)下的程序完成系統(tǒng)功能。利用DPDK的高速報(bào)文吞吐優(yōu)勢(shì),對(duì)接運(yùn)行在Linux用戶態(tài)的程序,對(duì)成本降低,和硬件通用化有很大的好處,使得以軟件為主體的網(wǎng)絡(luò)設(shè)備成為可能。這些基于DPDK的以軟件為主體的網(wǎng)絡(luò)應(yīng)用中,VPP是***的,也是目前看來(lái)最有潛力。
VPP的全稱是向量包處理引擎(Vector Packet Processing)。思科公司從2002年就開始積極研發(fā)這個(gè)技術(shù),并且已經(jīng)使用到他們的商業(yè)虛擬路由器產(chǎn)品中。從2016年起,思科公司將這個(gè)技術(shù)和英特爾的DPDK技術(shù)相結(jié)合,一起開源在fd.io基金會(huì)的名義下。基于思科成熟的路由技術(shù),VPP平臺(tái)比其他的同樣基于DPDK技術(shù)的其它方案能有更高的性能,更靈活的機(jī)制。

圖二:vpp 與 OVSDPDK性能對(duì)比
圖三是一個(gè)典型的云環(huán)境的示意圖,分為控制,計(jì)算和網(wǎng)絡(luò)三種服務(wù)節(jié)點(diǎn)。在傳統(tǒng)的網(wǎng)絡(luò)構(gòu)架中,普通數(shù)據(jù)中心使用的還是Linux內(nèi)核態(tài)技術(shù)。而內(nèi)核態(tài)網(wǎng)絡(luò)技術(shù)由于自身定位原因有著根本性的性能問(wèn)題。結(jié)合在計(jì)算節(jié)點(diǎn)上使用ovs-dpdk,華云將大部分網(wǎng)絡(luò)功能從kernel空間移到了高速的用戶空間。這樣,用戶的數(shù)據(jù)從虛擬機(jī)出來(lái)后直接通過(guò)用戶態(tài)的ovs-dpdk直接傳輸?shù)骄W(wǎng)卡,到網(wǎng)絡(luò)節(jié)點(diǎn)后則從網(wǎng)卡直接到高速虛擬路由器。整個(gè)過(guò)程中都不會(huì)經(jīng)過(guò)低速的內(nèi)核,提高了吞吐率的同時(shí),也極大的減少了網(wǎng)絡(luò)延時(shí)。這種性能的提高,不管是在華云的公有云或私有云方案實(shí)踐中,都對(duì)客戶的業(yè)務(wù)產(chǎn)生了良好的效果。

圖三:網(wǎng)絡(luò)功能從kernel空間移到高速的用戶空間
在實(shí)際路由測(cè)試中,單節(jié)點(diǎn)模式下使用4個(gè)cpu線程就能達(dá)到10Gbps的小包線速,而多節(jié)點(diǎn)集群下則能提供更高的性能,具體測(cè)試環(huán)境和數(shù)據(jù)如圖四所示。

圖四:測(cè)試環(huán)境和性能對(duì)比
基于華云在云計(jì)算方面的豐富經(jīng)驗(yàn)和強(qiáng)大的技術(shù)開發(fā)能力,在VPP推出后半年左右便成功地應(yīng)用在華云公有云平臺(tái)及私有云產(chǎn)品中,與典型的虛擬網(wǎng)絡(luò)相比,數(shù)據(jù)包處理能力有了質(zhì)的飛躍,極大的提升了網(wǎng)絡(luò)性能,讓平臺(tái)中業(yè)務(wù)運(yùn)行表現(xiàn)更為高效,以實(shí)現(xiàn)華云用戶更好的使用體驗(yàn)。