开放交换机组网技术和前沿进展
在第三屆未來網(wǎng)絡(luò)發(fā)展大會SDN/NFV技術(shù)與應(yīng)用創(chuàng)新分論壇上中國銀聯(lián)電子商務(wù)與電子支付國家工程實驗室周雍愷博士,發(fā)表了主題為《開放交換機組網(wǎng)技術(shù)和前沿進展》的主題演講。
本次演講內(nèi)容主要有三大部分的內(nèi)容,第一部分是開放交換機的前沿進展;第二部分介紹組網(wǎng),尤其是云原生數(shù)據(jù)中心的組網(wǎng);第三個部分是金融業(yè)對開放交換機所做一些研究以及驗證。本文對第一、二部分內(nèi)容做了整理。
網(wǎng)絡(luò)技術(shù)的堆棧
周博士首先談到了網(wǎng)絡(luò)技術(shù)的堆棧,網(wǎng)絡(luò)技術(shù)堆??梢苑殖煽刂破矫婧蛿?shù)據(jù)平面,在控制平面有,北向接口有Neutron接口,還有K8S CNI接口,以及當前SDN界比較流行的IBN基于意圖的聲明式接口。開源的網(wǎng)絡(luò)控制器有ODL和ONOS,商業(yè)版有思科ACI、華為AC等。南向接口最著名的是OpenFlow,還有最新的P4 runtime,當然傳統(tǒng)設(shè)備廠商可能更傾向于BGP、NETCONF、OPFLEX等接口。
再看數(shù)據(jù)平面,數(shù)據(jù)平面可以分成交換機操作系統(tǒng)、硬件抽象層和交換芯片。交換機操作系統(tǒng)是當前網(wǎng)絡(luò)開源的競爭焦點,開源的系統(tǒng)包括SONiC、FBOSS等。對硬件抽象層,現(xiàn)在發(fā)展比較好的是SONiC的SAI層。交換芯片目前正在向可編程的方向發(fā)展。網(wǎng)絡(luò)的開放應(yīng)該還是大勢所趨,上圖中左側(cè)紅色字表示的都是開源項目,可以看到開源軟件已經(jīng)能夠?qū)崿F(xiàn)對網(wǎng)絡(luò)堆棧的全覆蓋,標準硬件加開源軟件構(gòu)成的開放交換機生態(tài)也逐漸成形。
開放交換機的技術(shù)特征
周博士將開放交換機的技術(shù)特征歸納為如下三點。第一是小交換機可以組大網(wǎng),即相對于原來比較復(fù)雜的大框交換機,現(xiàn)在用標準的小盒子也能夠擴展出一張非常大的網(wǎng)絡(luò)。第二是標準硬件加上開放控制,也即在整個的硬件體系上,如何能夠構(gòu)建一個更可控、更精簡的網(wǎng)絡(luò)操作系統(tǒng)。第三是交換芯片的可編程,對于SDN來說,芯片可編程才是最徹底的SDN,因為它已經(jīng)把軟件定義的邊界下沉到了轉(zhuǎn)發(fā)流水線的層次。下面對這三點進行詳細介紹。
小交換機組大網(wǎng)
在談小交換機組大網(wǎng)之前,先介紹一下框式和盒式交換的差別,框式交換機通過背板交換連接多塊線卡,其內(nèi)部的連線也是CLOS的結(jié)構(gòu)。因此,一個大框可以通過小交換機進行組合構(gòu)建,用小交換機的好處有如下幾點:1)小交換機比較便宜,可節(jié)約成本。2)架構(gòu)可擴展,因為框式交換機一旦被設(shè)計出來,它的整個數(shù)量就完全確定了。3)可控性更高,但與此同時管理的難度也會逐漸增加。下圖用于比較用框式和盒式堆三層網(wǎng)絡(luò),對于框式交換機如果只是組幾千個節(jié)點,一臺框式交換機就可以搞定了,但是如果是幾萬個節(jié)點,就需要框式堆框式,每一個框里面至少3塊芯片,一路算下來,從一端到另外一端要經(jīng)過11跳,而盒式交換機組成三層網(wǎng)絡(luò)只需要5跳,所以在時延和跳數(shù)上是有優(yōu)勢的。
當前盒式交換機單芯片的端口密度已經(jīng)很大了,最高的12.8T(有128個100G的端口)都已經(jīng)出來了,所以通過三層的CLOS就可以組一個很大的網(wǎng)。具體計算一下,一個2級CLOS構(gòu)成基本單元POD,可以掛幾千臺機器,再擴展到三級CLOS,差不多可以無阻塞互聯(lián)十萬左右的服務(wù)器,這對于單個數(shù)據(jù)中心而言已經(jīng)足夠多了。三級CLOS組網(wǎng)的數(shù)量取決于中間層交換機的端口密度。
今年OCP,Facebook發(fā)布了最新的數(shù)據(jù)中心網(wǎng)絡(luò)設(shè)計——F16。他的前身是幾年前經(jīng)典的F4組網(wǎng),該組網(wǎng)的基本單元有48個接入交換機,4個中間層交換機,差不多每個POD可以連接1000臺服務(wù)器。然后最上層的Spine交換機通過CLOS互聯(lián)可以擴展互聯(lián)數(shù)萬臺服務(wù)器的規(guī)模,并且在任意兩個服務(wù)器節(jié)點之間有多條冗余路徑可以做負載分擔。當前最新的F16,中間層改成了16*100G的互聯(lián),最頂層的Spine交換平面有36個。如果有六棟樓的話,這種互聯(lián)方式還可以將六個AZ的交換機Fabric進行全互連。
網(wǎng)絡(luò)的開放控制
在這一部分中,周博士首先談到了路由控制,路由控制分兩種傳統(tǒng)的路由控制和SDN路由控制。對于傳統(tǒng)的路由控制,周博士對開源網(wǎng)絡(luò)操作系統(tǒng)SONiC和Stratum進行了比較。
SONiC
對于SONiC來說,下圖是一個簡單的架構(gòu)圖,控制平面僅實現(xiàn)了最核心的BGP協(xié)議以保障云數(shù)據(jù)中心大規(guī)模三層網(wǎng)絡(luò)的互通。數(shù)據(jù)平面比較核心的是SAI層,這一層目前比較重要因為它的生態(tài)發(fā)展比較好,它下面支持的芯片非常多。用戶既可以用Switch.p4這樣純可編程的芯片來支持SAI,也可以通過博通、盛科等的芯片來實現(xiàn)SAI的接口,最終映射到物理的Chip Target。
開放交換機創(chuàng)新的技術(shù)中不得不提一下去堆疊技術(shù)。通常情況下,服務(wù)器為了保證高可用性,一般是雙連到兩臺交換機上,如果有一個交換機宕機了,另外一個可以接上。上圖中可以看到TOR1和TOR2之間有兩條線,這兩條堆疊線的作用是同步MAC、ARP等狀態(tài)。為了達到高可用性,最極端的做法是把兩臺交換機虛擬成一臺控制平面,當用戶登上TOR1和TOR2時會發(fā)現(xiàn)它們的管理地址是一模一樣的,這個虛擬程度是很高,但是額外復(fù)雜度、不穩(wěn)定性也增加了。對此,阿里提出了一種比較創(chuàng)新的去堆疊的技術(shù)(VPC-lite),他們的想法是服務(wù)器bond口將ARP雙發(fā)到兩條鏈上,這樣TOR1和TOR2就不用同步ARP表了。當鏈路斷了,再顯示地通告一下BGP。這種方式達到了原來同樣的效果,但原來的堆疊線沒有了,交換機也相互獨立,實現(xiàn)方面也要簡單很多。
SONiC現(xiàn)在已經(jīng)成為OCP的一大招牌,因為OCP基本上是以硬件為主,對于軟件方面,現(xiàn)在主推SONiC,也是目前生態(tài)最成熟的一個開放交換機操作系統(tǒng),這套操作系統(tǒng)是微軟的華人工程師創(chuàng)建的,設(shè)計精簡前衛(wèi),它里面很多組件的模塊性都比較好。在使用案例方面,微軟將SONiC部署到了全球44個region,領(lǐng)英當前40%的數(shù)據(jù)中心大規(guī)模在使用SONiC。此外,OCP也特意強調(diào)了中國對于SONiC的貢獻,由阿里牽頭ODCC(中國開放數(shù)據(jù)中心聯(lián)盟)專門成立了一個鳳凰項目,負責SONiC在中國的推廣。阿里是SONiC生產(chǎn)應(yīng)用最早的也是規(guī)模比較大的企業(yè)。騰訊、百度包括京東也正在開展密集的驗證測試,而且不久也會正式生產(chǎn)上線。
Stratum
和SONiC相比,Stratum的理念更偏向計算機,它是以IT的方式來管理整個CT系統(tǒng),也是比較有意思的。整個設(shè)計最頂層是遠端的控制器,接口端主要分成三類,一個是P4ruetime,然后就是gOMI和gNOI。g代表gRPC,而不是傳統(tǒng)網(wǎng)絡(luò)設(shè)備所使用的NETCONF,這可以使得策略的下發(fā)效率提升很多。下圖藍色框內(nèi)便是Stratum的覆蓋范圍。
單獨的Stratum是沒有辦法進行組網(wǎng)獨立工作的,在上層它需要ONOS或者其他的控制器配合,下層是通過Trellis組件提供Fabric SDN的路由控制。這個系統(tǒng)是純SDN選路,所以一旦鏈路端掉線,系統(tǒng)很快就能夠響應(yīng),重新編制轉(zhuǎn)發(fā)表項,由此也不存在去堆疊之類的麻煩。
Stratum項目最早是由谷歌發(fā)起的,所以谷歌在內(nèi)部肯定已經(jīng)大規(guī)模使用了Stratum(但是谷歌的控制器不是ONOS),整個項目預(yù)計今年6月正式開源。國內(nèi)在去年12月份左右,由騰訊牽頭舉辦了一場Stratum Developer Day,同時 UCloud、阿里、銳捷也都在積極跟進或者密切關(guān)注。
RDMA
在網(wǎng)絡(luò)的開放控制中SDN解決的是路由控制的問題,而RDMA要解決的是流量控制。要解決什么樣的流量呢?首先看下圖,如果是點對點兩兩互打的話,這個對交換機來說并沒有什么太大的壓力,每兩點產(chǎn)生的流量再大,有線速保障的交換芯片都可以處理過來。但是如果碰到多打一的情況,交換機芯片再強大也處理不了。對這種情況只能從源端進行解決,把原來的大流量變成原來的三分之一,出口那邊才可能扛住。在源端分流最常用的方法是從TCP的端側(cè)流控,但這有一個缺點,速度比較慢,有可能對端反饋過來的時候在交換機里已經(jīng)產(chǎn)生丟包了。于是有了RDMA,可以做端到端的全程流控,整個網(wǎng)絡(luò)都可以參與流量擁塞的反壓。
這種多打一的情況經(jīng)常出現(xiàn)在大數(shù)據(jù)訓練場景下。另外對于25G和100G網(wǎng)絡(luò)這種情況也非常突出,因為25G和100G網(wǎng)絡(luò)速度太快了,它的交換機的緩存撐不了很長時間,一旦有擁塞,交換機緩存就會迅速溢出,所以RDMA技術(shù)基本上會運用在25G/100G網(wǎng)絡(luò)中。
下圖是RDMA的技術(shù)實現(xiàn),首先在網(wǎng)絡(luò)側(cè)需要優(yōu)化配置PFC和ECN等參數(shù),整個RDMA最難的就是這些參數(shù)該怎么配。智能網(wǎng)卡側(cè)實現(xiàn)數(shù)據(jù)遠程搬運,同時可以降低CPU的流控負擔。最后,原有的TCP協(xié)議棧也要重新改寫,替換為RoCEv2 verbs的接口。RDMA最終的目標是高吞吐、低時延和不丟包。
RDMA技術(shù)最早應(yīng)用于科學計算,是一套比較封閉而且價格比較昂貴技術(shù)。在以太網(wǎng)中,RDMA主要應(yīng)用于大數(shù)據(jù)計算、分布式存儲和深度學習網(wǎng)絡(luò)等大吞吐量,低時延的場景。目前,RDMA的使用其實已經(jīng)比較廣泛了,最早是微軟將其應(yīng)用至云數(shù)據(jù)中心的場景,BAT等互聯(lián)網(wǎng)公司主要用于為AI訓練任務(wù)和分布式存儲。華為也推出了AIFabric這種重量級的產(chǎn)品。值得一提的是,整個RDMA網(wǎng)絡(luò)棧中,有一個單點,那就是邁絡(luò)思(Mellanox)的智能網(wǎng)卡。邁絡(luò)思對RDMA貢獻很大,它本身就是InfiniBand與RDMA技術(shù)的主要發(fā)明者。今年3月,英偉達以69億美金收購了這家以色列半導(dǎo)體公司,今后GPU內(nèi)存中的數(shù)據(jù)就可以通過RDMA實現(xiàn)“遠程搬運”了。在金融行業(yè),招行和浦發(fā)已經(jīng)分別有生產(chǎn)應(yīng)用和深度驗證,銀聯(lián)也在驗證。
可編程交換芯片(更多內(nèi)容請看這里)
總結(jié)
以上是生活随笔為你收集整理的开放交换机组网技术和前沿进展的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。