騰訊雲專家工程師首次揭祕下一代虛擬網絡架構

導讀:5G的商用以及IoT、AI等技術的成熟推進着雲技術的發展。無時不刻產生的數據洪流,對雲的網絡架構和處理數據的能力提出了新的需求,爲了知足這些需求,下一代虛擬網絡技術路在何方?在探討這個問題以前,咱們以騰訊雲數據中心網絡爲例,介紹一下它的技術發展脈絡。算法

1、騰訊雲數據中心網絡的技術發展脈絡數據庫

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

2. 從萬兆到25G:2017年,騰訊公有云服務器接入帶寬從萬兆向25G轉變,這種轉變主要來自於業務對網絡吞吐的性能訴求。安全

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

不一樣的服務器接入帶寬,對虛擬化網絡的架構和擴展性會提出不同的要求。在100G的網絡時代,虛擬化網絡架構會是怎樣的?網絡

2、騰訊雲100G時代下的VPC架構剖析架構

1.宿主機vSwitch能力框架

1.jpg

雲網絡發展早期, 網絡虛擬化的vSwitch一般使用內核模塊來實現, 基於netfilter的鉤子定製encap/decap/安全組/qos等邏輯,快速知足業務要求。可是基於內核實現的vSwitch有幾個問題:分佈式

(1)vSwitch邏輯受制於內核的框架, Linux內核並不是爲網絡轉發所設計,存在大量的鎖和隊列, 網絡性能和時延表現都比較差。函數

(2)爲了知足性能,vSwtich邏輯與虛擬機混跑CPU,在Linux調度層面,vSwtich邏輯的運行優先級更高,這干擾了虛擬機的CPU性能穩定性。

隨着DPDK技術的成熟, vSwitch邏輯逐步轉向用DPDK實現:

(1)利用kernel的UIO機制, 數據包跳過kernel的處理邏輯,直接送往用戶態。DPDK框架專門爲網絡轉發而設計,vSwtich邏輯更簡單純粹。同時經過將DPDK vSwitch邏輯綁定物理核,並儘可能移除DPDK所在物理核上的內核邏輯(irq,softirq,rcu cb,timer,worker…)等方法,能夠保證DPDK vSwitch邏輯運行的穩定性。

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

隨着服務器帶寬的進一步增加, DPDK vSwitch的擴展能力也遇到很大的挑戰。DPDK的性能經過橫向擴展佔用的CPU核數來保證, 但也有瓶頸:

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

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

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

無限制地橫向擴展不可持續。在100G的時代, 保證虛擬化網絡的高性能和性能穩定性成爲vSwitch設計上重要的目標, 主要的技術突破是智能網卡。

2.jpg

智能網卡的技術方案帶來以下優勢:

(1)vSwitch的快轉表下沉到硬件(FPGA/ASIC)中實現, 性能擴展不須要佔用CPU資源, 顯著提高了性能的可擴展性。

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

(3)硬件實現QoS隔離,租戶間隔離更穩定。

可是硬件有規格和靈活性上的侷限性。 爲了知足不一樣場景對網絡性能的不一樣訴求,騰訊對vSwitch的架構作了分層。

vSwitch被分爲三層: 軟件實現的慢速路徑,軟件實現的快速路徑,硬件實現的快速路徑。對於不一樣場景,軟件自學習分析流的特徵後, 會將數據流分配到三種路徑上進行轉發:

(1)對於QQ類型的UDP無鏈接包業務類型, 每條流只有一個包,這種類型的流量直接經過軟件慢路徑進行轉發,不下發流表。

(2)對於TCP短連接業務,這種類型流量只下發到軟件快路徑,不下發到硬件快路徑。

(3)TCP大流量長鏈接業務,下發到硬件快路徑。

在下一代虛擬化網絡中,智能網卡是每臺虛擬化服務器的標配。除了網絡虛擬化,還會將存儲虛擬化,計算虛擬化的部分功能下沉到智能網卡中, 給客戶提供超強的性能穩定性。

2.雲網關能力

網關在雲環境面臨的最主要問題有資源問題、性能問題、故障域問題。在100G的網絡時代,性能擴展帶來的資源問題最爲凸顯。下一代虛擬化網絡中,雲網關的技術突破最爲重要,在這塊技術攻堅工做中,咱們有幾個原則:

(1)業務網關NFV化,內部服務去網關,邊界網關硬件化;
(2)邊界網關無狀態化,狀態分佈式化。

下面詳細講講這些原則:

A、業務網關NFV化

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

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

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

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

