如何使用RDMA構建無損網絡
在深入研究RDMA和無損網絡領域後,會經常遇到兩個基本問題:為什麼採用無損網絡至關重要?這些先進技術有什麼優勢?
僅從網絡角度回答這些問題可能存在挑戰。因此,飛速(FS)的技術團隊將從前端業務和後端應用的視角,通過實際參考案例來解答這些問題。
為什麼無損網絡至關重要
線上業務涵蓋搜索、購物、實時流媒體等各個方面,對高頻用戶請求的快速響應至關重要。數據中心中的任何延遲都可能對用戶體驗產生重大影響,影響網站流量、口碑、活躍用戶等因素。
此外隨着機器學習和高性能計算技術的激增,對計算能力的需求也急劇增長。為了滿足複雜神經網絡和深度學習模型的要求,數據中心正在部署大量分布式計算集群。然而在大規模並行程序中固有的通信延遲可能會嚴重影響整體計算效率。
為了應對數據中心內不斷增長的數據存儲和檢索效率問題,以太網收斂的分布式存儲網絡正日益受到青睞。然而在以大數據流為主要特徵的存儲網絡中,由於擁塞引起的數據包丟失可能會觸發大數據流的重傳,從而降低效率並加劇擁塞。
從前端用戶體驗和後端應用效率的角度來看,當前數據中心網絡的先決條件是清晰的:較低的延遲更好,效率更為重要。
為減少數據中心內部網絡的延遲並提高處理效率,RDMA技術應運而生。RDMA允許用戶級應用程序直接讀取和寫入遠程內存,而無需經過 CPU 進行多次內存複製,RDMA繞過內核並直接將數據寫入網卡。這實現高吞吐量、超低延遲和最小的CPU開銷。
目前,RDMA在以太網上的傳輸協議是RoCEv2。RoCEv2是一種基於UDP的無連接協議,與面向連接的TCP相比,它更快且消耗更少的CPU資源。然而RoCEv2缺乏TCP中的滑動窗口和確認響應等機制也存在挑戰。在發生數據包丟失的情況下,上層應用程序必須檢測並啟動重傳,降低了RDMA傳輸效率。
為了充分發揮RDMA的性能並解決數據中心中大規模分布式系統的網絡性能瓶頸,建立一個專為RDMA設計的無丟包網絡環境至關重要。有效解決網絡擁塞問題是實現無丟包傳輸的關鍵。
什麼是RDMA
RDMA(遠程直接內存訪問)是一項先進的技術,可降低在網絡傳輸過程中與服務器端數據處理相關的延遲。
在傳統的應用程序之間傳輸數據的模式中,過程如下所示:
-
數據從應用程序緩存複製到內核中的TCP協議棧緩存。
-
然後將其複製到驅動程序層。
-
最後,將其複製到網卡(網絡接口卡)緩存。
多次內存複製需要CPU干預,導致顯著的處理延遲,通常延伸到幾十μs。此外,在整個過程中廣泛參與的CPU消耗了大量CPU性能,可能會影響正常的數據計算。
而在RDMA模式下,應用程序數據可以繞過內核協議棧直接寫入網卡。帶來顯著優勢,包括:
-
將處理延遲從幾十μs降低到1μs。
-
在整個過程中CPU參與度最小,從而節省性能。
-
增強傳輸帶寬。
RDMA對網絡有什麼需求
RDMA在高性能計算、大數據分析和高並發I/O場景中的應用越來越廣泛。如iSICI、SAN、Ceph、MPI、Hadoop、Spark和Tensorflow等技術正在採用RDMA進行操作。對於支持端到端傳輸的底層網絡,最關鍵的指標是低延遲(以μs計)和無丟包。
低延遲
網絡轉發延遲主要發生在設備節點上(不包括光電傳輸延遲和數據序列化延遲)。設備轉發延遲包括三個關鍵部分:
-
存儲轉發延遲:芯片的轉發通道處理延遲,每個跳躍產生大約1μs的芯片處理延遲(行業嘗試使用截斷模式將單跳延遲降低到約0.3μs)。
-
緩存延遲:在網絡擁塞情況下,數據包在轉發之前被緩衝。緩衝區越大,數據包的緩存時間越長,導致更高的延遲。對於RDMA網絡,選擇最佳的緩衝區大小非常重要,而更大的緩衝區並不一定更好。
-
重傳延遲:RDMA網絡利用各種技術來避免數據包丟失。
無損網絡
RDMA在無丟包狀態下實現了全速率傳輸,但當發生數據包丟失和重傳時,性能會急劇下降。在傳統網絡模式中,大緩衝區是實現無丟包的主要手段,但這與低延遲的要求相矛盾。在RDMA網絡環境中,目標是通過較小的緩衝區實現無丟包。
在這個約束條件下,RDMA主要基於PFC(優先級流量控制)和ECN(顯式擁塞通知)的網絡流量控制技術實現無丟包。
實現無損RDMA網絡的關鍵技術:PFC
基於優先級的流量控制(PFC)是一種基於隊列的反壓機制,它在優先級上運行。通過發送暫停幀,PFC防止緩衝區溢出和數據包丟失,向上游設備發出信號停止數據包傳輸。
PFC可以針對特定的虛擬通道進行單獨暫停和恢復操作,而不會影響其他流量。在所示的場景中,當隊列7的緩衝區利用率達到配置的PFC流量控制閾值時:
-
本地交換機啟動PFC暫停幀的傳輸。
-
接收到暫停幀的上游設備暫時停止該隊列的數據包傳輸。
-
如果上游設備的緩衝區也達到了閾值,它會繼續觸發暫停幀來應用反壓力向上游傳輸。
-
最終,通過降低優先級隊列的發送速率來避免數據包丟失。
-
當緩衝區佔用率降到恢復閾值以下時,發射PFC釋放幀。
實現無損RDMA網絡的關鍵技術:ECN
顯式擁塞通知(ECN)是一項成熟的技術,在過去較少使用,但現在在主機間廣泛使用。
當網絡設備出口端口出現擁塞並超過ECN閾值時,ECN可利用IP報頭中的ECN字段在數據包中嵌入標記。這個標記作為一個指示器,表示數據包遇到了網絡擁塞。在識別到數據包中的ECN標記後,接收服務器會立即生成一個擁塞通知數據包(CNP),並將其發送回源服務器。這個CNP包含有關引起擁塞的流的信息。在接收到CNP後,源服務器會調整相應流的發送速率,減輕網絡擁塞,避免數據包丟失。
通過PFC和ECN實現端到端的無丟包傳輸依賴於配置不同的閾值。準確設置這些閾值需要對交換機的內存管理單元(MMU)進行細緻的管理,以解決交換機的緩衝區管理問題。
結論:在RDMA網絡中實現無丟包傳輸
RDMA網絡通過部署PFC和ECN功能實現無丟包傳輸。PFC技術在鏈路上控制RDMA特定的隊列流量,在交換機入口端口擁塞時向上游設備施加反壓力。通過ECN技術,在出口端口擁塞時對數據包進行標記,實現端到端的擁塞控制,促使發送端降低傳輸速率。
通過調整ECN和PFC的緩衝區閾值,以確保ECN的觸發速度比PFC更快,可以實現最佳的網絡性能。這樣,網絡可以在主動降低服務器的傳輸速率以應對擁塞的同時,保持全速的數據轉發。然而,如果持續的問題導致PFC被啟用,它會暫停上游交換機的數據包發送,從而在不丟失數據包的情況下降低網絡吞吐量。
在數據中心網絡中部署RDMA需滿足無丟包網絡傳輸需求。專註於精細化的運維操作變得至關重要,以滿足對延遲敏感和丟包敏感的網絡環境的要求。儘管存在PFC風暴、死鎖問題和多層網絡中複雜的ECN閾值設計等挑戰,飛速(FS)的研發團隊致力於提供增強網絡服務,並專註於為客戶提供最佳解決方案,同時保持高可靠性水平。飛速(FS)提供一系列產品,包括NVIDIA® InfiniBand交換機、100G/200G/400G/800G InfiniBand光模組和NVIDIA® InfiniBand網卡,致力於成為通信和高速網絡系統解決方案的專業提供商。
相關文章推薦
郵箱地址
-
Cat5e、Cat6、Cat6a和Cat7網線有什麼區別?哪個更好?
2020年08月21日
-
一文帶你了解SFP、SFP+、SFP28、QSFP+和QSFP28之間的區別
2024年04月13日
-
OM1、OM2、OM3、OM4和OM5多模光纖有什麼區別?
2021年11月24日
-
SFP端口是什麼?有什麼作用?可以接RJ45嗎?
2020年09月15日
-
PCIe卡知識掃盲:你想了解的都在這裡
2020年03月24日