在第三屆將來網絡發展大會SDN/NFV技術與應用創新分論壇上中國銀聯電子商務與電子支付國家工程實驗室周雍愷博士,發表了主題爲《開放交換機組網技術和前沿進展》的主題演講。html
本次演講內容主要有三大部分的內容,第一部分是開放交換機的前沿進展;第二部分介紹組網,尤爲是雲原生數據中心的組網;第三個部分是金融業對開放交換機所作一些研究以及驗證。本文對第1、二部份內容作了整理。算法
周博士首先談到了網絡技術的堆棧,網絡技術堆棧能夠分紅控制平面和數據平面,在控制平面有,北向接口有Neutron接口,還有K8S CNI接口,以及當前SDN界比較流行的IBN基於意圖的聲明式接口。開源的網絡控制器有ODL和ONOS,商業版有思科ACI、華爲AC等。南向接口最著名的是OpenFlow,還有最新的P4 runtime,固然傳統設備廠商可能更傾向於BGP、NETCONF、OPFLEX等接口。編程
再看數據平面,數據平面能夠分紅交換機操做系統、硬件抽象層和交換芯片。交換機操做系統是當前網絡開源的競爭焦點,開源的系統包括SONiC、FBOSS等。對硬件抽象層,如今發展比較好的是SONiC的SAI層。交換芯片目前正在向可編程的方向發展。網絡的開放應該仍是大勢所趨,上圖中左側紅色字表示的都是開源項目,能夠看到開源軟件已經可以實現對網絡堆棧的全覆蓋,標準硬件加開源軟件構成的開放交換機生態也逐漸成形。緩存
周博士將開放交換機的技術特徵概括爲以下三點。第一是小交換機能夠組大網,即相對於原來比較複雜的大框交換機,如今用標準的小盒子也可以擴展出一張很是大的網絡。第二是標準硬件加上開放控制,也即在整個的硬件體系上,如何可以構建一個更可控、更精簡的網絡操做系統。第三是交換芯片的可編程,對於SDN來講,芯片可編程纔是最完全的SDN,由於它已經把軟件定義的邊界下沉到了轉發流水線的層次。下面對這三點進行詳細介紹。安全
在談小交換機組大網以前,先介紹一下框式和盒式交換的差異,框式交換機經過背板交換鏈接多塊線卡,其內部的連線也是CLOS的結構。所以,一個大框能夠經過小交換機進行組合構建,用小交換機的好處有以下幾點:1)小交換機比較便宜,可節約成本。2)架構可擴展,由於框式交換機一旦被設計出來,它的整個數量就徹底肯定了。3)可控性更高,但與此同時管理的難度也會逐漸增長。下圖用於比較用框式和盒式堆三層網絡,對於框式交換機若是隻是組幾千個節點,一臺框式交換機就能夠搞定了,可是若是是幾萬個節點,就須要框式堆框式,每個框裏面至少3塊芯片,一路算下來,從一端到另一端要通過11跳,而盒式交換機組成三層網絡只須要5跳,因此在時延和跳數上是有優點的。服務器
當前盒式交換機單芯片的端口密度已經很大了,最高的12.8T(有128個100G的端口)都已經出來了,因此經過三層的CLOS就能夠組一個很大的網。具體計算一下,一個2級CLOS構成基本單元POD,能夠掛幾千臺機器,再擴展到三級CLOS,差很少能夠無阻塞互聯十萬左右的服務器,這對於單個數據中心而言已經足夠多了。三級CLOS組網的數量取決於中間層交換機的端口密度。網絡
今年OCP,Facebook發佈了最新的數據中心網絡設計——F16。他的前身是幾年前經典的F4組網,該組網的基本單元有48個接入交換機,4箇中間層交換機,差很少每一個POD能夠鏈接1000臺服務器。而後最上層的Spine交換機經過CLOS互聯能夠擴展互聯數萬臺服務器的規模,而且在任意兩個服務器節點之間有多條冗餘路徑能夠作負載分擔。當前最新的F16,中間層改爲了16*100G的互聯,最頂層的Spine交換平面有36個。若是有六棟樓的話,這種互聯方式還能夠將六個AZ的交換機Fabric進行全互連。架構
在這一部分中,周博士首先談到了路由控制,路由控制分兩種傳統的路由控制和SDN路由控制。對於傳統的路由控制,周博士對開源網絡操做系統SONiC和Stratum進行了比較。負載均衡
SONiC
對於SONiC來講,下圖是一個簡單的架構圖,控制平面僅實現了最核心的BGP協議以保障雲數據中心大規模三層網絡的互通。數據平面比較核心的是SAI層,這一層目前比較重要由於它的生態發展比較好,它下面支持的芯片很是多。用戶既能夠用Switch.p4這樣純可編程的芯片來支持SAI,也能夠經過博通、盛科等的芯片來實現SAI的接口,最終映射到物理的Chip Target。運維
開放交換機創新的技術中不得不提一下去堆疊技術。一般狀況下,服務器爲了保證高可用性,通常是雙連到兩臺交換機上,若是有一個交換機宕機了,另一個能夠接上。上圖中能夠看到TOR1和TOR2之間有兩條線,這兩條堆疊線的做用是同步MAC、ARP等狀態。爲了達到高可用性,最極端的作法是把兩臺交換機虛擬成一臺控制平面,當用戶登上TOR1和TOR2時會發現它們的管理地址是如出一轍的,這個虛擬程度是很高,可是額外複雜度、不穩定性也增長了。對此,阿里提出了一種比較創新的去堆疊的技術(VPC-lite),他們的想法是服務器bond口將ARP雙發到兩條鏈上,這樣TOR1和TOR2就不用同步ARP表了。當鏈路斷了,再顯示地通告一下BGP。這種方式達到了原來一樣的效果,但原來的堆疊線沒有了,交換機也相互獨立,實現方面也要簡單不少。
SONiC如今已經成爲OCP的一大招牌,由於OCP基本上是以硬件爲主,對於軟件方面,如今主推SONiC,也是目前生態最成熟的一個開放交換機操做系統,這套操做系統是微軟的華人工程師建立的,設計精簡前衛,它裏面不少組件的模塊性都比較好。在使用案例方面,微軟將SONiC部署到了全球44個region,領英當前40%的數據中心大規模在使用SONiC。此外,OCP也特地強調了中國對於SONiC的貢獻,由阿里牽頭ODCC(中國開放數據中心聯盟)專門成立了一個鳳凰項目,負責SONiC在中國的推廣。阿里是SONiC生產應用最先的也是規模比較大的企業。騰訊、百度包括京東也正在開展密集的驗證測試,並且不久也會正式生產上線。
Stratum
和SONiC相比,Stratum的理念更偏向計算機,它是以IT的方式來管理整個CT系統,也是比較有意思的。整個設計最頂層是遠端的控制器,接口端主要分紅三類,一個是P4ruetime,而後就是gOMI和gNOI。g表明gRPC,而不是傳統網絡設備所使用的NETCONF,這可使得策略的下發效率提高不少。下圖藍色框內即是Stratum的覆蓋範圍。
單獨的Stratum是沒有辦法進行組網獨立工做的,在上層它須要ONOS或者其餘的控制器配合,下層是經過Trellis組件提供Fabric SDN的路由控制。這個系統是純SDN選路,因此一旦鏈路端掉線,系統很快就可以響應,從新編制轉發表項,由此也不存在去堆疊之類的麻煩。
Stratum項目最先是由谷歌發起的,因此谷歌在內部確定已經大規模使用了Stratum(可是谷歌的控制器不是ONOS),整個項目預計今年6月正式開源。國內在去年12月份左右,由騰訊牽頭舉辦了一場Stratum Developer Day,同時 UCloud、阿里、銳捷也都在積極跟進或者密切關注。
RDMA
在網絡的開放控制中SDN解決的是路由控制的問題,而RDMA要解決的是流量控制。要解決什麼樣的流量呢?首先看下圖,若是是點對點兩兩互打的話,這個對交換機來講並無什麼太大的壓力,每兩點產生的流量再大,有線速保障的交換芯片均可以處理過來。可是若是碰到多打一的狀況,交換機芯片再強大也處理不了。對這種狀況只能從源端進行解決,把原來的大流量變成原來的三分之一,出口那邊纔可能扛住。在源端分流最經常使用的方法是從TCP的端側流控,但這有一個缺點,速度比較慢,有可能對端反饋過來的時候在交換機裏已經產生丟包了。因而有了RDMA,能夠作端到端的全程流控,整個網絡均可以參與流量擁塞的反壓。
這種多打一的狀況常常出如今大數據訓練場景下。另外對於25G和100G網絡這種狀況也很是突出,由於25G和100G網絡速度太快了,它的交換機的緩存撐不了很長時間,一旦有擁塞,交換機緩存就會迅速溢出,因此RDMA技術基本上會運用在25G/100G網絡中。
下圖是RDMA的技術實現,首先在網絡側須要優化配置PFC和ECN等參數,整個RDMA最難的就是這些參數該怎麼配。智能網卡側實現數據遠程搬運,同時能夠下降CPU的流控負擔。最後,原有的TCP協議棧也要從新改寫,替換爲RoCEv2 verbs的接口。RDMA最終的目標是高吞吐、低時延和不丟包。
RDMA技術最先應用於科學計算,是一套比較封閉並且價格比較昂貴技術。在以太網中,RDMA主要應用於大數據計算、分佈式存儲和深度學習網絡等大吞吐量,低時延的場景。目前,RDMA的使用其實已經比較普遍了,最先是微軟將其應用至雲數據中心的場景,BAT等互聯網公司主要用於爲AI訓練任務和分佈式存儲。華爲也推出了AIFabric這種重量級的產品。值得一提的是,整個RDMA網絡棧中,有一個單點,那就是邁絡思(Mellanox)的智能網卡。邁絡思對RDMA貢獻很大,它自己就是InfiniBand與RDMA技術的主要發明者。今年3月,英偉達以69億美金收購了這家以色列半導體公司,從此GPU內存中的數據就能夠經過RDMA實現「遠程搬運」了。在金融行業,招行和浦發已經分別有生產應用和深度驗證,銀聯也在驗證。
最後是可編程芯片(Programmable Switch Chip)。可編程交換芯片有三個特色,首先它確定是ASIC,第二要實現可編程的前提是性能不降級,第三要有特定的編程模型。
在編程模型方面,之前的交換芯片廣泛是固定的流水線,P4的編程模型是PISA,協議無關的交換流水線架構。下圖是P4的一個流水線,從圖中能夠看到每一級都是長的如出一轍的,中間是TM,用來緩衝入流水線和出流水線。它的核心仍然是高速交換、處理相關的數據,多了靈活匹配和靈活編輯,小容量的高速存儲和查找功能。使用P4語言,用戶能夠自定義報文頭、自定義表項,而後還能夠經過控制流把它串起來。固然也有些功能是P4實現不了的,好比變長URL的匹配,新的Hash算法,還有作大容量的存儲,這些都不可能在交換芯片上實現。
從體系架構的視角來看,更高性能始終是體系架構永恆的追求。從最先的單核再到多核,現在摩爾定律已經到了極限,因而各類領域相關的芯片(例如GPU、TPU和FPGA)將發揮重要做用,體系架構也將迎來一個新的黃金時代。對於P4使能的交換芯片來講,它能夠用於多節點分佈式的協做,像原來的兩兩單播能夠變成組播加速,還有就是服務器部分邏輯到可編程交換芯片等等。
整個P4應用場景差很少能夠概括爲四個虛擬的P4程序,第一個Telemetry是INT的功能,這個是當時P4的主打功能,仍是很驚豔的。其次是NFV,而後是Cluster,它能夠實現可編程SW+服務器集羣的架構。最後一個是Fabric的P4,它能夠作到服務和通訊的卸載。
P4的應用案例基本上是從去年P4 Summit上收集到的,用的最先的仍是阿里,當時介紹的是負載均衡的應用,一個單片的Tofino芯片是至關於100臺服務器的軟LB的性能,並且已經接受了2018雙十一場景的嚴酷考驗。UCloud在P4方面挖掘得很深,主要場景是在雲網關,或者說是vPC的網關,P2V網關,騰訊京東也有涉及。另外就是INT功能,廣泛是用在SONIC的集羣當中,實現流量的可視化。
上述內容是周博士第一部份內容。下面介紹第二部分雲原生時代的開放交換機組網。
從2015年開始容器化、微服務等等就開始火了,隨之雲原生一詞也漸漸傳入你們耳中。雲原生的目標是「業務」極速上線,這是整個的數據中心將來的一個發展方向。數據中心最先使用的是資源池化(Iaas的編排系統),對網絡存儲資源進行統一的管理。可是對於從應用的構建、部署的方式、彈性伸縮和高可用保障方面它並無本質性的改變,因此當時不少大佬們就提出來了雲原生的概念,就是說明原來的應用其實並非原生的,因此說如今提出的Paas服務化的理念是什麼呢?就是整個系統的能力都是下沉到平臺級層面,應用主要關注業務邏輯,再也不須要顧及負載均衡、彈性伸縮和高可用之類的運維能力。
從七層網絡架構來看雲原生網絡對組網的要求,周博士介紹了CNI接口和ServiceMesh(服務網格)。CNI接口是基礎的二三層網絡聯通,它的接口很是簡單,就是下圖中列舉的四個方法,主要就是要實現一個虛擬隔離的vPC網絡。四到七層高級網絡功能經過ServiceMesh(服務網格)實現,其中四到七層中的雲原生更增強調以服務爲中心的想法,就是把原來的實例IP給弱化了,更加關注服務的IP,其實就是一個虛IP或者是EIP。四到七層的網絡還提供安全可靠靈活高效的服務間通訊。
周博士還舉了3個雲原生組網的案例,其中之一是Istio服務網格原生的K8S處理服務間通訊主要是經過Iptables規則的機率匹配進行服務間的負載均衡,當規模一大iptables鏈式匹配會出現瓶頸,並且不少高級功能沒法實現。Istio則是在一個POD裏面加入了一個sidecar容器。sidecar將流量「劫持」後,就能夠實現流量限制、熔斷、AB發佈、分佈式追蹤等一系列的高級功能。右上是整個Istio的控制平面,和前面的Stratum有點像,都有配置策略下發和蒐集網絡數據部分。整個Istio周圍還有很是豐富的組件,用於監控的Prometheus+Grafana,用於分佈式追蹤的Kiali和Jaeger,能夠構成一個完整的閉環功能很是強大。
開放交換機的生態已經成型了,相關技術仍是有很是大的創新活力。雲原生將成爲將來DC網絡的重要驅動力。整個開放交換機市場成熟度還須要進一步打磨,企業用戶有義務積極試用,創新更多的應用場景。以上內容是周博士演講的內容,部份內容有刪減。