B站接入層網絡演進實踐
01 網絡設計背景
1.1 穩定性和擴展性
在設計任何網絡結構時,網絡的穩定性和擴展性是兩個必然要考慮的因素。丟包、擁塞、擴容三大標準決定了網絡質量的上限和下限。任何程度的網絡質量波動都會對點直播視頻業務的生產和消費造成最為直接的影響?;贐站始終把用戶體驗放在第一位的前提下,在設計網絡前必須對網絡的流量模型,業務對網絡的要求做出充分調研。繼而從設備選型、網絡規劃、技術應用、協議設計、生態演進等多維度做出最貼合當下B站客戶需求的網絡方案并落地實施。
1.2 帶寬和流量模式
隨著視頻化時代到來,承載業務的數據中心其規模也與日俱增,新增的數據中心所包含的服務器容量從幾千臺迅速攀升至數萬臺。傳統的樹形網絡結構中,在網絡結構和帶寬容量方面,未曾考慮到數據中心內東西向流量的需求,大多是為了滿足南北向流量的大帶寬應用而設計,因此這種結構雖然能滿足業務一時的應用場景。但是由于各層上下聯帶寬存在較高的收斂比現象,后期如果需要擴容帶寬,就需要通過升級各網絡元件,如擴容核心設備的業務板卡、Fabric等。
同時,在線、離線主機應用程序,比如AI、大數據計算集群,產生了顯著的東西向流量。一些特定應用和場景(比如多活改造),需要集群間的大量數據復制。傳統的樹形結構在滿足東西方向大帶寬需求上捉襟見肘,要么組網成本太高,要么無法實現,因為整個組網受限于商用物理設備形態限制,比如設備端口密度等等。
1.3 成本優化
B站的網絡基礎設施CAPEX(Capital Expenditure)在整體IT成本中占比顯著。因此,技術團隊通過優化個別網絡單元的成本來改善這一現象。具體可以用以下兩種實現方式:
統一所有的網絡元素,最好使用相同的硬件類型或相同的設備。執行批量采購的同時,引入多家網絡設備供應商,充分競爭,從而達到降低成本的目的。
為了豐富廠商的多樣性,需要制定標準的網絡參數要求。這一措施大大提高了廠商選擇的靈活性,同時為白盒化設備提供基本的技術指標。
1.4 高效運營
隨著網絡設備數量增加,網元故障頻次必然增多,縮小網絡故障域是降低網絡OPEX(Operational Expenditure)的一個重要指標。網絡中容易產生廣播和單播風暴,這會對網絡穩定性和可靠性造成影響。如何高效運營管理網絡,這是一個熱門的話題。在網絡設計之初,按全路由設計能縮小故障范圍,將故障域設定在更小的網絡范圍中。在全路由設計時,盡量使用同一種路由協議(比如BGP協議),來簡化設備控制面復雜度,從而降低網絡崩潰的概率。
02 B站接入層結構演進
2.1 DCN V1.0網絡結構
B站DCN V1.0方案中,接入層和核心層均采用堆疊組網方案,網關配置在Spine設備,整個網絡處于一個大型的二層廣播域。如圖1:
圖1 DCN V1.0結構
在堆疊方案中將兩臺接入交換機虛擬為一臺,起到冗余備份的作用,服務器通過Bond接入交換機,提升接入層面網絡的可靠性和穩定性。Spine層也是將兩臺核心網絡設備通過堆疊虛擬為1臺。堆疊帶來的好處是設備控制面只有一個,兩臺交換機進行集中式配置,減少了頻繁登錄不同設備的操作時間,整體簡化了網絡設備管理成本;兩臺接入交換機的表項依靠堆疊心跳線進行同步。但在組網方案和后期運維中堆疊方案逐漸暴露了兩個風險。
風險一:軟件風險
無論是哪個廠商的設備,都無法保證軟件系統不存在BUG,一旦出現BUG就需要對設備軟件升級補丁或軟件版本。雖然有類似ISSU的技術可以實現不中斷升級,但ISSU的適用范圍僅限兩個版本差距很小的情況,且在實踐過程中各廠家無損升級技術復雜度高,升級風險較大,成功率低,會或多或少引入額外問題,導致升級過程中網絡連通性異常。另外堆疊成員節點單獨升級會影響控制面,影響網絡穩定性。
風險二:分裂風險
交換機之間互聯的堆疊線路出現故障或者異常時,將導致堆疊分裂,雖然不常見,但是在實際運行過程中仍會遇到,B站歷史上就曾經出現過此類Case。產生的問題是分裂后,等同于網絡中出現了兩臺配置完全相同的交換機,造成網絡配置沖突,最終導致堆疊系統所承載的業務中斷。
面對這個分裂風險,當然也有相應的解決辦法,就是一旦系統檢測到分裂情況,就會將除去堆疊口、管理接口以及管理員指定的例外端口之外的其他端口全部DOWN掉,來防止分裂后對網絡造成影響。雖然這種方式規避了配置完全相同的兩臺交換機出現在網絡里面,但代價也是顯而易見的,業務恢復操作變得復雜,遠程恢復操作變得極難。
基于以上兩個風險點及其他堆疊組網帶來的隱患,B站當前數據中心接入層組網堆疊技術已不再使用。
2.2 DCN V2.0網絡結構
為了解決堆疊方案的問題,2019年初開始,團隊開始對DCN網絡結構進行重新設計。Leaf接入層采用M-LAG技術(跨設備鏈路聚合組)取代原來的堆疊方式,Spine層不再使用堆疊,每臺設備獨立運行,同時為了更好的冗余和提升帶寬收斂比,在Spine層增加網絡設備數量。Spine-Leaf層運行EBGP路由協議,破除大二層網絡帶來的廣播風暴風險。DCN V2.0網絡結構如下圖2:
圖2 DCN V2.0結構
M-LAG(Multichassis Link Aggregation Group)跨設備鏈路聚合組,是一種實現跨設備鏈路聚合的機制,讓兩臺接入交換機以同一個狀態和被接入的設備進行鏈路聚合協商,從而把鏈路可靠性從單板級提高到了設備級,組成雙活系統。在被接入的設備看來,就如同和一臺設備建立了鏈路聚合關系。相比DCN V1.0結構,V2.0結構有效解決了交換機軟件版本升級難問題,兩臺接入交換機可以獨立進行升級,保證有一臺設備正常工作即可,對正在運行的業務幾乎沒有影響。同時接入層面做一些配置優化,如配置Monitor聯動設備上下行端口,BGP路由協議配置優化等,相比V1.0時代網絡穩定性和可擴展性提升了一個層級。但與此同時,DCN V2.0網絡結構中還是存在以下問題:
- 收斂比:指單臺網絡設備的上行與下行帶寬比例,一般按不同的業務應用設計不同收斂比,很難做到1:1的收斂比。由此帶來的運維問題是需要隨時監控Spine上行帶寬容量,達到預定閾值時需要及時擴容帶寬;
- 擴展性:因Spine使用高功率框式交換機,在IDC機房包間擴容時,只能采購指定品牌交換機的業務板卡,不利于擴展,另外由于整個機框的端口密度受限,也會限制整個DCN規模擴展;
- 高電柜:現有框式交換機由于整機功率高,對機房環境有硬性要求,機房物理機柜、電力、空調等均需要按需求進行改造。引入額外成本支持,同時改造完后機房內可能還是存在機房內局部過熱情況;
- 心跳線:組網中接入層雖然由原來的堆疊升級到M-LAG技術進行組網,但同樣兩臺設備需要通過心跳線控制兩臺交換機同步數據,始終未做到接入層設備獨立的情況,在設備升級和日常運維中還是會帶來不少挑戰;
- OPEX&CAPEX高:框式設備對軟件特征的要求高,限制了選擇廠商設備的靈活性,無法充分引入競爭;維護多種芯片架構,增加了測試、培訓、維護的要求。
基于以上M-LAG組網帶來的相關問題,B站網絡團隊在DCN組網結構上繼續探索,砥礪前行尋找最新DCN結構組網方案,由此B站DCN V3.0組網結構登場。
03 DCN V3.0網絡結構
2020年底B站網絡團隊與國內外互聯網頭部企業、設備供應商等廣泛交流與學習,開始調研新一代DCN盒式組網方案,并于2021年中旬完成DCN V3.0網絡結構整套方案驗證。且于2021Q3在新建數據中心落地應用3.0組網結構,經過半年的灰度驗證,整個組網穩定運行,當前此組網方案已全量在B站數據中心部署;DCN 3.0網絡結構如圖3所示:
圖3 DCN V3.0結構
DCN V3.0網絡結構說明:
- 組網中相關名詞解釋:接入層交換機ASW(Access Switch),匯聚層交換機PSW(Polymerizes Switch),分發層交換機DSW(Distribute Switch);
- POD內部的ASW/PSW/DSW 網絡設備使用同種規格芯片(當前主流使用的Tomahawk3芯片),均為盒式交換機,設備輕便,易安裝使用;
- 服務器萬兆接入場景下,單Server-Pod包含4臺PSW和64臺ASW,PSW上下行帶寬收斂比達到1:1,單個POD支持64組機柜,按單機柜20臺服務器接入,單POD最大可支持1200臺服務器規模;
- 服務器25G接入場景下,單Server-Pod包含8臺PSW和64臺ASW,保持PSW上下行帶寬收斂比1:1的同時,25G接入場景下單個POD服務器規模容量不變;
- 單個POD內的服務器規??梢愿鶕I務需求變更PSW的上下行收斂比,做到單個Server-POD容量規模更大,同時可橫向靈活擴展Server-POD數量,支撐整個機房的規模應用;
- 整個組網去框化,機房現場無需改造機柜電力、空調等物理環境,直接使用現有普通機柜就可滿足,且避免了局部過熱的情況;
- POD中兩臺ASW為一組,中間無心跳線連接,兩臺設備完全獨立,服務器接入層通過Bond接入,開啟雙發ARP特性,組網去堆疊化;
- 組網成本上,在相同收斂比的情況下,Capex采購成本相比上一代網絡顯著降低,達到降本增效的目的;
- 超大規模機房引入Cluster概念的方式進行擴展,同時在機房內部增加SuperSpine平面,支持整個機房規模容量擴展。
3.1 組網參數優化
3.1.1 ARP配置優化
- 接入層ASW開啟ARP Proxy功能,抑制同一臺交換機下的服務器通過二層直接轉發流量;
- 接入層交換機ASW更改業務網段的VLAN MAC地址,指定兩臺ASW設置相同的MAC地址,用于交換機轉發流量到服務器;
- 接入層ASW開啟加快ARP超時時間設置,默認ARP超時時間各廠家不完全相同,統一配置ARP超時參數,加快ARP表項更新,避免故障情況下產生路由黑洞的可能性。
3.1.2 ASW風暴抑制
- 接入層ASW下聯服務器的聚合接口抑制二層廣播轉發/組播、二層未知單播轉發,使得全網不存在二層轉發流量,實現全路由轉發。
3.1.3 LACP配置優化
- LACP,即鏈路匯聚控制協議,全稱: Link Aggregation Control Protocol ;
- 服務器為默認采用Bond Mode 4,部分場景存在Bond Mode 0的情況;
- ASW與服務器對接的聚合口需要設置相同LACP SystemID,對端的設備在邏輯上認為收到是LACPDU 報文是從同一臺設備上發出;
- ASW內兩臺ASW設置不同的LACP Device ID,使得服務器看到LACP成員端口編號不同;
- 由于部分業務的特殊性,服務器網卡工作在Bond Mode 0場景下以充分利用網卡帶寬。
3.1.4 DHCP配置優化
- DHCP,即動態主機配置協議,全稱: Dynamic Host Configuration Protocol ;
- ASW設備的DHCP請求開啟option 82特性,將DHCP relay source ip設置為本機loopback地址,避免dhcp server回包異常。
3.1.5 Hash配置優化
- B站DCN 3.0網絡結構中,由于DSW、PSW、ASW設備采用相同的芯片,因此存在HASH極化的風險,甚至在采用二層鏈路捆綁的情況下會加劇HASH極化的可能性。為避免出現Hash極化,所有設備均配置負載分擔模式為五元組,即sip+dip+sport+dport,并調整ASW、PSW、DSW設備的偏移參數algorithm。
3.1.6 BGP配置優化
- 全網運行EBGP路由協議,并根據實際情況不同路由類型的優先級;
- 全網根據不同的業務類型將不同的路由條目設置Community屬性;
- 接入層ASW開啟ARP轉32位主機路由,并通過BGP重分發至網絡,且設置community屬性在DCN網內傳遞;
- 所有設備開啟BGP Balance特性,默認情況下流量經過ECMP進行負載分擔。
3.1.7 服務器網絡配置
- 服務器網卡默認工作在Bond Mode4,部分特殊場景工作在Bond Mode0;
- 服務器重新編譯ARP內核模塊,使服務器雙網口支持ARP報文雙發能力,目的是讓接入層兩臺不同的ASW同時學習到服務器ARP地址,形成流量負載分擔能力;
- 當服務器接入層發生DOWN/UP時,在監控到網口UP后加入Bond同時批量發送本 Server的所有ARP到兩個Bond成員口,同步ARP表項,解決單向流量問題。
3.1.8 Failover配置優化
- 當ASW的上聯接口全部DOWN時,下行接入服務器無法感知到,服務器會繼續向故障接入交換機發送數據,此時由于ASW的上行端口全DOWN,交換機會將數據包全部丟棄,造成網絡異常。開啟ASW上下行接口Monitor-Link功能來規避此問題,當上行接口全部故障時,關閉下行接口。同時當上行接口UP時,下行接口也做延遲UP,預留一定時間供設備路由協議收斂,以避免出現路由黑洞的情況產生。
04 未來展望
B站網絡團隊按穩定和高效原則設計網絡結構。底層物理網絡通過物理線路、硬件設備和網絡技術,形成了一張穩定且可靠的DCN網絡,為上層業務提供高效和快速的轉發通道?;A網絡下承機房基礎設施、上接業務,需要解決業務需求變化快和基礎網絡升級難這一對永恒的矛盾點。未來基礎網絡會繼續緊跟技術發展潮流,根據業務需求,探索新型網絡結構,為B站業務提供更穩定、更高效及高擴展的網絡服務。
作者:嗶哩嗶哩系統部網絡團隊
負責B站數據中心網絡規劃、設計、建設、運維與優化,為公司業務提供穩定且可靠的網絡服務。整個團隊專注于數據中心內網、骨干網絡、負載均衡、傳輸網絡、虛擬化網絡以及國際化網絡的落地和應用,并根據業務的發展需求不斷迭代更新底層基礎網絡設施。