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