1 OPPO 雲網路現狀
隨著OPPO業務的快速發展,OPPO雲規模增長迅速。大規模虛擬例項的彈性伸縮、低延時需求對網路提出了諸多挑戰。原有基於VLAN搭建的私有網路無法解決這些問題,給網路運維和業務的快速上線帶來了挑戰。
梳理存在的主要問題如下:
- 網路缺乏集中的控制系統,業務開通以手工配置為主,自動開通能力幾乎沒有,為後期維護、升級埋下隱患。
- 虛擬網路和物理網路耦合緊密,沒有做到業務分離。虛擬網路的MAC或者路由會傳遞到物理裝置上,對物理裝置的二、三層表項的容量提出了很高的要求。虛擬例項大規模擴容後可能會使硬體裝置上的路由表項耗盡,導致業務無法使用。
- 虛擬網路缺乏安全策略,已有的安全策略不能很好的管控虛擬網路之間的互訪互通,網路訪問控制機制不健全。
- 虛擬網路卡頻寬無法支援高效能業務。網路的虛擬網路卡只支援veth/tap裝置,網路頻寬不高,滿足不了網路資料密集型業務的需求。
- 虛擬網路系統沒有實現控制和轉發分離,控制面故障或者升級會影響業務。
2 虛擬網路選型
分析上述問題的根本原因之後,決定選擇目前業界主流的SDN網路技術來解決上述網路隔離和運維自動化能力不足的問題,選擇智慧網路卡OFFLOAD功能來實現虛擬例項的網路加速,選用虛擬私有云(VPC)技術來治理不同使用者的業務網路、提高系統的健壯性、安全性。
SDN的資料面採用開源的OVS來實現,主要原因是OVS已經在資料中心中大規模應用,其轉發效能、穩定性和安全性已經得到實踐證明,其維護成本也相對降低。
VPC 控制器、VPC 網路介面(CNI)外掛、VPC閘道器、VPC 負載均衡(Load Balance)決定採用自研的方式實現,雖然社群已經有類似的方案(Neutron/OpenDaylight),但是這些專案都比臃腫,側重於電信業務場景,維護成本較高,不能直接應用於資料中心網際網路業務場景,並且和已有的平臺系統,整合開發工作也比較多。而自研也有很多優點,比如新功能開發快速不在依賴社群、定製開發方便、輕量化、效能高、穩定性強。
3 VPC網路方案
整個VPC網路系統架構如下圖所示。
VPC控制檯提供統一業務入口和便捷的介面操作,業務操作視覺化,關鍵資料存於資料庫中,便於維護和使用。
VPC SERVER 是整個系統的中心,對雲平臺提供高效,簡潔的業務介面。是整個系統的訊息轉發樞紐。
FlowEngine 是位於計算節點的OVS 控制器,它採用規則推理的方式計算流表,指示OVS如何轉發業務報文。FlowEngine與VPC Server一起稱作網路的中央中樞。
VPC CNI Agent負責計算節點網路卡資源的管理和分配,同時對雲平臺提供了建立、刪除等業務介面。它採用智慧網路卡虛擬化(SR-IOV)技術實現虛擬例項的網路加速。
VPC閘道器分為東西向的分散式閘道器和南北向的集中閘道器,提供不同子網的通訊,解決了集中閘道器的單點故障問題。南北向的集中閘道器支援VXLAN隧道,實現虛擬網路和物理網路的互通,並且支援橫向擴充套件和DPDK加速技術。
VPC LB實現四層負載均衡,對外提供業務的高可用方案。
3.1 VPC網路型別
當前VPC網路支援租戶網路、公共網路和彈性IP網路。租戶網路中虛擬例項之間可以互相訪問,只能通過VPC 閘道器訪問外部網路,虛擬例項的IP地址不會發布出去,因而不能被外部主機訪問。只有繫結上彈性IP才可以對外直接提供服務,這種網路特別適合於開發測試環境向生產環境的切換,有利於業務的快速釋出。
租戶網路也可以藉助LB閘道器,釋出虛擬IP(VIP)路由,對外提供業務。
公共網路類似於傳統的VLAN網路,它的網段會被VPC閘道器釋出到上聯裝置上,直接可以和IDC網路互通。方便部署基礎虛擬雲平臺的監控服務以及公共服務。
3.2 租戶隔離的隧道VXLAN
VPC 網路的型別為VXLAN隧道,每個子網分配唯一的VXLAN隧道ID,同安全組技術一起使用保證不同使用者網路的完全隔離,解決了業務上雲的安全風險。
OVS的資料面轉發由本地控制器來控制,控制器故障不會影響其他節點的通訊和已有隧道業務流的轉發。
採用智慧網路卡的VXLAN 解除安裝功能,不會因為VXLAN的效能損耗影響業務轉發,同時節省了主機的CPU資源。
3.3 VPC 隧道封裝說明
3.3.1 VXLAN隧道隔離
VPC網路支援虛擬機器和容器位於同一個二層網路,從網路角度看,他們都在同一個VPC子網內。不同節點虛擬例項互訪,需要藉助VXLAN隧道完成。同子網虛擬例項通訊,報文的VXLAN ID是本子網的ID,異子網虛擬例項通訊,報文的VXLAN ID是目的子網的ID。
虛擬例項訪問VPC外部網路需要藉助VPC閘道器,VPC閘道器採用軟體實現,通過DPDK和高速網路卡加速,執行在X86伺服器上即可。當前也支援第三方VPC閘道器,VPC閘道器可以通過HTTP API或者BGP-EVPN介面與VPC SERVER 互動VXLAN的路由資訊。
3.3.2 VPC 負載均衡
VPC 負載均衡採用全NAT方式實現,報文封裝在VXLAN報文中進行轉發。路由和隧道資訊由VPC SERVER同步給LB控制器,LB 控制器負責將路由資訊更新到對應的網元。
從上圖可以清楚的看出報文的互動方案,LB網元會保持業務的會話session,支援輪巡、最小負載優先等排程演算法。支援一致性雜湊演算法,無縫遷移業務功能。
LB網元採用DPDK和高速網路卡實現,報文轉發速率(PPS)可以達到800萬以上 ,會話數目可以達到10萬以上,時延小於1ms。滿足網際網路及IOT場景高併發業務要求。
3.4 VPC效能指標
VPC 虛擬例項透傳VF網路卡後,轉發效能可以到 25000Gbit/s。PktGen 測試報文轉發速率(PPS) 可以達到2400萬,頻寬可以達到25Gbps。頻寬和PPS都可以達到虛擬的tap裝置的兩倍以上,同時降低了網路轉發的CPU使用率。
VPC租戶隔離的特性很好的解決多個租戶內百萬虛擬例項的快速互訪問題。單例項和LB效能的提高了解決了現網中百萬節點資料計算的頻寬瓶頸。大大提高了系統的業務承載能力。VPC網路技術賦能AI和大資料計算平臺。
4 收益與展望
上線執行後,VPC架構簡化了網路架構,提高了網路的安全性、提高了系統的業務承載能力及運維效率,為使用者帶去良好的體驗並得到客戶的一致讚賞。
VPC版本仍在不斷迭代中,即將釋出的新功能有VPC統一管理容器、虛擬機器、邏輯等多種型別的計算例項,資料面的高可用,OVS 流表計算引擎高可用,100G最新智慧網路卡等。
作者簡介
Andy Wang OPPO高階後端工程師
主要負責VPC網路架構設計及實現。長期致力於SDN網路新技術實踐。曾在中興通訊、IBM、賽特斯擔任高階網路工程師及架構師。
獲取更多精彩內容,掃碼關注[OPPO數智技術]公眾號