騰訊云專家工程師首次揭秘下一代虛擬網(wǎng)絡(luò)架構(gòu)

來源:知乎
作者:騰訊開發(fā)者
時間:2020-07-28
2610
無時不刻產(chǎn)生的數(shù)據(jù)洪流,對云的網(wǎng)絡(luò)架構(gòu)和處理數(shù)據(jù)的能力提出了新的需求,為了滿足這些需求,下一代虛擬網(wǎng)絡(luò)技術(shù)路在何方?在探討這個問題之前,我們以騰訊云數(shù)據(jù)中心網(wǎng)絡(luò)為例,介紹一下它的技術(shù)發(fā)展脈絡(luò)。

導(dǎo)讀

5G的商用以及IoT、AI等技術(shù)的成熟推動著云技術(shù)的發(fā)展。無時不刻產(chǎn)生的數(shù)據(jù)洪流,對云的網(wǎng)絡(luò)架構(gòu)和處理數(shù)據(jù)的能力提出了新的需求,為了滿足這些需求,下一代虛擬網(wǎng)絡(luò)技術(shù)路在何方?在探討這個問題之前,我們以騰訊云數(shù)據(jù)中心網(wǎng)絡(luò)為例,介紹一下它的技術(shù)發(fā)展脈絡(luò)。

一.騰訊云數(shù)據(jù)中心網(wǎng)絡(luò)的技術(shù)發(fā)展脈絡(luò)

1.從千兆到萬兆:2014年,騰訊公有云服務(wù)器接入帶寬從千兆邁入了萬兆。

2.從萬兆到25G:2017年,騰訊公有云服務(wù)器接入帶寬從萬兆向25G轉(zhuǎn)變,這種轉(zhuǎn)變主要來自于業(yè)務(wù)對網(wǎng)絡(luò)吞吐的性能訴求。

3.從25G到50-100G:未來的1~2年,公有云服務(wù)器接入帶寬將全面向100G轉(zhuǎn)變。高密計算(單臺虛擬化服務(wù)器的CPU核數(shù)越來越多)、高密存儲(單臺存儲服務(wù)器的盤數(shù)和磁盤容量越來越高)、AI、HPC的發(fā)展,對網(wǎng)絡(luò)的高吞吐和低延遲提出了更高要求。

不同的服務(wù)器接入帶寬,對虛擬化網(wǎng)絡(luò)的架構(gòu)和擴(kuò)展性會提出不一樣的要求。在100G的網(wǎng)絡(luò)時代,虛擬化網(wǎng)絡(luò)架構(gòu)會是怎樣的?

二.騰訊云100G時代下的VPC架構(gòu)剖析

1.宿主機(jī)vSwitch能力

v2-a02173b7f39c8d6d7e3eb157989e1222_720w.jpg

云網(wǎng)絡(luò)發(fā)展早期,網(wǎng)絡(luò)虛擬化的vSwitch通常使用內(nèi)核模塊來實現(xiàn),基于netfilter的鉤子定制encap/decap/安全組/qos等邏輯,快速滿足業(yè)務(wù)要求。但是基于內(nèi)核實現(xiàn)的vSwitch有幾個問題:

(1)vSwitch邏輯受制于內(nèi)核的框架,Linux內(nèi)核并非為網(wǎng)絡(luò)轉(zhuǎn)發(fā)所設(shè)計,存在大量的鎖和隊列,網(wǎng)絡(luò)性能和時延表現(xiàn)都比較差。

(2)為了滿足性能,vSwtich邏輯與虛擬機(jī)混跑CPU,在Linux調(diào)度層面,vSwtich邏輯的運行優(yōu)先級更高,這干擾了虛擬機(jī)的CPU性能穩(wěn)定性。

隨著DPDK技術(shù)的成熟,vSwitch邏輯逐步轉(zhuǎn)向用DPDK實現(xiàn):

