這篇文章主要講的內(nèi)容是Google在假設(shè)好B4后侨舆,從2013年以來(lái)到2018年5年時(shí)間內(nèi)對(duì)B4的升級(jí)改造和技術(shù)更新,以及在運(yùn)維過(guò)程中遇到的問(wèn)題解決問(wèn)題的經(jīng)驗(yàn)總結(jié),還有一些有待更進(jìn)一步研究的開放性問(wèn)題。因?yàn)楸救瞬⒉皇侵饕獙W(xué)的網(wǎng)絡(luò)禽炬,只是選的課程相關(guān),所以就來(lái)研讀論文勤家。選課老師說(shuō)瞎抛,國(guó)內(nèi)很多互聯(lián)網(wǎng)企業(yè)大多關(guān)注上層的應(yīng)用,而對(duì)于這種底層的習(xí)以為常的技術(shù)研究的并不是很前沿却紧,不過(guò)商業(yè)利益在那,Google研究B4也是為了私有網(wǎng)絡(luò)胎撤,不過(guò)Google的開源分享確實(shí)有利于技術(shù)的發(fā)展晓殊,現(xiàn)如今科學(xué)技術(shù)越來(lái)越受到政治等因素的影響了。我在讀的過(guò)程中也是查閱了好些資料伤提,不好的地方歡迎批評(píng)指正巫俺。如果想了解更多關(guān)于SDN的可以看下“馬紹文”大佬的文章(見文末參考文獻(xiàn))。
文章標(biāo)題:B4 and After: Managing Hierarchy, Partitioning, and Asymmetry for Availability and Scale in Google’s Software-Defined WAN
一肿男、B4的發(fā)展與挑戰(zhàn)
本篇論文是有關(guān)B4[1]發(fā)展和挑戰(zhàn)經(jīng)驗(yàn)總結(jié)的第二篇介汹,在B4繼續(xù)發(fā)展5年后,谷歌再次發(fā)表論文介紹和總結(jié)其私有數(shù)據(jù)中心網(wǎng)絡(luò)的技術(shù)和運(yùn)維經(jīng)驗(yàn)舶沛。上一篇閱讀報(bào)告介紹了B4的整體網(wǎng)絡(luò)架構(gòu)和運(yùn)行效果評(píng)估嘹承。本文將概括介紹B4數(shù)據(jù)中心網(wǎng)絡(luò)5年來(lái)的主要技術(shù)難題及其解決方案和運(yùn)維方面經(jīng)驗(yàn)教訓(xùn)。
B4最初的設(shè)計(jì)是面向跨數(shù)據(jù)中心索引復(fù)制的如庭,對(duì)于可用性的要求并沒有太高叹卷。但隨著廣域網(wǎng)(WAN)流量的激增以及軟件的快速發(fā)展,帶寬需求每9個(gè)月翻一番坪它,對(duì)于B4的服務(wù)水平目標(biāo)(SLOs)要求也越來(lái)越高骤竹,達(dá)到了99.99%。因此往毡,需要更加革新的技術(shù)方案來(lái)解決B4的擴(kuò)展性和可用性的問(wèn)題蒙揣。
1.扁平拓?fù)涞膯?wèn)題
B4之前的站點(diǎn)物理拓?fù)錇楸馄酵負(fù)浣Y(jié)構(gòu),網(wǎng)絡(luò)難以擴(kuò)展开瞭,網(wǎng)絡(luò)流量承載能力難以有效提升與帶寬需求指數(shù)級(jí)增長(zhǎng)相矛盾懒震。為此谷歌增加了與現(xiàn)有B4站點(diǎn)臨近的站點(diǎn)來(lái)提升網(wǎng)絡(luò)容量。但是這種方法帶來(lái)了三個(gè)問(wèn)題:第一惩阶,站點(diǎn)數(shù)量增加導(dǎo)致集中式TE優(yōu)化算法顯著變慢挎狸。優(yōu)化算法在站點(diǎn)級(jí)別的拓?fù)湎逻\(yùn)行時(shí)間超線性增長(zhǎng),這將導(dǎo)致數(shù)據(jù)平面故障時(shí)數(shù)據(jù)黑洞(數(shù)據(jù)流向失效鏈路)的時(shí)間也延長(zhǎng)断楷,無(wú)法滿足可用性目標(biāo)锨匆。第二,交換機(jī)有限的轉(zhuǎn)發(fā)表空間使得站點(diǎn)數(shù)量增加較為困難。第三恐锣,最為重要的是茅主,這種方法將導(dǎo)致網(wǎng)絡(luò)容量規(guī)劃更加復(fù)雜化,使得原本只需考慮集群之間的數(shù)據(jù)交換土榴,變成了還需要理解集群內(nèi)部單獨(dú)B4站點(diǎn)的相關(guān)映射情況诀姚。最終谷歌選擇并重新設(shè)計(jì)了層次化的物理拓?fù)浣Y(jié)構(gòu)。如圖1. B4物理拓?fù)浣Y(jié)構(gòu)由扁平式第一代Saturn逐漸發(fā)展到層級(jí)式Stargate玷禽。
Stargate提供了高達(dá)81.92Tbps的站點(diǎn)到外部容量赫段,這些容量可以在WAN、集群和旁路間劃分矢赁,相對(duì)簡(jiǎn)單的拓?fù)涓尤菀拙S護(hù)糯笙,并且比Saturn的站點(diǎn)容量提升了8倍以上,滿足了流量增長(zhǎng)的需求撩银。
2.層次化拓?fù)渫負(fù)淙萘坎粚?duì)稱
雖然層次化拓?fù)鋷?lái)了可擴(kuò)展性给涕,但是也為TE帶來(lái)了挑戰(zhàn)。由于固有的網(wǎng)絡(luò)維護(hù)额获、運(yùn)維和數(shù)據(jù)平面設(shè)備的不穩(wěn)定够庙,在一定規(guī)模下容量不對(duì)稱問(wèn)題是不可避免的,主要表現(xiàn)為設(shè)計(jì)的超級(jí)節(jié)點(diǎn)(supernode)提供的承載流量的容量都是相同的抄邀,但是在具體數(shù)據(jù)傳輸過(guò)程中耘眨,有些超級(jí)節(jié)點(diǎn)的準(zhǔn)入流量(即承載的數(shù)據(jù)容量)是明顯少于設(shè)計(jì)標(biāo)準(zhǔn)的。
2.1 旁路技(sidelink)術(shù)
因此撤摸,引入旁路(sidelink)毅桃,將同一站點(diǎn)中超級(jí)節(jié)點(diǎn)連接成全mesh拓?fù)洹?/p>
如圖2. 通過(guò)集中控制器利用旁路動(dòng)態(tài)重均衡站點(diǎn)內(nèi)數(shù)據(jù)流來(lái)解決WAN鏈路故障導(dǎo)致的容量不對(duì)稱。c為最大網(wǎng)絡(luò)準(zhǔn)入流量准夷,圖2.(b)中沒有旁路技術(shù)钥飞,受限于A2的最大容量2,站點(diǎn)A中衫嵌,c最大為4读宙。圖2.(b)中引入旁路,使得A2可以將超出的流量容量重分配給A1楔绞,從而使得從站點(diǎn)A傳遞到站點(diǎn)B的最大準(zhǔn)入流量c增至12结闸,也較好地利用起超級(jí)節(jié)點(diǎn)的容量設(shè)計(jì)。旁路的成本更低且比WAN鏈路更為可靠酒朵。不過(guò)也帶來(lái)了兩個(gè)問(wèn)題:第一桦锄,TE通常需要隧道封裝,需要設(shè)計(jì)TE算法蔫耽;第二结耀,TE升級(jí)會(huì)引入路由黑洞和環(huán)路,在排序超級(jí)節(jié)點(diǎn)TE更新操作的時(shí)候,需要利用無(wú)黑洞和環(huán)路并且不需要任何隧道或標(biāo)簽的方法图甜。
2.2 層次化TE架構(gòu)
引入旁路概念碍粥,利用負(fù)載均衡機(jī)制最大化站點(diǎn)級(jí)拓?fù)淙萘浚枰獙哟位疶E架構(gòu)黑毅。如圖3. 在站點(diǎn)級(jí)TE嚼摩,隧道分組(TG)通過(guò)IP-in-IP封裝數(shù)據(jù)流分組(FG)映射到隧道集合(站點(diǎn)級(jí)路徑),谷歌利用的是類似最大-最小公平優(yōu)化算法來(lái)為每個(gè)隧道流量劃分設(shè)置權(quán)重值矿瘦。在超級(jí)節(jié)點(diǎn)級(jí)TE枕面,隧道劃分組(TSG)指明某一隧道中的流量分布,控制當(dāng)前站點(diǎn)的其他超級(jí)節(jié)點(diǎn)和隧道另一端站點(diǎn)的超級(jí)節(jié)點(diǎn)之間的流量劃分缚去。在交換機(jī)級(jí)路由中膊畴,交換機(jī)劃分組(SSG)指明了交換機(jī)上跨物理鏈路的流量劃分。通過(guò)域控制器編排FG病游,TG和TSG,根據(jù)域內(nèi)拓?fù)溆?jì)算SSG稠通,實(shí)現(xiàn)層次化TE劃分規(guī)則達(dá)到可擴(kuò)展性衬衬。
在以任意順序進(jìn)行TSG更新時(shí)會(huì)導(dǎo)致B4網(wǎng)絡(luò)嚴(yán)重的流量黑洞或環(huán)路,降低可用性改橘。因此滋尉,谷歌開發(fā)了通過(guò)構(gòu)造依賴圖的方式編排TSG更新順序的可擴(kuò)展算法,并且證明得知TSG更新是無(wú)黑洞或環(huán)路的飞主。
3.高效的交換機(jī)規(guī)則管理
解決容量不對(duì)稱問(wèn)題使用了層次化TE結(jié)構(gòu)狮惜,而層次化TE需要交換機(jī)更多的哈希項(xiàng)來(lái)執(zhí)行兩層的細(xì)粒度流量劃分,同時(shí)當(dāng)前匹配規(guī)則下商用交換機(jī)的哈希項(xiàng)數(shù)量有限碌识。為此碾篡,谷歌使用兩種機(jī)制優(yōu)化了交換機(jī)轉(zhuǎn)發(fā)行為。分別是層次化FG匹配和使用高效的流哈希劃分筏餐。
3.1 層次化FG匹配
一開始谷歌采用訪問(wèn)控制列表(ACL)實(shí)現(xiàn)FG匹配开泽,但是FG匹配項(xiàng)的數(shù)量受限于ACL表的大小。因此魁瞪,將FG匹配換分為兩個(gè)層次化階段穆律。如圖4. 首先將集群前綴匹配(Cluster prefix match)移動(dòng)到最長(zhǎng)前綴匹配(LPM)表,LPM表項(xiàng)遠(yuǎn)多于ACL表导俘。利用LPM表匹配虛擬路由轉(zhuǎn)發(fā)(VRF)標(biāo)簽峦耘,通過(guò)虛擬轉(zhuǎn)發(fā)平面(VFP)表匹配DSCP標(biāo)記,使得匹配的數(shù)據(jù)包進(jìn)入交換機(jī)流水線的LPM表之前可以關(guān)聯(lián)一個(gè)VRG標(biāo)簽標(biāo)示其相應(yīng)的服務(wù)等級(jí)旅薄。這種兩階段可擴(kuò)展的方法可以支持1920個(gè)站點(diǎn)辅髓,而解耦前的ACL表最多只支持32個(gè)站點(diǎn)。
3.2 高效的流哈希劃分
使用層次化TE,源站點(diǎn)負(fù)責(zé)實(shí)現(xiàn)TG利朵、TSG和SSG劃分律想。如表1. 原始設(shè)計(jì)中,僅在入口邊緣交換機(jī)(Ingress edge switches)實(shí)現(xiàn)劃分绍弟。但是這樣有交換機(jī)ECMP(Equal-cost multi-path)表大小的限制
為了將在入口邊緣交換機(jī)的劃分決策送達(dá)后端交換機(jī)(Backend swithces)技即,谷歌將數(shù)據(jù)封裝到TG劃分確定的隧道IP地址中,同時(shí)使用TSG(part 1)劃分確定的MAC地址表示自身站點(diǎn)/下一站點(diǎn)目標(biāo)樟遣。后端交換機(jī)而叼,根據(jù)隧道IP和源MAC地址,在TSG(part 2)劃分規(guī)則中豹悬,決定數(shù)據(jù)包轉(zhuǎn)發(fā)的超級(jí)節(jié)點(diǎn)葵陵;在SSG劃分規(guī)則中,確定與目標(biāo)超級(jí)節(jié)點(diǎn)連接的出口邊緣交換機(jī)瞻佛。
通過(guò)高效的交換機(jī)規(guī)則管理脱篙,采用層次化兩階段匹配規(guī)則使B4支持的站點(diǎn)數(shù)目增加了約60倍。通過(guò)分割路由路徑實(shí)現(xiàn)跨CLOS設(shè)備伤柄,細(xì)粒度劃分入口邊緣交換機(jī)和后端交換機(jī)绊困,采取這種優(yōu)化的兩階段哈希規(guī)則,使得B4網(wǎng)絡(luò)吞吐量提升了6%适刀。
二秤朗、運(yùn)維經(jīng)驗(yàn)與未來(lái)展望
谷歌作為第一家將SDN技術(shù)成功運(yùn)用到數(shù)據(jù)中心網(wǎng)絡(luò)的公司,其產(chǎn)品B4的成功部署和運(yùn)行笔喉,以及谷歌的開源和分享精神取视,對(duì)于SDN技術(shù)的發(fā)展和推廣有莫大的幫助。谷歌對(duì)B4網(wǎng)絡(luò)的運(yùn)維經(jīng)驗(yàn)和一些開放性的問(wèn)題也是非常值得借鑒和學(xué)習(xí)的常挚。
1. 簡(jiǎn)化網(wǎng)絡(luò)管理工作
谷歌在B4運(yùn)維期間作谭,從扁平化的Saturn的擴(kuò)展性差,到層次化的Stargate準(zhǔn)入流量瓶頸奄毡,當(dāng)網(wǎng)絡(luò)故障時(shí)需要人為物理拓?fù)浼軜?gòu)和容量不對(duì)稱導(dǎo)致的容量損失等問(wèn)題丢早。但是隨著B4網(wǎng)絡(luò)規(guī)模的越來(lái)越大,網(wǎng)絡(luò)故障或者流量控制相關(guān)的問(wèn)題秧倾,還需要工程師人為檢測(cè)怨酝、分析、發(fā)現(xiàn)和處理那先,已經(jīng)變得越來(lái)越復(fù)雜农猬。因此谷歌對(duì)于網(wǎng)絡(luò)管理工作更傾向于由開發(fā)的管理工具去通過(guò)控制器暴露的RPC管理編排網(wǎng)絡(luò)操作。
2.旁路容量規(guī)劃
旁路技術(shù)在同站點(diǎn)內(nèi)超級(jí)節(jié)點(diǎn)之間售淡,形成mesh拓?fù)浣锎校梢詰?yīng)對(duì)物理故障慷垮、網(wǎng)絡(luò)操作和劃分不均衡導(dǎo)致WAN容量不對(duì)稱。但是對(duì)于旁路容量的規(guī)劃則需要基于統(tǒng)計(jì)學(xué)的需求分析揍堕,預(yù)測(cè)和評(píng)估較長(zhǎng)期的網(wǎng)絡(luò)需求料身、成本等。為此衩茸,谷歌也在開發(fā)基于日志的統(tǒng)計(jì)分析框架芹血,來(lái)以最小化成本規(guī)劃旁路容量。
3. 入口流量均衡管理
TSG算法假設(shè)的是站點(diǎn)內(nèi)超級(jí)節(jié)點(diǎn)間輸入流量都是均衡的楞慈,這種假設(shè)簡(jiǎn)化了TSG在網(wǎng)絡(luò)中具體設(shè)計(jì)與實(shí)現(xiàn)幔烛。但是TSG算法并未考慮入口流量的不均衡,谷歌也正在計(jì)劃研究更多的可選擇的設(shè)計(jì)囊蓝,因?yàn)榻鉀Q方案的開放性饿悬,谷歌提出了一個(gè)可選的方案,就是為每對(duì)相鄰站點(diǎn)級(jí)鏈路計(jì)算TSG聚霜。
三狡恬、總結(jié)
隨著大規(guī)模云數(shù)據(jù)中心的發(fā)展,越來(lái)越多的新思想被引入到云網(wǎng)絡(luò)設(shè)計(jì)蝎宇。OTT云公司也期望軟硬件解耦傲宜,控制和轉(zhuǎn)發(fā)解耦,來(lái)增加網(wǎng)絡(luò)的可編程性夫啊,擴(kuò)展網(wǎng)絡(luò)的靈活性。P4編程語(yǔ)言對(duì)交換機(jī)的控制的深入使得智能網(wǎng)卡成為可能辆憔,越來(lái)越多的功能將會(huì)集成到網(wǎng)卡上撇眯,則SDN的應(yīng)用場(chǎng)景將會(huì)更加全面。人工智能的技術(shù)也能更好地在網(wǎng)絡(luò)方面運(yùn)用起來(lái)虱咧,比如對(duì)網(wǎng)絡(luò)流量的轉(zhuǎn)發(fā)和擁塞控制熊榛,谷歌的旁路容量設(shè)計(jì)也可以利用機(jī)器學(xué)習(xí)來(lái)預(yù)測(cè)容量需求。未來(lái)發(fā)展是云數(shù)據(jù)中心腕巡、WAN深度接入SDN玄坦,SDN對(duì)網(wǎng)絡(luò)狀態(tài)的管理和控制更加全面,云技術(shù)和網(wǎng)絡(luò)技術(shù)更進(jìn)一步融合绘沉。
上一篇:Google B4 論文閱讀一 - 簡(jiǎn)書 (jianshu.com)
參考文獻(xiàn):
[1]Jain S , ?Kumar A , ?Mandal S , et al. B4: Experience with a Globally-Deployed Software Defined WAN[C]// Proceedings of the ACM SIGCOMM 2013 conference on SIGCOMM. ACM, 2013:3-14.
[2]Hong C Y , ?Liang S , ?Mendelev K , et al. B4 and after: managing hierarchy, partitioning, and asymmetry for availability and scale in google's software-defined WAN[C]// the 2018 Conference of the ACM Special Interest Group. ACM, 2018.
[3]馬紹文. Google B4廣域網(wǎng)SDN 的前世今生[EB/OL].https://www.sdnlab.com/22346.html, 2018-09-13
[4]馬紹文. 超大規(guī)模云網(wǎng)絡(luò)數(shù)據(jù)中心創(chuàng)新(下)[EB/OL].https://www.sdnlab.com/24041.html, 2020-04-21