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