(1)利用kernel的UIO機(jī)制,數(shù)據(jù)包跳過kernel的處理邏輯,直接送往用戶態(tài)。DPDK框架專門為網(wǎng)絡(luò)轉(zhuǎn)發(fā)而設(shè)計,vSwtich邏輯更簡單純粹。同時通過將DPDK vSwitch邏輯綁定物理核,并盡量移除DPDK所在物理核上的內(nèi)核邏輯(irq,softirq,rcu cb,timer,worker…)等方法,可以保證DPDK vSwitch邏輯運行的穩(wěn)定性。

(2)DPDK vSwitch的處理邏輯與用戶虛擬機(jī)的CPU彼此隔離,這保證了用戶虛擬機(jī)CPU的運行穩(wěn)定性。

隨著服務(wù)器帶寬的進(jìn)一步增長,DPDK vSwitch的擴(kuò)展能力也遇到很大的挑戰(zhàn)。DPDK的性能通過橫向擴(kuò)展占用的CPU核數(shù)來保證,但也有瓶頸:

(1)DPDK的單核處理能力受制于vhost-user的內(nèi)存拷貝,最高只能達(dá)到20-25Gbps。

(2)軟件橫向擴(kuò)展受制于軟件的局部化設(shè)計,存在天花板。

(3)堆砌通用CPU,將導(dǎo)致功耗增大、成本增高。

無限制地橫向擴(kuò)展不可持續(xù)。在100G的時代,保證虛擬化網(wǎng)絡(luò)的高性能和性能穩(wěn)定性成為vSwitch設(shè)計上重要的目標(biāo),主要的技術(shù)突破是智能網(wǎng)卡

v2-6dbffaceef276f63774a8b5d9ce2ed44_720w.jpg

智能網(wǎng)卡的技術(shù)方案帶來如下優(yōu)點:

(1)vSwitch的快轉(zhuǎn)表下沉到硬件(FPGA/ASIC)中實現(xiàn),性能擴(kuò)展不需要占用CPU資源,顯著提升了性能的可擴(kuò)展性。

(2)全路徑硬件IO直通到虛擬機(jī)內(nèi)部,擁有比軟件方案更穩(wěn)定的性能。

(3)硬件實現(xiàn)QoS隔離,租戶間隔離更穩(wěn)定。

但是硬件有規(guī)格和靈活性上的局限性。為了滿足不同場景對網(wǎng)絡(luò)性能的不同訴求,騰訊對vSwitch的架構(gòu)做了分層。

v2-382f40d9a6f17c661dc272e21dd15214_720w.jpg

vSwitch被分為三層:軟件實現(xiàn)的慢速路徑,軟件實現(xiàn)的快速路徑,硬件實現(xiàn)的快速路徑。對于不同場景,軟件自學(xué)習(xí)分析流的特征后,會將數(shù)據(jù)流分配到三種路徑上進(jìn)行轉(zhuǎn)發(fā):

(1)對于QQ類型的UDP無連接包業(yè)務(wù)類型,每條流只有一個包,這種類型的流量直接通過軟件慢路徑進(jìn)行轉(zhuǎn)發(fā),不下發(fā)流表。

(2)對于TCP短鏈接業(yè)務(wù),這種類型流量只下發(fā)到軟件快路徑,不下發(fā)到硬件快路徑。

(3)TCP大流量長連接業(yè)務(wù),下發(fā)到硬件快路徑。

在下一代虛擬化網(wǎng)絡(luò)中,智能網(wǎng)卡是每臺虛擬化服務(wù)器的標(biāo)配。除了網(wǎng)絡(luò)虛擬化,還會將存儲虛擬化,計算虛擬化的部分功能下沉到智能網(wǎng)卡中,給客戶提供超強(qiáng)的性能穩(wěn)定性。

2.云網(wǎng)關(guān)能力

v2-ea7d31f750d629a3a7be885007c66210_720w.jpg

網(wǎng)關(guān)在云環(huán)境面臨的最主要問題有資源問題、性能問題、故障域問題。在100G的網(wǎng)絡(luò)時代,性能擴(kuò)展帶來的資源問題最為凸顯。下一代虛擬化網(wǎng)絡(luò)中,云網(wǎng)關(guān)的技術(shù)突破最為重要,在這塊技術(shù)攻堅工作中,我們有幾個原則:

