當前位置: 妍妍網 > 碼農

一文掌握智算網路負載均衡技術

2024-05-07碼農

隨著 AI 技術的發展,各種新型智慧套用爆發,以 AI 為特征的智慧算力發展速度遠超通用算力,據 IDC 預測,未來 5 年,中國智慧算力規模的年復合增長率將達 50% 以上,數據中心的算力時代已經到來。層出不求的需求也對數據中心網路或智算網路提出了更高的要求,需要更大的規模、更大的頻寬、更低的時延和更可靠的網路。

相關閱讀:

數據中心網路或智算網路的 拓撲結構 相對規整(如 Spine-Leaf 架構),所以在選路方面相對簡單。但由於數據中心網路的伺服器之間往往都存在多條等價並列路徑(比如在 Fat tree 網路中可能存在多達幾十條),因此,如何在多條並列路徑之間進行負載均衡路由,是數據中心網路路由設計的關鍵。

傳統負載均衡用的比較多的是等價成本多路徑( ECMP ), ECMP 下一跳的路徑是透過對封包欄位進行哈希計算並對可用路徑數取模來選擇的,來自一個流的封包總是對映到同一路徑,因此,這些封包將按發送順序交付,也就是通常的基於流的負載均衡( Flow-based )。然而,研究表明,在流量高度傾斜時, ECMP 無法平均分配負載到不同的路徑,如大象流場景。特別是對於當前 HPC AI 場景,普遍使用 RDMA 並且是大頻寬場景,這個時候傳統 ECMP 很容易導致鏈路 Hash 不均,進而導致某一個鏈路擁塞。在 AI/ML 的套用中, GPU 或其他型別的 AI/ML 計算單元之間他們有著非常簡單的通訊關系(流的數量非常少),並且由於他們有著極高的計算能力,導致一對通訊單元間的數據吞吐極高(單個流很大,所需的網路頻寬極大),這就導致在這樣的套用中存在極端的負載分擔不均衡,而且這種不均衡一旦引發網路丟包,就會對整體 AI/ML 的任務完成時間帶來顯著的負面影響。

