未來DC數(shù)據(jù)中心的終極目標,是變成一臺超級計算機,有著幾乎無限的計算能力和存儲資源,超大帶寬、超低延遲,上面跑無數(shù)的虛擬機或者容器之類的云計算平臺。谷歌近期發(fā)布一篇關于Aquila網(wǎng)絡架構的文章,今天我們就順著最近大熱的DPU,來聊聊網(wǎng)絡架構。
作為芯片和通訊行業(yè)從業(yè)者,我們先從承載網(wǎng)聊起(也叫傳輸網(wǎng)),然后再說數(shù)據(jù)中心網(wǎng)絡,最后對照谷歌Aquila架構,展望一下網(wǎng)絡架構未來的演進趨勢。
1、從承載網(wǎng)聊起
一般我們說到承載網(wǎng),是指基站和核心網(wǎng)各網(wǎng)元之間的組網(wǎng)。手機通過空口接入基站,基站通過光纖、交換機,和核心網(wǎng)各網(wǎng)元進行組網(wǎng),最后通過核心路由器,匯入互聯(lián)網(wǎng)。如圖1所示。從2G時代到5G時代,承載網(wǎng)技術在不斷演進,如圖2所示。
SDH主要用在GSM/2G時代的語音承載(也叫CS電路交換,不是那個真人射擊游戲CS,而是Circuit Switching),TDM時分復用、雙向環(huán)狀組網(wǎng)、塊狀幀結構,憑借著極高的服務質量和可管理性,一度統(tǒng)治了傳輸網(wǎng),如圖3所示。市場經(jīng)濟中,做生意最難的不是生產(chǎn),而是找到合適、持續(xù)的買家來消費。語音時代,就是打電話,需求剛性、穩(wěn)定、明確,一切都好說。
圖3 SDH組網(wǎng)圖(圖片來源:ITU)
到了3/4G時代,語音通話占比急劇降低,IP業(yè)務比重越來越大,原因也不復雜,大家看一下自己打電話、玩微信、刷抖音的時間分配。IP和Eth這倆貨,都是秉承著無連接、盡力而為的原則(這兩點后面會反復提及),包大小變長、不固定,和SDH的剛性網(wǎng)絡格格不入。為了填平這個GAP,MSTP(MSTP = SDH + 以太網(wǎng) + ATM)、MSTP+被推了出來,給SDH續(xù)了十年左右的命。
但隨著IP占比逐漸達到壓倒性優(yōu)勢,SDH再也湊活不下去了,PTN應運而生。之前看過一個公式,PTN = MPLS + OAM + 保護 - IP,要理解這個公式,咱們得先看看MPLS是啥,如圖4所示。
圖4 IP與MPLS轉發(fā)的基本行為對比(圖片來源:《圖解網(wǎng)絡硬件》)
OSI參考模型中,ATM和Eth都位于L2(當然Eth也是有L1物理層規(guī)范的),但設計原則、幀結構完全不同。以太幀的原則是變長、無連接、盡力而為,ATM是定長、有連接(其實ATM是TDM技術的一個升級、優(yōu)化版本),在兩者的競爭中,憑借著和IP的設計理念一致,Eth逐漸勝出,現(xiàn)在ATM都不咋用了。
Eth和IP網(wǎng)絡中,無連接和盡力而為,是柄雙刃劍。在非超低延遲組網(wǎng)中,這個問題不大,交換機根據(jù)MAC地址,進行存儲轉發(fā),路由器根據(jù)IP地址和子網(wǎng)掩碼,進行最長匹配,而且中高端的Switch和Gateway,目前都是ASIC硬件加速,部分掩蓋了QoS和延遲的缺陷。
但在超低延遲組網(wǎng)中,比如5G uRLLC承載和數(shù)據(jù)中心網(wǎng)絡,QoS和延遲是關鍵指標。既然Eth/IP和ATM各有千秋,業(yè)界就搞出了個MPLS。簡單來講,MPLS屬于OSI參考模型中的2.5層,向IP提供連接服務,本質是隧道技術的一種,L2可以采用Eth,也可以用其他的層二技術。
傳統(tǒng)路由中,分為動態(tài)路由和靜態(tài)路由。動態(tài)路由主要由RIP、OSPF、BGP這些路由協(xié)議(通過UDP/TCP承載),在Gateway之間同步路由表,實際上是無連接的分布式處理。因為IP網(wǎng)絡是M國軍方設計的,一開始的目標,就是在極端情況下,各核心部門,依然能夠保持通訊暢通,所以分布式、去中心化的設計是必然的。帶來的額外負擔,就是每個路由器節(jié)點,都要維護一個巨大的路由表。如果你仔細閱讀谷歌論文,會發(fā)現(xiàn)Aquila中,會在TiN中只維護一個小表,這個和MPLS類似。
MPLS架構中,為了建立連接、減少路由表的查找和維護負擔,會根據(jù)路由協(xié)議下發(fā)的路由表信息,由邊緣路由器節(jié)點,生成局部標簽,這個Tag就相當于一條虛擬的鏈接標識,后面MPLS的內部路由器,根據(jù)標簽直接轉發(fā),相當于對路由表進行了提取和抽象,后面直接用即可,所以MPLS和動態(tài)路由,還是有很多關聯(lián)。
PTN公式中的 - IP,實際上就是把MPLS中的動態(tài)路由,改成了由控制面的網(wǎng)管,進行統(tǒng)一的配置和下發(fā),同時L2層面,硬件支持OAM PDU幀的解析、處理,這方面借鑒了SDH中豐富的可維護性設計,大家都在互相融合,或者說互相抄襲。
2、聊聊數(shù)據(jù)中心網(wǎng)絡
聊完運營商的承載網(wǎng),再來看看數(shù)據(jù)中心(DC)網(wǎng)絡。在這兩種網(wǎng)絡的組網(wǎng)拓撲中,都可以分為接入層、匯聚層、核心層,只是DC網(wǎng)絡的演進更為劇烈。如圖5所示。
圖5 數(shù)據(jù)中心網(wǎng)絡架構(圖片來源:Cisco官網(wǎng))
通信企業(yè)經(jīng)常說端、管、云協(xié)同演進,這里面的端,主要指手機移動終端,管主要指承載網(wǎng),云要稍微解釋一下。
通常意義上,云計算是互聯(lián)網(wǎng)廠商的領域,畢竟他們的各種業(yè)務,比如微信、支付寶、抖音的后端,都是通過PaaS、IaaS這些云計算平臺,承載在數(shù)據(jù)中心機房的一堆服務器上。但實際上,現(xiàn)在核心網(wǎng)的網(wǎng)元,都已經(jīng)云化了,這一點和互聯(lián)網(wǎng)廠商是一致的。
早期亞馬遜這些互聯(lián)網(wǎng)巨頭,發(fā)現(xiàn)他們自家的服務器和云服務,在滿足自身業(yè)務需求的同時,還有富余,可以對外售賣,這就是目前主流的公有云由來。另外說一句,亞馬遜在云計算領域,目前是無可爭議的王者,引領各種技術路線的演進。
云計算都是承載在大量的服務器上,這些機器部署在數(shù)據(jù)中心機房中。本來傳統(tǒng)的C/S架構,終端發(fā)請求,比如訪問某個網(wǎng)站頁面,通過承載網(wǎng)、骨干網(wǎng)的一堆交換機、路由器,一路到了數(shù)據(jù)中心的機房,服務器就給你返回一堆網(wǎng)頁數(shù)據(jù),終端收到數(shù)據(jù)后,瀏覽器引擎解析、展示。
但隨著搜索引擎、大數(shù)據(jù)處理、人工智能這些領域的應用興起,DC的單臺服務器無法滿足大量計算和存儲的需求,分布式架構成為必然。同時云計算中的熱遷移、備份、容災和隔離需求日漸增多,DC原有的南北向(C/S)和東西向(內部節(jié)點之間)流量對比關系發(fā)生變化,原有的松耦合帶來的通信瓶頸,日趨明顯。
這里多說一句存儲,在SSD固態(tài)硬盤之前,HDD是絕對的主流。受限于物理磁盤的尋道時延,HDD讀寫延遲早已逼近物理極限,所以那個時候DC內部存儲部分的網(wǎng)絡時延,都顯得問題不大。SSD沒有物理磁盤,內部是一堆Flash器件 + 控制器,速度極快,配合專為非易失性存儲設計的NVMe和NVMeOF,網(wǎng)絡時延從小頭變成了大頭,木桶效應之下,網(wǎng)絡帶寬、時延和QoS優(yōu)化勢在必行。
在DPU之前,業(yè)界整了一堆技術和解決方案,比如英特爾,他們一直是以處理器為核心,主推DPDK加速,通過用戶態(tài)驅動,ByPass內核協(xié)議棧,中斷改為Poll輪詢,降低了用戶態(tài)和內核態(tài)的切換開銷,以及內存Copy負擔,配合一些新增的類似AVX 512的專用指令,但本質上還是TCP/IP那一套。
Mellanox(已被Nvidia收購),搞出了個IB(Infinite Band,聽名字就很牛,無限帶寬),上層承載RDMA協(xié)議,憑借其超高帶寬、超低延遲、超可靠傳輸,在DC內部大行其道,但IB需要專用的NIC網(wǎng)卡、連接線纜和交換機,一套下來貴的嚇人,急需降成本。如圖6所示。
這里說一下,RDMA和TCP/IP是并列或者說競爭關系,TCP/IP的優(yōu)點是生態(tài)繁榮、穩(wěn)定,缺點是軟件參與過多,準確說是內核協(xié)議棧,所以延遲很大。SmartNIC中,會通過硬件offload一部分TCP/IP軟件開銷,但TCP/IP協(xié)議棧的設計理念和實現(xiàn)復雜度,就不是為了硬件設計的。
圖6 Infinite Band架構(圖片來源:知乎 @Savir)
RDMA則不同,設計之初,和IB的L2/Phy配合,都是硬化實現(xiàn),軟件開銷急速降低,省出來的CPU資源,給云計算的用戶和上層應用來用,如圖7所示,就問你香不香。IB好是好,就是太貴,能不能像ATM和Eth融合一樣,搞出了個類似MPLS的新玩意呢,這就是后來的RoCE和RoCEv2。通過以太網(wǎng)卡和以太交換機,來承載RDMA協(xié)議,這樣一來,只要網(wǎng)卡升級一下,線纜和交換機都是現(xiàn)成的,只是上層應用需要調用Verbs接口,替換原來的Socket接口。
圖7 RDMA(圖片來源:知乎 @Savir)
最近DPU賽道很火,Nvidia收購Mellanox、Intel收購Barefoot,最近AMD把幾位前Cisco員工創(chuàng)辦的Pensando攬入麾下,加上亞馬遜的Nitro、阿里的神龍架構,還有最近國內幾家初創(chuàng)公司,市場熱鬧的一塌糊涂。
我們來看DPU幾個核心的功能,首先是硬件Offload:
1、網(wǎng)絡:RDMA、OVS交換機等
2、存儲:NVMeOF(Over Fabric)等
3、虛擬化:Virtio、SR-IOV、VxLAN(基于UDP的一種大二層隧道技術)4、安全:加解密、IPSec等
5、數(shù)據(jù):壓縮、解壓
然后是IaaS/PaaS接管:
6、雙Hypervisor:原有的Hyper變輕、變薄,新增的下沉到DPU內置的核,一般是ARM,最近有采用RISC-V替換的苗頭。
目前關于DPU,業(yè)界還沒有統(tǒng)一的定義或者規(guī)范,將來也不一定會有。DPU是DSA架構的一種實踐,屬于SmartNIC的升級版或者說下一代,同時ToR交換機、Spine - Leaf架構網(wǎng)絡,都還是存在的。
3、暢想未來網(wǎng)絡架構的演進趨勢
現(xiàn)在,我們終于可以開始討論谷歌的Aquila,先對照圖8所示框架圖,說下論文中的幾個關鍵術語:
1、Aquila:數(shù)據(jù)中心的一種新型實驗性質的網(wǎng)絡架構2、TiN:ToR in NIC,NIC和ToR交換機二合一,實現(xiàn)網(wǎng)卡+交換3、GNet:谷歌自定義二層子網(wǎng)和外部Eth/IP網(wǎng)絡之間的網(wǎng)關。
圖8 Aquila框架圖(圖片來源:谷歌Aquila論文)
從論文中可以看出,谷歌在現(xiàn)有的DC以太局域網(wǎng)基礎上,增加了自己設計的一個二層子網(wǎng),在不動現(xiàn)有DC Spine Leaf + Eth/IP架構的基礎上,構建一個超低延遲的L2內網(wǎng),滿足數(shù)據(jù)中心分布式計算、存儲的超低時延要求。
從架構上看,Aquila = 自建IB + 傳統(tǒng)Eth/IP,既不是Overlay,也不是Underlay。TiN既然實現(xiàn)了NIC + 交換機的功能,那就繞不開SDN。Eth/IP都是盡力而為的分布式設計,加上多設備廠商混戰(zhàn),所以在前期,QoS、組網(wǎng)、網(wǎng)優(yōu)、清障都非常麻煩,長期下去要炸毛。
原有的交換機/路由器中,控制面和數(shù)據(jù)面都有,各自為戰(zhàn)。SDN實際上就是把各個交換機/路由器的控制面職能回收,統(tǒng)一管理,讓SW/Gateway只負責數(shù)據(jù)面轉發(fā)。控制器和交換機之間建立安全通道,通過各種消息,在合適的時機下發(fā)流表,也就是大家常說的OpenFlow,指揮交換機如何對各個以太幀/IP報文進行處理。
OpenFlow流表中,有三個關鍵要素,key + action + counter。交換機通過key(比如經(jīng)典的五元組),查找TCAM表,進行Eth幀/IP報文匹配,然后執(zhí)行流表中的action,同時更新各種counter計數(shù)。流表類似于處理器架構中的指令集,比如指令中有Opcode,取指完成后會進行譯碼,根據(jù)指令類型,進行ALU計算或者訪存,最后將結果寫回寄存器或者內存。
從生態(tài)角度,NIC和交換機/路由器大家各司其職,Aquila中的TiN搞了個二合一,相當于是把DC市場切了一份出來,搞自己獨立的L2子網(wǎng),這部分市場的NIC/DPU/ToR都被干掉了,然后谷歌還要搞自己的SDN控制器。
再來看一下Aquila的關鍵特性:
1、信元交換:取代原有的以太幀
2、無損網(wǎng)絡:強大的流控和QoS
3、自適應路由:TiN之間協(xié)同。
回憶一下開篇介紹的ATM、Eth、MPLS,有沒有發(fā)現(xiàn)相似之處。其實現(xiàn)在交換機、路由器內部設計中,Eth幀進來以后,也會轉換成各家自定義的信元,進行CrossBar的交換和處理?;谛旁陀羞B接的設計,流控和QoS實現(xiàn)會簡單很多。
可以對照一下最近很火的Chiplet。傳統(tǒng)的中小型SoC設計中,片上網(wǎng)絡一般是共享總線,比如AMBA3 AXI。隨著片內核的數(shù)量增多,衍生出Ring環(huán)形總線和Mesh網(wǎng)絡,此時的片內,實際上已經(jīng)有了交換/路由的影子,幾十上百個核,通過內部專用信號線,連上片內的路由節(jié)點,然后多個路由節(jié)點之間,進行報文收發(fā),實現(xiàn)Mesh組網(wǎng),只是內部的報文,格式一般都是CPU廠商自定義的,比如ARM的AMBA5 CHI。
隨著單Die面積變大,受晶圓面積和良率關系限制,單芯片方案逐漸顯露瓶頸,無法集成更多的核或者加速引擎,多芯片拼接需求增多,加上2.5D/3D高級封裝技術,應用日趨成熟,類似HBM這種堆疊的Chiplet方案也開始增多。前段時間英特爾搞了個UCIe聯(lián)盟,想在Chiplet領域復制PCIe的輝煌,其實本質就是片間互聯(lián)網(wǎng)絡的生態(tài),開始構建了。
回到開篇的超級計算機話題,從SoC片內總線,到Chiplet片間互聯(lián)網(wǎng)絡,再到谷歌Aquila實驗性的數(shù)據(jù)中心全新二層子網(wǎng),其實本質都是為了這個終極的目標來服務,從晶圓、基板、PCB,到數(shù)據(jù)中心服務器之間,超大帶寬、超低延遲、超強流控的網(wǎng)絡,在從內向外擴展。因為在數(shù)據(jù)中心領域,運營商的話語權不像電信承載網(wǎng)這么大,芯片巨頭和云計算廠商,有動力、有預算、也有技術空間去進行重構、優(yōu)化。
運營商的承載網(wǎng),在5G eMMB超高帶寬、URLLC超低延遲的壓力和需求下,正在進行劇烈的變化和演進,5G承載和LTE承載之間,已經(jīng)發(fā)生了巨大的變化和改進。MPLS、PTN、OTN這些技術能在承載網(wǎng)落地生根,除了其高效的OAM外,強大的QoS亦功不可沒,當然前提是基站和核心網(wǎng)之間的組網(wǎng)中,網(wǎng)絡的動態(tài)拓撲變化不是非常大。如圖9所示。
圖9 網(wǎng)絡切片(圖片來源:無線深海)
谷歌的Aquila數(shù)據(jù)中心網(wǎng)絡架構,從某種程度上,也是借鑒了CT網(wǎng)絡架構的一些理念,來解決IT網(wǎng)絡中的時延確定性需求,撇開了傳統(tǒng)的二層以太網(wǎng),繞過了Nvidia收購Mellanox后把持的Infinite Band,構建了一個類似RDMA的軟硬件全棧生態(tài),為此還專門設計了TiN和GNet芯片(工藝節(jié)點未知),投入如此巨大的資源,相信如同其AI領域的TensorFlow框架一樣,這一切只是個開始,DPU的大幕正在徐徐拉開,我們拭目以待。
正如計算機體系結構的一代宗師,David Patterson和John Hennessy,在其2017年著名的論文《計算機體系架構的新黃金時代》中所預言的那樣,“計算機體系結構領域將迎來又一個黃金十年,就像20世紀80年代那時一樣,新的架構設計將會帶來更低的成本,更優(yōu)的能耗、安全和性能。”
正所謂軟件定義一切、硬件加速一切、網(wǎng)絡連接一切。
END
小知識1:DPU是Data Processing Unit的簡稱,它是最新發(fā)展起來的專用處理器的一個大類,是繼CPU、GPU之后,數(shù)據(jù)中心場景中的第三顆重要算力芯片,為高帶寬、低延遲、數(shù)據(jù)密集的計算場景提供計算引擎。
小知識2:Aquila是一種實驗性的數(shù)據(jù)中心網(wǎng)絡架構,將超低延遲作為核心設計目標,同時也支持傳統(tǒng)的數(shù)據(jù)中心業(yè)務。Aquila使用了一種新的二層基于單元的協(xié)議、GNet、一個集成交換機和一個定制的ASIC,ASIC和GNet一同設計,并具有低延遲遠程存儲訪問(RMA)。Aquila能夠實現(xiàn)40?s以下的IP流量拖尾結構往返時間 (RTT) 和低于10?s的跨數(shù)百臺主機的RMA執(zhí)行時間。