黃米青



摘要:面對高性能計算、大數據分析和浪涌型IO高并發、低時延(集中式網盤)應用,RDMA技術可以提供極低的延時和更高速的數據傳輸處理。RDMA技術要求的無損網絡通過在交換機上支持RoCE協議來實現。而RoCE協議中的PFC,ECN等水線設置可以通過靜態配置或者動態配置算法來實現低延時和無損傳輸,本文主要就這些水線參數的設置做理論推導分析,可以作為水線調參優化的理論原則。
關鍵詞:RDMA;PFC;ECN
中圖分類號:TP393文獻標識碼:A
文章編號:1009-3044(2019)34-0050-03
1 概述
面對高性能計算、大數據分析和浪涌型IO高并發、低時延(集中式網盤)應用,現有TCP/IP軟硬件架構和應用高CPU消耗的技術特征根本不能滿足應用的需求。RDMA是一種遠端內存直接訪問技術。RDMA最早專屬于Infiniband架構,隨著在網絡融合大趨勢下出現的RoCE和iWARP,這使高速、超低延時、極低CPU使用率的RDMA得以部署在目前使用最廣泛的以太網上。
基于InfiniBand的RDMA是在2000年發布規范,屬于原生RDMA。
基于TCP/IP的RDMA稱作iWARP,在2007年形成標準,主要包括MPA/DDP/RDMAP三層子協議。
基于Ethernet的RDMA叫作RoCE,在2010年發布協議,基于增強型以太網并將傳輸層換成IB傳輸層實現。RoCE(當前已發展到RoCEv2版本)是基于無連接協議的UDP協議,相比面向連接的TCP協議,UDP協議更加快速、占用CPU資源更少,但其不像TCP協議那樣有滑動窗口、確認應答等機制來實現可靠傳輸,一旦出現丟包,RoCEv2需要依靠上層應用檢查到了再做重傳,會大大降低RDMA的傳輸效率。
基于RDMA的要求,數據中心交換機要求具備如下特性:
1)零丟包,不造成重傳時延,保證分布式高性能應用的高效穩定。通過PFC和ECN水線設置實現零丟包特性。
2)低時延,特別是網絡中的動態時延包括內部排隊時延和丟包重傳時延,這部分延時占了網絡整體時延的99%
3)高吞吐,滿足高性能服務器對帶寬的需求,減少報文排隊,確保分布式高性能應用中大數據傳輸的吞吐。當前數據中心交換機為了支持高性能服務器,帶寬已經演進到25G/100G,未來1-2年內還會繼續演進到50G/200G/400G。
2 RDMA應用擬合模型
數據中心流行的CLOS網絡架構:Spine+Leaf網絡架構。CLOS網絡通過等價多路徑實現無阻塞性和彈性,交換機之間采用三級網絡使其具有可擴展、簡單、標準和易于理解等優點。除了支持Overlav層面技術之外,Spine+Leaf網絡架構的另一個好處就是,它提供了更為可靠的組網連接,因為Spine層面與Leaf層面是全交叉連接,任一層中的單交換機故障都不會影響整個網絡結構。這種架構下不可避免會出現多打一的情況,而這造成網絡丟包最大的原因。而解決這種情況下的網絡丟包主要就是在交換機上實現PFC和ECN相關水線的合理配置。
PFC是DCB的一部分,它適用于DCB網絡中的全雙工的點到點鏈路。PFC是對IEEE 802.3定義的流控機制的增強,用于在一個鏈路上消除由于擁塞而導致的丟包。它的增強在于它是基于優先級的。傳統的流控機制中,當某條鏈路出現擁塞時流控會阻止該鏈路上的所有流量。交換機的MMU水線主要有PG Guaranteed,PG Dymanic Pool(可通過α動態分配每個端口的水線),headroom值,其中headroom的就是在多打一的流量模型下,入口出現擁塞后為無損隊列設置的緩存空間,當緩存使用超過其中的headroom水線后,就會出現丟包。
RoCEv2定義了RoCEv2 Congestion Management (RCM),其中擁塞管理用的特性ECN(RFC 3168)是在交換機出口(egressport)發起的擁塞控制機制。當交換機的出口buffer達到設定的閾值(ECN門限)時,交換機會改變數據包頭中的ECN位來給數據打上ECN標簽,當帶ECN標簽的數據到達接收端以后,接收端會生成CNP(Congestion Notification Packet)并將它發送給發送端,CNP包含了導致擁塞的flow或QP的信息,當接收端收到CNP后,會采取措施降低發送速度。可見ECN是基于TCP flow或RDMA QP的擁塞控制機制,它只對導致擁塞的flow或QP起作用,不會影響到其他的應用,交換機的ECN水線主要是Queue Dynamic Pool(可通過α動態分配每個出口隊列的水線)。
網絡無損主要就是在使能ECN或者PFC的相關MMU水線通過合理配置,由于PFC有死鎖和風暴問題,因此在端口擁塞狀態下,在確保不丟包的情況下,ECN機制要先于PFC機制產生,需要合理設置ECN門限,使得ECN門限和PFC門限之間的緩存空間能夠容納ECN擁塞標記之后到源端降速之前這段時間發送過來的流量,盡可能地避免觸發網絡PFC流控。
以下是在多打一,多打多流并發模型下,推導下這幾個水線值應該滿足哪些條件可以實現網絡無損傳輸。
2.1 Headroom水線配置
主要用于緩存設備觸發PFC,到PFC實際生效這段延時期間仍在發送的報文流量,影響的幾個因素主要有:
接收端設備觸發PFC流控是光纖線路上殘留的報文流量,和線路傳輸延時相關,記為tl;
接收端設備觸發PFC生成PFC報文并準備發送的處理時間t2;
接收端設備發送PFC報文前等待未發送完成報文完成傳輸的延時t3,延時和報文長度有關,最大為出口mtu;