那么,騰訊云網(wǎng)絡(luò)優(yōu)化型N1實例是如何實現(xiàn)這一極致性能的呢?
傳統(tǒng)虛擬化技術(shù)在網(wǎng)絡(luò)性能上存在瓶頸
在非網(wǎng)絡(luò)優(yōu)化型服務器中,采用的是傳統(tǒng)虛擬化網(wǎng)絡(luò)的技術(shù)。但是在面對數(shù)據(jù)流爆發(fā)式增長,如雙11電商搶購秒殺、春晚紅包、超大型網(wǎng)絡(luò)游戲應用中,傳統(tǒng)虛擬化技術(shù)下實例的網(wǎng)絡(luò)收發(fā)能力可能依舊存在瓶頸。
▲常見虛擬網(wǎng)絡(luò)的實現(xiàn)
上圖描述了傳統(tǒng)虛擬化網(wǎng)絡(luò)的實現(xiàn),包括了以下元素:
CVM:對應是云服務器;
vNic:云服務器的網(wǎng)卡,通常是virtio-net網(wǎng)卡;
vSwitch:虛擬路由器,例如Linux下網(wǎng)橋,Open vSwitch等。
基于云服務器的數(shù)據(jù)包外發(fā)會先經(jīng)過虛擬的vNIC轉(zhuǎn)發(fā)到虛擬的vSwitch上,經(jīng)過路由決策后,才能發(fā)送到物理網(wǎng)絡(luò);數(shù)據(jù)包接收流程則物理網(wǎng)卡接收到網(wǎng)絡(luò)數(shù)據(jù)包后,轉(zhuǎn)發(fā)到vSwitch上,經(jīng)過路由決策后,發(fā)給云服務器所在的vNic,云服務器接收到網(wǎng)絡(luò)數(shù)據(jù)包。
從流程中可以看出,每個數(shù)據(jù)包都會經(jīng)過vNic和vSwitch的處理,和物理服務器相比,這里遇到了新的性能瓶頸:
(1)vNIC虛擬設(shè)備虛擬化性能損耗。中斷不能直接送到虛擬機,收發(fā)包沒有硬件加速,同時數(shù)據(jù)包的處理會消耗宿主機服務器的資源;
(2)vSwitch的性能瓶頸。vSwitch通過宿主機服務器實現(xiàn),有可能和虛擬機爭搶CPU計算資源,同時也缺乏硬件加速功能。
總體來看,傳統(tǒng)虛擬化網(wǎng)絡(luò)方案的瓶頸在于和網(wǎng)絡(luò)關(guān)鍵路徑相關(guān)的硬件都是虛擬的,而最理想的方案是云服務器能直接使用物理硬件。
在這方面,如果是小型的私有云網(wǎng)絡(luò),沒有多個用戶,沒有靈活的網(wǎng)絡(luò)配置的前提下,可以直接使用物理網(wǎng)卡提供的SR-IOV技術(shù)。
SR-IOV技術(shù)是一種基于硬件的虛擬化解決方案,可提高性能和可伸縮性。SR-IOV 標準允許在虛擬機之間高效共享PCIe(Peripheral Component Interconnect Express,快速外設(shè)組件互連)設(shè)備,并且它是在硬件中實現(xiàn)的,可以獲得能夠與使用物理網(wǎng)卡性能媲美的 I/O 性能。
智能網(wǎng)卡方案帶來網(wǎng)絡(luò)性能提升
SR-IOV技術(shù)能夠改善網(wǎng)絡(luò)性能,那為什么沒有在公有云中暫時沒有見到大規(guī)模使用實例呢?因為常規(guī)的SR-IOV技術(shù),網(wǎng)卡無法實現(xiàn)復雜的自定義功能,不能編程,沒法實現(xiàn)vSwitch的功能。沒有vSwitch就無法實現(xiàn)多個用戶之間的網(wǎng)絡(luò)隔離以及用戶自定義網(wǎng)絡(luò)功能。
為了解決這個問題,騰訊云引入了新硬件——智能網(wǎng)卡,推出新型網(wǎng)絡(luò)虛擬化技術(shù)2.0。
智能網(wǎng)卡區(qū)別于普通網(wǎng)卡的最大的特點是“智能”,體現(xiàn)在以下四個方面:
? 更出色的SR-IOV性能,提供了更多的網(wǎng)絡(luò)加速硬件。
? 讓云服務器可以直接使用高性能物理網(wǎng)卡硬件,無需將數(shù)據(jù)包繞行到母機網(wǎng)卡
? 智能網(wǎng)卡具有各種硬件加速功能,包括數(shù)據(jù)包硬件解析,校驗和offload,流量控制,網(wǎng)絡(luò)安全加速等。
? 智能網(wǎng)卡本身是可編程的,可以靈活實現(xiàn)各類vSwitch邏輯,避免了宿主機服務器的資源消耗。
那么,問題再次出現(xiàn),既然智能網(wǎng)卡功能這么強大,那為什么智能網(wǎng)卡之前沒有見到在公有云中使用呢?
究其原因,是因為智能網(wǎng)卡的開發(fā)難度比較大:
? 智能網(wǎng)卡和宿主機服務器是異構(gòu)架構(gòu)。
智能網(wǎng)卡通常使用ARM架構(gòu)或MIPS架構(gòu),而宿主機服務器是X86架構(gòu),異構(gòu)架構(gòu)大大增加了開發(fā)難度。
? 智能網(wǎng)卡上編程開發(fā)和調(diào)試比較困難。
在智能網(wǎng)卡上要實現(xiàn)vSwitch的復雜功能,同時充分利用智能網(wǎng)卡硬件提供的各種硬件加速功能,對開發(fā)者的要求非常高。
在攻克智能網(wǎng)卡使用的各種困難之后,結(jié)合騰訊云已有的網(wǎng)絡(luò)VPC技術(shù),騰訊云推出了新型實例——網(wǎng)絡(luò)優(yōu)化型實例N1。
基于第二代網(wǎng)絡(luò)虛擬化技術(shù)的網(wǎng)絡(luò)優(yōu)化型實例N1機器采用新型智能網(wǎng)卡,支持SR-IOV,并在智能網(wǎng)卡中實現(xiàn)vSwitch,用硬件實現(xiàn)網(wǎng)絡(luò)路由分發(fā)功能,提供最高450w PPS的網(wǎng)絡(luò)轉(zhuǎn)發(fā)性能以及多達25Gbps的網(wǎng)絡(luò)帶寬,網(wǎng)絡(luò)延時大大降低,實現(xiàn)接近物理網(wǎng)卡的網(wǎng)絡(luò)延時。同時,保持了已有的VPC網(wǎng)絡(luò)的用戶體驗的一致性。
▲騰訊云第二代網(wǎng)絡(luò)虛擬化技術(shù)實現(xiàn)
由上圖可見,和常見虛擬網(wǎng)絡(luò)方案相比,有兩個大的變化:
(1)CVM計算實例直接使用SR-IOV網(wǎng)卡而非虛擬網(wǎng)卡,性能媲美物理網(wǎng)卡。且每個SR-IOV網(wǎng)卡相互獨立,不同用戶之間不會出現(xiàn)網(wǎng)卡資源搶占。智能網(wǎng)卡與和傳統(tǒng)網(wǎng)卡相比,在SR-IOV功能方面,提供了更多的網(wǎng)絡(luò)硬件單元。
(2)在智能網(wǎng)卡中實現(xiàn)vSwitch,解決性能瓶頸問題。智能網(wǎng)卡的硬件加速及可編程特性極大的提高了vSwitch的性能。
這樣,傳統(tǒng)虛擬化網(wǎng)絡(luò)的實現(xiàn)方案的兩個瓶頸——vNIC虛擬設(shè)備虛擬化性能損耗和vSwitch的性能瓶頸,在網(wǎng)絡(luò)優(yōu)化型 N1實例都得到完美的解決,在網(wǎng)絡(luò)收發(fā)包性能上、內(nèi)網(wǎng)帶寬、網(wǎng)絡(luò)時延上都得到了較大的提升。
網(wǎng)絡(luò)是用戶使用云服務時最為關(guān)注的技術(shù)點之一。目前,騰訊云引入最新智能網(wǎng)卡并基于第二代網(wǎng)絡(luò)虛擬化技術(shù)打造的網(wǎng)絡(luò)優(yōu)化型計算實例,已經(jīng)惠及眾多游戲、電商、社交應用、直播等領(lǐng)域的客戶。