摘要:在實踐中,我們開發(fā)并上線了網(wǎng)關和負載均衡網(wǎng)關。而負載均衡網(wǎng)關則支持無縫替換傳統(tǒng)交換機實現(xiàn)網(wǎng)關集群,支持一致性,并支持根據(jù)任意字段,內(nèi)存和端口來計算哈希,支持協(xié)議。
網(wǎng)絡作為信息時代的重要載體,在云服務的快速發(fā)展下形成了獨具特色的“虛擬網(wǎng)絡”服務架構(gòu)和模式。12月19日,2020中國云網(wǎng)絡峰會于北京順利召開,會上UCloud虛擬網(wǎng)絡VPC負責人陳煌棟給大家?guī)砹搜葜v《UCloud VPC技術演進之路》,著重介紹了UCloud在虛擬網(wǎng)絡更新迭代過程中遇到的問題以及如何根據(jù)軟硬件等方面進行改進的網(wǎng)絡實踐。
UCloud的VPC網(wǎng)絡從2012年上線至今經(jīng)歷了三次大的技術演進,從最早的經(jīng)典網(wǎng)絡過渡到VPC網(wǎng)絡,并形成了目前軟硬件一體化的VPC 3.0架構(gòu)。
早期的經(jīng)典網(wǎng)絡
和業(yè)界的發(fā)展歷程類似,在早期,UCloud的數(shù)據(jù)中心網(wǎng)絡實際以經(jīng)典網(wǎng)絡為主。云主機和宿主機都位于一個大二層網(wǎng)絡中,網(wǎng)絡轉(zhuǎn)發(fā)依賴linux bridge,而隔離依賴控制面維護的iptables、ebtables規(guī)則。
隨著網(wǎng)絡規(guī)模不斷擴大,經(jīng)典網(wǎng)絡也暴露了諸多問題:
VPC 2.0架構(gòu):基于SDN技術實現(xiàn)的VPC網(wǎng)絡
正是存在以上問題,UCloud在2016年底開發(fā)并上線了基于VPC 2.0架構(gòu)的VPC網(wǎng)絡,并最終幫助客戶無縫遷移到了VPC網(wǎng)絡。
在VPC 2.0架構(gòu)中,我們基于SDN技術實現(xiàn)了網(wǎng)絡的虛擬化,通過在轉(zhuǎn)發(fā)平面引入OpenVSwitch和OpenFlow完成Overlay流量的轉(zhuǎn)發(fā)與隔離,在控制平面開發(fā)了SDN 控制器來完成Flow的管理。
在VPC 2.0中,我們通過Packet-In和Push相結(jié)合的方式來下發(fā)Flow規(guī)則。主動推送路由表、ACL相關的Flow,而點到點轉(zhuǎn)發(fā)的Flow則依賴Packet-In機制上送到控制器完成Flow的下發(fā)。
此外,我們基于DPDK技術開發(fā)了諸多東西向和南北向網(wǎng)關,比如負載均衡網(wǎng)關、混合云網(wǎng)關、裸金屬物理云網(wǎng)關等,這些網(wǎng)關會和VPC進行直接交互來完成流量的轉(zhuǎn)發(fā),實現(xiàn)VPC到異構(gòu)網(wǎng)絡訪問。
在VPC 2.0的長期運營中,我們也發(fā)現(xiàn)了諸多問題:
VPC 3.0架構(gòu):軟硬件一體化的新一代VPC網(wǎng)絡
為了解決VPC 2.0下的這些問題,我們做了很多虛擬網(wǎng)絡技術方面的探索和改進,最終形成了軟硬件一體化的VPC 3.0架構(gòu)。
在VPC 3.0架構(gòu)中,最大的特點就是軟硬件協(xié)同,轉(zhuǎn)發(fā)面引入了非常多的轉(zhuǎn)發(fā)網(wǎng)元,包括內(nèi)核版ovs、硬件卸載版ovs、智能網(wǎng)卡、P4和DPDK等,因此如何適配諸多轉(zhuǎn)發(fā)面網(wǎng)元并保持良好的擴展性是控制面需要考慮的重要問題。
網(wǎng)元適配
在VPC 3.0控制平面中,我們引入了模型層(Model Layer)、中臺層(Middle Layer)、映射層(Mapping Layer)和推送層(DataPath Layer)等概念和服務。在適配網(wǎng)元時,統(tǒng)一的業(yè)務對象(如Subnet)會在模型層生成,并在中臺層被路由給映射層,在映射層完成業(yè)務對象到不同網(wǎng)元對象的映射,如OpenFlow對象、P4對象、TC對象。
而后網(wǎng)元對象會再次經(jīng)過中臺層路由給推送層。推送層則關心具體的轉(zhuǎn)發(fā)網(wǎng)元,實現(xiàn)高效、高性能的轉(zhuǎn)發(fā)對象推送。
動態(tài)學習
為了解決VPC 2.0架構(gòu)中的Packet-In問題,我們引入了主動推送和動態(tài)學習相結(jié)合的Flow下發(fā)方式,以完成Flow的高效下發(fā)。我們基于P4和可編程芯片開發(fā)了VPC網(wǎng)關BGW,BGW會和位于計算節(jié)點的Datapath Controller運行DCP(Datapath Control Protocol)協(xié)議來完成流表的學習和流量的offload。
具體實現(xiàn)原理是:當ovs既有規(guī)則無法滿足轉(zhuǎn)發(fā)時,通過默認Flow轉(zhuǎn)發(fā)給BGW,而BGW除了正確將流量轉(zhuǎn)發(fā)至目的地之外,也會按照DCP協(xié)議構(gòu)造一個UDP報文發(fā)送給源端Datapath Controller,而Controller也會根據(jù)該報文學習到下發(fā)Flow所需的關鍵信息,因此實現(xiàn)Flow的動態(tài)學習和流量從BGW向ovs的offload。
相比于VPC 2.0的Packet-In機制,動態(tài)學習帶來了以下好處:
控制面中臺
此外我們構(gòu)建了控制平面的中臺能力,通過中臺層實現(xiàn)了諸多通用能力,包括對象路由、一致性緩存、對象分片、對象灰度等,使得在開發(fā)不同產(chǎn)品、適配不同轉(zhuǎn)發(fā)面時都可以快速復用這些已經(jīng)定義良好、實現(xiàn)良好的通用能力,以此提高控制面的可靠性和性能。
硬件卸載
在轉(zhuǎn)發(fā)面演進中,我們也從軟件逐步過渡到硬件。從早期的kernel bridge和kernel ovs轉(zhuǎn)發(fā),逐步切換到目前的硬件卸載ovs、智能網(wǎng)卡等硬件網(wǎng)元來加速轉(zhuǎn)發(fā)性能。在快杰云主機中,通過卸載ovs,將網(wǎng)絡轉(zhuǎn)發(fā)能力提升到25G帶寬、1000w pps和10G外網(wǎng)帶寬。
同時,網(wǎng)關也逐漸從DPDK技術演進到目前基于P4的可編程芯片。在P4實踐中,我們開發(fā)并上線了VPC網(wǎng)關BGW和負載均衡網(wǎng)關CGW。VPC網(wǎng)關主要支持VPC內(nèi)的二三層流量轉(zhuǎn)發(fā)和ARP代答,并支持Flow Offload。而負載均衡網(wǎng)關則支持無縫替換傳統(tǒng)交換機ECMP實現(xiàn)網(wǎng)關集群,支持一致性hash(Maglev Hashing),并支持根據(jù)任意字段(vni,內(nèi)存ip和端口)來計算哈希,支持ipv4/ipv6 overlay協(xié)議。對于CGW的使用場景之一就是實現(xiàn)網(wǎng)關集群的sharding和灰度。
異構(gòu)網(wǎng)絡
在VPC 3.0架構(gòu)中,我們通過引入UXR這樣的中心化網(wǎng)關來完成異構(gòu)網(wǎng)絡的解耦,使得異構(gòu)網(wǎng)絡在和VPC通信時可以彼此解耦,無需關心VPC的網(wǎng)絡細節(jié),從而縮小網(wǎng)絡邊界,使得網(wǎng)絡更內(nèi)聚。
此外,我們也引入了VPC網(wǎng)關來實現(xiàn)VPC內(nèi)的流量轉(zhuǎn)發(fā)和流表的動態(tài)學習。
同時,裸金屬物理云產(chǎn)品也向智能網(wǎng)卡演進,我們基于智能網(wǎng)卡實現(xiàn)了kernel ovs的卸載和NVGRE隧道的卸載,并通過bonding技術提升網(wǎng)絡帶寬至40G。
服務架構(gòu):微服務化
在服務架構(gòu)中,我們也從單體架構(gòu)逐步演進到微服務架構(gòu)。
在單體架構(gòu)中,我們是基于自有框架和TCP、ProtoBuf實現(xiàn)的分布式系統(tǒng),在長期維護過程中也出現(xiàn)諸多問題:
因此,我們按照服務邊界進行了拆分,將單體應用拆分成微服務,并引入了Istio、Kubernetes、gRPC等框架和組件。
在微服務架構(gòu)中,我們?nèi)〉昧巳缦聝?yōu)點:
在微服務化的過程中我們也遇到了很多挑戰(zhàn),維護一個大型微服務系統(tǒng)會給整體服務帶來更多的復雜性和不確定性,也更考驗我們的服務治理能力,因此微服務化的背后我們也做了很多努力。
Telemetry和故障定位
隨著云計算的發(fā)展,云網(wǎng)絡的規(guī)模也在不斷擴大,為了在日益復雜的云網(wǎng)絡環(huán)境中定位網(wǎng)絡問題,我們往往要回答內(nèi)網(wǎng)流量追蹤的三大痛點:
為了解決以上問題,我們設計和開發(fā)了UCloud的全鏈路的高性能探測系統(tǒng)。
該系統(tǒng)的最大的特點是對網(wǎng)元的要求非常小,只需要overlay/underlay網(wǎng)元支持流量鏡像、ERSPAN即可,而無需可編程能力。通過將INT Packet(特殊染色的TCP報文)在各網(wǎng)元的出入向鏡像給Telemetry Cluster,我們可以構(gòu)建出端到端的報文bitmap,并據(jù)此分析出通信結(jié)果(通信是否正常、是否丟包、丟在了哪里)、端到端的近似時延、以及端到端的實際通信鏈路。
此外,配合我們的活躍流分析系統(tǒng),可以實現(xiàn)VPC內(nèi)的活躍流快速探測。在變更時我們可以通過這樣的機制快速驗證變更前后的活躍流通信狀態(tài)、通信鏈路是否發(fā)生異常,從而快速、可靠的發(fā)現(xiàn)潛在問題。
總結(jié)
在最新的VPC3.0架構(gòu)下,UCloud VPC支持高性能網(wǎng)絡轉(zhuǎn)發(fā)(內(nèi)網(wǎng)包量最高可達1000萬PPS,單個EIP支持最大10Gb外網(wǎng)帶寬),除IPv4外,UCloud VPC也提供了對IPv6的原生支持,幫助客戶快速構(gòu)建IPv6 VPC網(wǎng)絡。同時,通過ACL和安全組的支持,用戶可以實現(xiàn)對VPC內(nèi)資源細粒度的安全訪問控制。
未來,UCloud VPC團隊將密切關注網(wǎng)絡相關的軟硬件發(fā)展,并消化吸收符合自身需求的新技術,持續(xù)為用戶打造安全、穩(wěn)定、高性能的VPC云服務。
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/125993.html
摘要:期間筆者有幸采訪了虛擬網(wǎng)絡負責人周健,更近距離的了解在異構(gòu)網(wǎng)絡下的創(chuàng)新歷程。周健表示異構(gòu)網(wǎng)絡跨域互聯(lián)存在幾個難點,安全隔離性能保障用戶體驗一致性。2020年10月23日,UCloud用戶大會暨TIC 2020大會于上海召開,以探討云端構(gòu)建,一起創(chuàng)見未來為主題。期間筆者有幸采訪了UCloud虛擬網(wǎng)絡負責人周健,更近距離的了解UCloud在異構(gòu)網(wǎng)絡下的SDN創(chuàng)新歷程。今年1月20日,公司正式登陸...
摘要:對此,提供基于內(nèi)網(wǎng)的高可用服務,內(nèi)網(wǎng)通過前后三代廣播集群的設計演進,解決了復雜異構(gòu)網(wǎng)絡下的廣播實現(xiàn)問題,獲得秒級高可用切換能力,并能夠很好的支持物理云。宋體下面,本文將對秒級切換的內(nèi)網(wǎng)高可用服務進行詳細介紹。快節(jié)奏的生活,任何的業(yè)務異常 / 中斷都是不能容忍的。 在無人化超市選購完成進行結(jié)賬時,結(jié)賬頁面突然卡住,無法完成購買操作。這時該選擇放棄手中的商品 or 繼續(xù)等待? 酒店辦...
摘要:存儲方面,容器目前支持了兩種類型的存儲可以多點讀寫的網(wǎng)絡文件系統(tǒng)和僅單點讀寫的云硬盤。通過添加對協(xié)議的支持,輕量級虛擬機可以直接對接到服務,從而實現(xiàn)了對高性能的型云硬盤掛載和使用。Cube誕生背景 隨著云原生技術的推廣及落地,容器技術在企業(yè)生產(chǎn)環(huán)境中的使用比重越來越大。Kubernetes作為容器編排的事實標準,在企業(yè)服務中被大量采用。UCloud容器團隊在2018年推出了Kubern...
摘要:存儲方面,容器目前支持了兩種類型的存儲可以多點讀寫的網(wǎng)絡文件系統(tǒng)和僅單點讀寫的云硬盤。通過添加對協(xié)議的支持,輕量級虛擬機可以直接對接到服務,從而實現(xiàn)了對高性能的型云硬盤掛載和使用。Cube誕生背景隨著云原生技術的推廣及落地,容器技術在企業(yè)生產(chǎn)環(huán)境中的使用比重越來越大。Kubernetes作為容器編排的事實標準,在企業(yè)服務中被大量采用。UCloud容器團隊在2018年推出了Kubernetes...
摘要:今天,阿里資深技術專家天羽為我們講述阿里數(shù)據(jù)庫的極致彈性之路。二容器化彈性,提升資源效率隨著單機服務器的能力提升,阿里數(shù)據(jù)庫在年就開始使用單機多實例的方案,通過和文件系統(tǒng)目錄端口的部署隔離,支持單機多實例,把單機資源利用起來。 showImg(https://segmentfault.com/img/remote/1460000017333275); 阿里妹導讀:數(shù)據(jù)庫從IOE(IBM...
閱讀 3540·2023-04-25 20:09
閱讀 3743·2022-06-28 19:00
閱讀 3064·2022-06-28 19:00
閱讀 3087·2022-06-28 19:00
閱讀 3178·2022-06-28 19:00
閱讀 2883·2022-06-28 19:00
閱讀 3051·2022-06-28 19:00
閱讀 2641·2022-06-28 19:00