(4)巨大的資源池:經過熱遷移調度可提高總體的利用率。

業務網關NFV化時, 網關所面臨問題是這樣解決的:

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

(2)性能問題:直接複用虛擬化網絡vSwitch實現的高性能及性能隔離能力。

(3)故障域問題:基於虛擬化平臺,作到更細粒度的sharding,讓一個集羣承擔更少的客戶。在集羣內部,複用虛擬化網絡已有的HAVIP主備同步及ECMP,單播/多播同步實現集羣內容災。

B、內部服務去網關

內部服務包含兩種:大吞吐類型(如對象存儲),主要瓶頸在大吞吐情形下的資源擴容及性能問題;延時敏感性(如數據庫),主要瓶頸在於網關這一跳帶來的時延問題以及可靠性問題。

在下一代虛擬化網絡中,咱們將連通overlay和underlay服務的集中式網關,分解到overlay虛擬化服務器+underlay物理服務器上。在underlay服務器上安裝一個內核模塊,提供了underlay服務器的被動VPC訪問能力。

內部服務去網關後,網關問題這樣解決:

(1)資源問題:網關能力分佈式化,自然解決資源問題。

(2)性能問題:網關能力分佈式化,沒有集中式性能瓶頸,單機的性能依賴虛擬化母機的vSwitch和underlay服務器模塊解決。

(3)故障域隔離:網關能力分佈式化,沒有集中式單點,故障域縮小到虛擬化母機維度或underlay服務器維度。可利用虛擬化的遷移或underlay的服務調度來修復該問題。

C、邊界網關硬件化

7.jpg

邊界網關包含兩種:公網與騰訊雲內網的邊界網關(如EIP網關);騰訊雲不一樣地域間DCI的邊界網關(如雲聯網網關),這兩種網關必需要集中式解決。邊界網關硬件化後,網關面臨的問題是這樣解決的:

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

(2)性能問題:利用可編程硬件芯片,能夠提供更強的包轉發能力、更少的時延表現、更穩定的性能、更好的性能隔離。

(3)故障域問題:硬件網關由於承載流量大,客戶多,單臺故障的影響面也會很大,騰訊經過簡化硬件網關的邏輯,將邊界網關無狀態化,經過多集羣部署、跨集羣調度來解決集羣的容災問題。

3.控制面能力

隨着數據面帶寬的急劇增加,總體虛擬化網絡面對的客戶數及單客戶規模都會與日俱增。超大虛擬化網絡所面對的控制面擴展能力也是咱們首要考慮的問題。在下一代VPC網絡中,咱們將配置數據分爲動態配置數據靜態配置數據

(1)動態配置數據(如位置關係),徹底分佈式按需學習,按期老化,解決配置數據量中最大的部分。

(2)靜態配置數據(譬如子網路由、安全組),採用靜態預下發。靜態預下發時採起snapshot + binlog方式,加快預下發效率。

至於「動態學習及靜態預下發時,部分配置關係未能及時下發」的問題,引入中轉網關來輔助流量轉發。中轉網關基於包作轉發,徹底無狀態,方便容災及擴容。

在下一代虛擬化網絡中,基於控制面的按需改造,咱們能夠作到單VPC超過300K VM,且VM建立完成後VPC實時可通。此外,控制面的租戶隔離也是一個很是重要的問題。咱們的解決辦法是:

(1)對於大客戶,咱們經過大小客戶分集羣單獨部署,以解決控制面的租戶隔離問題。

(2)對於一個集羣內部的租戶間互相影響,咱們主要經過針對單租戶的訪問頻率控制,以及對於惡意租戶的額外隊列懲罰控制,來避免一個租戶形成集羣雪崩。

4.故障定位能力

下一代虛擬網絡中,除了一般的計數器統計,針對大吞吐高性能場景下性能無損的故障分析,咱們研發了一套帶內的流跟蹤系統。

經過這套流跟蹤系統,咱們能夠實時獲取網絡路徑上函數級別的時延和丟包狀況。

9.jpg

在下一代網絡中,咱們將藉助流跟蹤系統,更從容地應對客戶對丟包和網絡時延的挑戰。

總結:「隨風潛入夜,潤物細無聲」咱們但願騰訊雲的「網絡能力」像春雨同樣,對用戶來講是「透明」的,沒必要被感知的。由於默默地守護好前方業務的「花團錦簇」,就是春雨最大的知足。

關注「騰訊開發者」,一塊兒用技術改變世界。

640-5.jpeg

相關文章
相關標籤/搜索