(1)業(yè)務(wù)網(wǎng)關(guān)NFV化,內(nèi)部服務(wù)去網(wǎng)關(guān),邊界網(wǎng)關(guān)硬件化;

(2)邊界網(wǎng)關(guān)無狀態(tài)化,狀態(tài)分布式化。

下面詳細(xì)講講這些原則:

01  業(yè)務(wù)網(wǎng)關(guān)NFV化

v2-24e86da554d570c7324db2e27e8b9da6_720w.jpg

針對虛擬化要解決的核心問題——資源問題,主要有以下策略:

(1)裝箱算法:解決整體資源利用率和碎片問題。

(2)快速冷遷移、無感熱遷移:解決資源的快速置換和故障恢復(fù)。

(3)Auto-scaling:解決資源平行擴(kuò)容問題。

(4)巨大的資源池:通過熱遷移調(diào)度可提升整體的利用率。

業(yè)務(wù)網(wǎng)關(guān)NFV化時,網(wǎng)關(guān)所面臨問題是這樣解決的:

(1)資源問題:直接復(fù)用虛擬化平臺所提供的資源能力。

(2)性能問題:直接復(fù)用虛擬化網(wǎng)絡(luò)vSwitch實現(xiàn)的高性能及性能隔離能力。

(3)故障域問題:基于虛擬化平臺,做到更細(xì)粒度的sharding,讓一個集群承擔(dān)更少的客戶。在集群內(nèi)部,復(fù)用虛擬化網(wǎng)絡(luò)已有的HAVIP主備同步及ECMP,單播/多播同步實現(xiàn)集群內(nèi)容災(zāi)。

02  內(nèi)部服務(wù)去網(wǎng)關(guān)

v2-c9d0c8108df2cf2344bc6b446f0c8897_720w.jpg

內(nèi)部服務(wù)包含兩種:大吞吐類型(如對象存儲),主要瓶頸在大吞吐情形下的資源擴(kuò)容及性能問題;延時敏感性(如數(shù)據(jù)庫),主要瓶頸在于網(wǎng)關(guān)這一跳帶來的時延問題以及可靠性問題。

在下一代虛擬化網(wǎng)絡(luò)中,我們將連通overlay和underlay服務(wù)的集中式網(wǎng)關(guān),分解到overlay虛擬化服務(wù)器+underlay物理服務(wù)器上。在underlay服務(wù)器上安裝一個內(nèi)核模塊,提供了underlay服務(wù)器的被動VPC訪問能力。

內(nèi)部服務(wù)去網(wǎng)關(guān)后,網(wǎng)關(guān)問題這樣解決:

(1)資源問題:網(wǎng)關(guān)能力分布式化,天然解決資源問題。

(2)性能問題:網(wǎng)關(guān)能力分布式化,沒有集中式性能瓶頸,單機(jī)的性能依賴虛擬化母機(jī)的vSwitch和underlay服務(wù)器模塊解決。

(3)故障域隔離:網(wǎng)關(guān)能力分布式化,沒有集中式單點,故障域縮小到虛擬化母機(jī)維度或underlay服務(wù)器維度??衫锰摂M化的遷移或underlay的服務(wù)調(diào)度來修復(fù)該問題。

03  邊界網(wǎng)關(guān)硬件化

v2-aa7f9685d7d044ea916cee245d83deb5_720w.jpg

邊界網(wǎng)關(guān)包含兩種:公網(wǎng)與騰訊云內(nèi)網(wǎng)的邊界網(wǎng)關(guān)(如EIP網(wǎng)關(guān));騰訊云不同地域間DCI的邊界網(wǎng)關(guān)(如云聯(lián)網(wǎng)網(wǎng)關(guān)),這兩種網(wǎng)關(guān)必須要集中式解決。邊界網(wǎng)關(guān)硬件化后,網(wǎng)關(guān)面臨的問題是這樣解決的:

(1)資源問題:一臺可編程硬件網(wǎng)關(guān),可以提供至少10倍軟件網(wǎng)關(guān)的能力,它所需的資源規(guī)模相比而言大大減少。

