從微觀角度來講,早期的公有云存在一些問題。首先,在穩(wěn)定性上,內(nèi)外網(wǎng)都是一根網(wǎng)線單上連一個(gè)交換機(jī),一個(gè)地方出問題整個(gè)網(wǎng)絡(luò)就會(huì)出問題。其次,外網(wǎng)、內(nèi)網(wǎng)、管理網(wǎng)都是一根網(wǎng)線,這是在沒有冗余的情況下,如果要做冗余的話,就要變成六根網(wǎng)線,成本太高昂。其三,千兆網(wǎng)絡(luò)漸漸開始不能滿足用戶需求。還有一些隱藏問題,比如當(dāng)時(shí)所有的用戶都是在交換機(jī)的一個(gè)vlan網(wǎng)絡(luò)下面。
理論上來說,這樣是可行的。但實(shí)際上,交換機(jī)對(duì)VLAN的支持能力限制了網(wǎng)絡(luò)規(guī)模的擴(kuò)展,用戶數(shù)量受到限制。再比如軟件隔離占用宿主機(jī)計(jì)算資源,可能會(huì)出現(xiàn)響應(yīng)不了或者搶占用戶cpu的情況。同時(shí),在這個(gè)網(wǎng)絡(luò)下想實(shí)現(xiàn)用戶自定義網(wǎng)絡(luò)(vpc)就非常困難,靈活性低。
因此,在經(jīng)過了不斷地改進(jìn)后,美團(tuán)新的公有云網(wǎng)絡(luò)架構(gòu)在物理鏈路、主機(jī)網(wǎng)絡(luò)、網(wǎng)關(guān)、控制器四個(gè)緯度上全面升級(jí),大大提高了整體網(wǎng)絡(luò)性能。
四個(gè)緯度上的性能釋放
首先,從物理鏈路來看,性能方面,美團(tuán)云實(shí)現(xiàn)了萬兆互聯(lián);其次,在核心上實(shí)現(xiàn)了雙機(jī)冗余,不會(huì)因?yàn)槟硞€(gè)物理環(huán)節(jié)問題,導(dǎo)致網(wǎng)絡(luò)不能啟動(dòng);第三,采用了TOR交換機(jī)堆疊,雙40G上聯(lián),隨著日后網(wǎng)絡(luò)流量的增加,可以再擴(kuò)展。此外,在網(wǎng)線的選擇上,美團(tuán)云還采用了10G
Base-T的電口萬兆網(wǎng)絡(luò),這個(gè)技術(shù)比較新,很多交換機(jī)廠商都還沒有這樣的設(shè)備。但是它的成本較低,運(yùn)維起來也會(huì)更方便。另外,在機(jī)房建設(shè)的過程中,美團(tuán)云還使用了一些目前業(yè)界領(lǐng)先的技術(shù),比如核心機(jī)柜封閉冷通道、預(yù)端接,對(duì)成本的節(jié)省都是百萬級(jí)的。
機(jī)房出口挖斷了怎么辦?同城多個(gè)互聯(lián)網(wǎng)數(shù)據(jù)中心(IDC)之間,通過邊界網(wǎng)關(guān)協(xié)議(BGP)來進(jìn)行備份和冗余。當(dāng)有一個(gè)機(jī)房的網(wǎng)絡(luò)斷掉的時(shí)候,會(huì)通過邊界網(wǎng)關(guān)協(xié)議的流量自動(dòng)轉(zhuǎn)移到另一個(gè)機(jī)房。
但是底層的物理鏈路是萬兆,不代表上層能把萬兆利用起來。我們花了更多的精力,解決如何把萬兆網(wǎng)絡(luò)利用起來的問題。一部分是網(wǎng)關(guān),就是整個(gè)網(wǎng)絡(luò)出口的部分,比如DPDK技術(shù)。DPDK技術(shù)目前是被主流使用的技術(shù)方案,對(duì)釋放網(wǎng)絡(luò)性能有較大幫助。另一種,預(yù)留1-2個(gè)處理器(core)接受數(shù)據(jù),一個(gè)處理器根據(jù)自己的邏輯負(fù)責(zé)處理控制信息,1-2個(gè)處理器負(fù)責(zé)收包,其余處理業(yè)務(wù),自己處理數(shù)據(jù)分發(fā)。
在實(shí)際使用中,美團(tuán)云根據(jù)兩種模型的優(yōu)勢(shì),分別都有選擇。在浮動(dòng)IP網(wǎng)關(guān)、負(fù)載均衡網(wǎng)關(guān)、
DDoS清洗設(shè)備三個(gè)部分,實(shí)現(xiàn)了全面的DPDK化,同時(shí)在四層網(wǎng)絡(luò)上,能夠并發(fā)1000w連接情況下新建連接100w/s。
“以最小代價(jià)解決最大問題”
當(dāng)網(wǎng)關(guān)不是瓶頸的時(shí)候,流量就能夠自由通到主機(jī)上,所以接下來就是通過主機(jī)網(wǎng)絡(luò)釋放性能。美團(tuán)云最早使用的OVS
V1.1版本,在千兆網(wǎng)絡(luò)下可行,但萬兆網(wǎng)絡(luò)下性能遠(yuǎn)遠(yuǎn)不夠。升級(jí)到V2.3后平臺(tái)后,Megaflow對(duì)高并發(fā)情況下性能有數(shù)量級(jí)的提升,創(chuàng)建能夠滿足要求。
但另一個(gè)問題出現(xiàn)了,在單流的情況下,對(duì)萬兆網(wǎng)卡的利用率僅為50%。隨后在升級(jí)到V2.4,支持DPDK版本后,美團(tuán)云進(jìn)一步提升了單流轉(zhuǎn)發(fā)性能。在新版本的OVS下,只要10%的計(jì)算資源就可以提供萬兆的網(wǎng)絡(luò)能力,網(wǎng)絡(luò)數(shù)據(jù)處理不影響用戶計(jì)算資源。這樣一來,就解決了宿主機(jī)的物理網(wǎng)絡(luò)瓶頸。
而在控制層面,有兩個(gè)選擇,一個(gè)是傳統(tǒng)工具eptables/iptables,二是OVS的方案。所謂OVS的控制方式,是配置流表,交由控制器處理。控制器決定是否放行,動(dòng)態(tài)地下發(fā)對(duì)應(yīng)流表,在OVS控制器對(duì)數(shù)據(jù)包進(jìn)行過濾和處理過程中,美團(tuán)云開發(fā)了軟件層面的解決方案。針對(duì)單播,通過對(duì)SYN包檢查,下發(fā)流表,并對(duì)每個(gè)不匹配的UDP包進(jìn)行檢查。
需要注意的是,由于發(fā)送端較難控制,而接收端對(duì)每個(gè)包處理,容易造成控制器隊(duì)列積壓。因此,美團(tuán)云采用下發(fā)臨時(shí)流表的方式解決積壓?jiǎn)栴},或者通過設(shè)置限流閾值,進(jìn)行快速恢復(fù)。
但是軟件層面的解決方案無法根本解決積壓的問題,因此下一階段的迭代就是在硬件層面進(jìn)行隔離,通過VXLAN對(duì)用戶進(jìn)行隔離。說到選擇VXLAN,就要提到對(duì)SDN方案選用的一些思考:在底層的萬兆物理鏈路之上,美團(tuán)云選用了Overlay的網(wǎng)絡(luò)架構(gòu)。
簡(jiǎn)單來說,Overlay的架構(gòu)彈性靈活,業(yè)務(wù)與物理鏈接和端口分離,這就意味著網(wǎng)絡(luò)不再受限于物理上的連接和端口數(shù)量,可以按照資源池的概念來分配網(wǎng)絡(luò)資源。而Underlay作為整個(gè)SDN框架的基礎(chǔ),充分吸取和延續(xù)了過去長(zhǎng)期積累的物理網(wǎng)絡(luò)優(yōu)勢(shì),穩(wěn)定可擴(kuò)展。一方面ARP/OSFP/BGP
仍然值得信任,另一方面相關(guān)領(lǐng)域的運(yùn)維專業(yè)人才相對(duì)儲(chǔ)備也較多。在參考了業(yè)界最新的實(shí)踐經(jīng)驗(yàn)后,美團(tuán)云選用了VXLAN的解決方案。
要做就做行業(yè)標(biāo)桿
上述是在物理鏈路、主機(jī)網(wǎng)絡(luò)、網(wǎng)關(guān)、控制器方面釋放性能上,美團(tuán)云所做的嘗試。再上層就是讓用戶可以靈活地自定義自己的網(wǎng)絡(luò)。為了應(yīng)對(duì)靈活性的挑戰(zhàn),美團(tuán)進(jìn)行了相應(yīng)的處理,比如分布式的
DNS。
在傳統(tǒng)網(wǎng)絡(luò)下,一般使用默認(rèn)的DNS服務(wù)器地址,并通過源IP區(qū)分用戶。但是在用戶定義網(wǎng)絡(luò)(vpc)的情況下,用戶的地址是可以重復(fù)的。所以用戶識(shí)別方面,需要將VXLANID的用戶信息嵌入DNS數(shù)據(jù)包。另外在用戶網(wǎng)絡(luò)中,DNS服務(wù)器的地址也是自定義的,所以實(shí)際的DNS服務(wù)需要使用Underlay地址,這里面就需要做地址的轉(zhuǎn)換和映射。
總體而言,新公有云的網(wǎng)絡(luò)結(jié)構(gòu)全面升級(jí)為萬兆網(wǎng)絡(luò)層面,管理網(wǎng)做Bonding,用戶的內(nèi)網(wǎng)外網(wǎng)overlay在管理網(wǎng)。VPC層面,通過VXLAN隔離用戶,并實(shí)現(xiàn)自定義的網(wǎng)絡(luò)。最后對(duì)外提供豐富的產(chǎn)品功能,比如浮動(dòng)IP/負(fù)載均衡,對(duì)象存儲(chǔ)/塊存儲(chǔ),RDS/Redis等。
未來,運(yùn)維自動(dòng)化的程度會(huì)進(jìn)一步提高。通過openflow或者netconf等通信手段提取到控制器上,進(jìn)一步整理和分析后,能夠形成可視化的網(wǎng)絡(luò)路徑圖,實(shí)現(xiàn)更高效的網(wǎng)絡(luò)運(yùn)維管理。
這些就是美團(tuán)云網(wǎng)絡(luò)架構(gòu)一路演進(jìn)的過程,在這個(gè)過程中,美團(tuán)云的團(tuán)隊(duì)成員始終秉承著“以最小代價(jià)解決最大問題”的思路,將軟件和硬件相結(jié)合,通過開源與自研,高效地實(shí)現(xiàn)了網(wǎng)絡(luò)架構(gòu)的迭代,成為了行業(yè)標(biāo)桿,并為千萬用戶提供更穩(wěn)定、可靠的基礎(chǔ)設(shè)施云服務(wù)。