網路中的擁塞整體一般有兩種,一種是在端側的擁塞,常見於多打一的 Incast 場景,這種情況通常用各種擁塞控制演算法來使對應的發送端減速來解決。另一種是矩陣擁塞,即網路因為 Hash 不均導致的擁塞。這裏重點討論矩陣擁塞的解決方案。解決矩陣擁塞主要有以下幾種方式:

  • 胖樹架構設計:增加匯聚鏈路頻寬,典型的就是采用Fat tree網路架構設計,從輸入到輸出1:1的收斂比設計;

  • VoQ(Virtual Output Qu eueing)技術:是一種網路擁塞管理技術,用於防止 HoL 阻塞的技術,在傳統的輸入緩沖區排隊方案中,封包先進入輸入緩沖區,然後根據目的埠的可用性從中選擇出隊。然而,當多個封包的目的埠相同時,輸入緩沖區排隊會導致阻塞和擁塞。VoQ技術透過為每個輸出埠建立虛擬的輸出佇列,將輸入封包直接放入對應的虛擬輸出佇列中。這樣,在封包進入路由器或交換機時就可以直接選擇適當的虛擬輸出佇列,而無需等待目的埠的可用性。因此,VoQ技術可以避免輸入緩沖區排隊可能引起的阻塞和擁塞問題,提高網路的吞吐量和效能;

  • 負載均衡(Load balance),也是本文介紹的重點,不同的負載均衡路由策略會對端到端的吞吐率造成很大的影響。流量Load balance按照粒度不同,可以分為以下幾種方式:基於流(Flow based)、基於包(Packet based)、基於 流片 (Flowlet)、基於信元(Cell based)

  • 基於流(Flow based)

    基於流的負載均衡 路由是以流為單位,把不同的流路由到不同的等價路徑上。傳統的方法是等價多路徑( ECMP )路由,主要透過哈希的方法進 行路徑選擇。但由於該方法將大流和小流等同對待,造成不同路徑的頻寬利用率相差較大,並且哈希演算法的沖突問題難以實作精確的負載均衡。在實際套用中存在如下問題:

  • 在流量大小分布均勻的情況下,ECMP效果較好。然而,在同時存在大象流和老鼠流的情況下,ECMP的效果並不理想。這就導致在AI/ML類套用中存在極端的負載分擔不均衡,而且這種不均衡一旦引發網路丟包,就會對整體AI/ML的任務完成時間帶來顯著的負面影響;

  • 可能加重網路鏈路的擁塞問題。由於ECMP僅使用哈希或輪詢方法進行負載均衡,它無法感知到鏈路的擁塞情況。因此,在已經存在擁塞的鏈路上使用ECMP可能會進一步加劇擁塞情況;

  • ECMP無法解決非對稱網路的效能損失。當數據中心網路發生故障時,網路結構可能會出現非對稱情況導致無法實作網路物理鏈路的均衡分布,進而造成流量不平衡的問題。

  • 因此,盡管ECMP是一種簡單的負載均衡策略,優點是沒有亂序問題,但它存在上述問題,限制了其在某些場景下的有效性。在解決這些問題時,可以考慮使用更復雜的負載均衡策略或結合其他技術來改善網路效能和流量分配的均衡性。

    由於ECMP工程復雜度低、效能可接受,仍然廣泛套用在數據中心網路中。業界也提出了許多對ECMP進行改進的方法,比如透過集中控制器對大流進行最佳化的路徑選擇等(Hedera方案、BurstBalancer方案)。

    基於包(Packet based)

    隨機包噴灑(Random Packet Spraying,RPS)是一種基於包級別的負載均衡策略。當交換機發現有多條等價路徑指向同一目的地址時,RPS會將封包以單個包為單位分散到這些路徑上。與ECMP不同,RPS以封包為單位進行操作,將同一流中的不同封包轉發到不同的等價路徑上。

    RPS的優點在於簡單易實施,透過細粒度的負載均衡,可以在多條並列路徑之間實作較為均衡的路由選擇,提升端到端的網路吞吐率,可以將並列鏈路利用率提高到90%以上。缺點在於可能會造成同一個流的包亂序問題,所以這種方式必須要很好解決亂序問題。例如輝達的解決方案中,就使用BlueField-3 DPU透過 DDP (直接數據放置)處理無序數據,從而形成端到端的完整解決方案。

    基於流片(Flowlet)

    Flowlet本質是利用TCP的流突發特性,根據設定一定間隔將流分割為一個個Burst子流,然後每次切換都是在這個間隔中間,從而避免亂序。但是這個方式也有局限性:首先,Flowlet無法應對短連線場景,試想如果一個Flow一共就一個Burst,那Flowlet必然無法產生效果;其次,Flowlet是針對TCP的特性設計的,而RDMA流量並不符合相關特征,因此,在上層套用為RoCE流量時,Flowlet基本沒有效果,這也是在AI/ML等場景中不使用Flowlet的原因。

    Flowlet的實作原理如下:對於TCP Flow,我們通常假設Packet是平滑發送的,然而實際上,不管是實際抓包還是從具體實作上看,你都會發現TCP Packet的發送其實是Burst的發送的,如下圖:

    Flowlet 實作原理上,可以把一條 Flow 看成是多個 Flowlet 組成的,負載均衡就是基於 Flowlet 來進行了,引入了一個中間層,它既不是 Packet ,也不是 Flow ,而是大於 Packet 小於 Flow Flowlet 那麽到底如何定量去切分 Flowlet 呢? 已知兩條鏈路的延遲分別為 D1 D2 ,設一個數 α ,當 α 滿足下面的條件: α >|D1−D2| ,一條 Flow 便可以透過 α 來切割為不同的 Flowlet

    基於信元(Cell based)

    在基於信元交換的網路級負載均衡機制下,接收端裝置接收到報文後,會將報文拆分成的若幹信元,信元會基於目的端發送的排程信令選擇空閑的鏈路進行轉發,到的目的後,信元被重新拼裝成報文發出裝置。在這樣的機制下,不同於流轉發,一個固定的流僅能利用單條路徑,信元交換是動態的基於微觀負載即時調整的均衡利用。

    信元交換的粒度比基於包的負載均衡還要細,理論上,頻寬利用率可以更高。信元交換本身並不是一項嶄新的技術,在目前廣泛套用的框式裝置中,線卡芯片與網板芯片之間的流量交換普遍都采用了信元交換的技術,以實作機框內無阻塞交換。不過信元交換以前主要套用在框式裝置系統內部,往往都是各個交換機裝置廠商自訂的信元格式和排程機制,不具備跨廠商互通的能力,此項技術可以進一步擴充套件,套用到整個網路上。2019年AT&T向OCP送出了基於商用芯片的盒式路由器規範,提出了DDC(Disaggregated Distributed Chassis)的概念,DDC使用的核心技術也是信元交換的方案。

    AI/ML網路支撐的業務其特征是流數量少,單條流的頻寬大,同時流量不均勻,經常出現多打一或者多打多的情況(All-to-All和All-Reduce)。所以極易出現流量負載不均、鏈路利用率低、頻繁的流量擁塞導致的丟包等問題,無法充分釋放算力。信元交換將報文切片成Cells(對比Packet based的負載均衡方案,粒度更小),並根據可達資訊采用輪詢機制發送,流量負載會較為均衡的分配到每一條鏈路,實作頻寬的充分利用,這樣可以解決中大小流的問題,仍然存在相當多的缺陷:

  • 靜態時延增加;DDC的大緩存能力將報文緩存,勢必增加硬體轉發靜態時延。同時信元交換,對報文的切片、封裝和重組,同樣增加網路轉發時延。透過測試數據比較,DDC較傳統ETH網轉發時延增大1.4倍。顯然不適應AI計算網路的需求。

  • 硬體依萊特定芯片實作,封閉、專用;

  • 大緩存設計增加網路成本;

  • 基於上述分析可以看出以上幾種負載均衡方案,各有優劣,從實際部署的角度看,負載均衡的粒度從小到大的順序是Cell based、Packet based、Flowlet、Flow based,對應的頻寬利用率則是從高到低,但是由於Cell based自身的限制,實際在智算領域基本沒有套用。

    當前高效能計算、分布式儲存、人工智慧等套用均采用RoCEv2協定來降低CPU的處理和時延,提升套用的效能。然而,由於RDMA的提出之初是承載在無失真的InfiniBand網路中,RoCEv2協定缺乏完善的丟包保護機制,對於網路丟包異常敏感。盡管可以使用PFC、ECN等流量控制和擁塞控制技術盡量實作無失真網路特性,但還是很難應對大象流/老鼠流分布不均的影響,而網路負載均衡是一個繞不開的點。

    在這方面,各廠家也在做各種努力嘗試。

    比如在輝達的RoCE解決方案中,可以針對RDMA流和TCP流采用不同的策略,如TCP使用Flowlet,RDMA(RoCE)采用逐包的負載均衡策略。Spectrum可以透過網路側交換機和端側DPU的緊耦合聯動,做到即時動態監控ECMP各個鏈路的物理頻寬和埠出口擁塞情況,來做到基於每個報文的動態負載分擔。

    Spectrum-4交換機負責選擇每個封包基於最低擁塞埠,均勻分配數據傳輸。當同一流的不同封包透過網路的不同路徑傳輸時,它們可能以無序的方式到達目的地。BlueField-3 DPU透過DDP處理無序數據,避免了資料包緩存和重組的困擾,透過上述方案,在超大規模系統和高負載場景下相對傳統RoCE方案效能提升明顯。 再比如,華為的智慧無失真網路,透過 ACC Automatic ECN )動態調整每個交換機的標記閾值,以分布式方式工作,並結合離線和線上訓練以適應動態流量模式, ACC 線上速率下實作了老鼠流和大象流的低流完成時間,優先排程小流的報文,從而保障小流的轉發時延,提升整體吞吐效能。

    來源:https://mp.weixin.qq.com/s/Eds7NKqBsejbiS2Tf0Cm_Q

    下載連結:

    轉載申明:轉載 本號文章請 註明作者 來源 ,本號釋出文章若存在版權等問題,請留言聯系處理,謝謝。

    推薦閱讀

    更多 架構相關技術 知識總結請參考「 架構師全店鋪技術資料打包 (全) 」相關電子書( 41本 技術資料打包匯總詳情 可透過「 閱讀原文 」獲取)。

    全店內容持續更新,現下單「 架構師技術全店資料打包匯總(全) 」一起發送「 和「 pdf及ppt版本 ,後續可享 全店 內容更新「 免費 」贈閱,價格僅收 249 元(原總價 399 元)。

    溫馨提示:

    掃描 二維碼 關註公眾號,點選 閱讀原文 連結 獲取 架構師技術全店資料打包匯總(全) 電子書資料詳情