(2)性能問題:利用可編程硬件芯片,可以提供更強(qiáng)的包轉(zhuǎn)發(fā)能力、更少的時延表現(xiàn)、更穩(wěn)定的性能、更好的性能隔離。

(3)故障域問題:硬件網(wǎng)關(guān)因為承載流量大,客戶多,單臺故障的影響面也會很大,騰訊通過簡化硬件網(wǎng)關(guān)的邏輯,將邊界網(wǎng)關(guān)無狀態(tài)化,通過多集群部署、跨集群調(diào)度來解決集群的容災(zāi)問題。

3.控制面能力

隨著數(shù)據(jù)面帶寬的急劇增長,整體虛擬化網(wǎng)絡(luò)面對的客戶數(shù)及單客戶規(guī)模都會與日俱增。超大虛擬化網(wǎng)絡(luò)所面對的控制面擴(kuò)展能力也是我們首要考慮的問題。在下一代VPC網(wǎng)絡(luò)中,我們將配置數(shù)據(jù)分為動態(tài)配置數(shù)據(jù)靜態(tài)配置數(shù)據(jù)。

(1)動態(tài)配置數(shù)據(jù)(如位置關(guān)系),完全分布式按需學(xué)習(xí),定期老化,解決配置數(shù)據(jù)量中最大的部分。

(2)靜態(tài)配置數(shù)據(jù)(譬如子網(wǎng)路由、安全組),采用靜態(tài)預(yù)下發(fā)。靜態(tài)預(yù)下發(fā)時采取snapshot+binlog方式,加快預(yù)下發(fā)效率。

至于“動態(tài)學(xué)習(xí)及靜態(tài)預(yù)下發(fā)時,部分配置關(guān)系未能及時下發(fā)”的問題,引入中轉(zhuǎn)網(wǎng)關(guān)來輔助流量轉(zhuǎn)發(fā)。中轉(zhuǎn)網(wǎng)關(guān)基于包做轉(zhuǎn)發(fā),完全無狀態(tài),方便容災(zāi)及擴(kuò)容。

在下一代虛擬化網(wǎng)絡(luò)中,基于控制面的按需改造,我們可以做到單VPC超過300K VM,且VM創(chuàng)建完成后VPC實時可通。此外,控制面的租戶隔離也是一個非常重要的問題。我們的解決辦法是:

(1)對于大客戶,我們通過大小客戶分集群單獨部署,以解決控制面的租戶隔離問題。

(2)對于一個集群內(nèi)部的租戶間互相影響,我們主要通過針對單租戶的訪問頻率控制,以及對于惡意租戶的額外隊列懲罰控制,來避免一個租戶造成集群雪崩。

4.故障定位能力

下一代虛擬網(wǎng)絡(luò)中,除了通常的計數(shù)器統(tǒng)計,針對大吞吐高性能場景下性能無損的故障分析,我們研發(fā)了一套帶內(nèi)的流跟蹤系統(tǒng)。

v2-e2569ea943371fa3bb26ce838c67d639_720w.jpg

通過這套流跟蹤系統(tǒng),我們可以實時獲取網(wǎng)絡(luò)路徑上函數(shù)級別的時延和丟包情況。

v2-fffbbec88f0f704a10f5d43fb9363257_720w.jpg

在下一代網(wǎng)絡(luò)中,我們將借助流跟蹤系統(tǒng),更從容地應(yīng)對客戶對丟包和網(wǎng)絡(luò)時延的挑戰(zhàn)。

總結(jié)

“隨風(fēng)潛入夜,潤物細(xì)無聲”我們希望騰訊云的“網(wǎng)絡(luò)能力”像春雨一樣,對用戶來說是“透明”的,不必被感知的。因為默默地守護(hù)好前方業(yè)務(wù)的“花團(tuán)錦簇”,就是春雨最大的滿足。

立即登錄,閱讀全文
原文鏈接:點擊前往 >
版權(quán)說明:本文內(nèi)容來自于知乎,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多