

獲取清單:
(持續更新中…)
資料中心網路知識全解(PPT)
人工智慧基礎知識全解(含實踐)
CPU基礎知識全解(PPT)
GPU基礎知識全解(PPT)
InfiniBand的網路架構,可以用來避免以下PCI匯流排一些缺陷:
-
1、由於採用了基於匯流排的共享傳輸模式,在PCI總線上不可能同時傳送兩組以上的資料,當一個PCI裝置佔用匯流排時,其他裝置只能等待; -
2、隨著匯流排頻率從33MHz提高到66MHz,甚至133MHz(PCI-X),訊號線之間的相互干擾變得越來越嚴重,在一塊主機板上佈設多條匯流排的難度也就越來越大; -
3、由於PCI裝置採用了記憶體對映I/O地址的方式建立與記憶體的聯絡,熱新增PCI裝置變成了一件非常困難的工作。目前的做法是在記憶體中為每一個PCI裝置劃出一塊50M到100M的區域,這段空間使用者是不能使用的,因此如果一塊主機板上支援的熱插拔PCI介面越多,使用者損失的記憶體就越多; -
4、PCI的總線上雖然有buffer作為資料的緩衝區,但是它不具備糾錯的功能,如果在傳輸的過程中發生了資料丟失或損壞的情況,控制器只能觸發一個NMI中斷通知作業系統在PCI總線上發生了錯誤;
Infiniband的協議層次與網路結構

Infiniband的協議採用分層結構,各個層次之間相互獨立,下層為上層提供服務。其中,物理層定義了線上路上如何將位元訊號組 成符號,然後再組成幀、 資料符號以及包之間的資料填 充等,詳細說明了構建有效包的信令協議等;鏈路層定義了資料包的格式以及資料包操作的協議,如流控、 路由選擇、 編碼、解碼等;網路層透過在資料包上新增一個40位元組的全域性的路由報頭(Global Route Header,GRH)來進行路由的選擇,對資料進行轉發。
在轉發的過程中,路由 器僅僅進行可變的CRC校驗,這樣就保證了端到端的資料傳輸的完整性;傳輸層再將資料包傳送到某個指定 的佇列偶(QueuePair,QP)中,並指示QP如何處理該資料 包以及當資訊的資料淨核部分大於通道的最大傳輸單 元MTU時,對資料進行分段和重組。
InfiniBand網路層次架構
-
物理層:定義了電氣特性和機械特性,包括光纖和銅媒介的電纜和插座、底板聯結器、熱交換特性等。定義了背板、電纜、光纜三種物理埠。
-
鏈路層:描述了資料包的格式和資料包操作的協議,如流量控制和子網內資料包的路由。鏈路層有鏈路管理資料包和資料包兩種型別的資料包。
-
網路層:是子網間轉發資料包的協議,類似於IP網路中的網路層。實現子網間的資料路由,資料在子網內傳輸時不需網路層的參與。

-
傳輸層:負責報文的分發、通道多路複用、基本傳輸服務和處理報文分段的傳送、接收和重組。傳輸層的功能是將資料包傳送到各個指定的佇列(QP)中,並指示佇列如何處理該資料包。當訊息的資料路徑負載大於路徑的最大傳輸單元(MTU)時,傳輸層負責將訊息分割成多個數據包。
-
上層網路協議:InfiniBand為不同型別的使用者提供了不同的上層協議,提供應用程式與硬體驅動之間的Verbs介面,允許上層應用基於Verbs介面進行RDMA程式設計;併為某些管理功能定義了訊息和協議。InfiniBand主要支援SDP、SRP、iSER、RDS、IPoIB和uDAPL等上層協議。
Infiniband網路拓撲結構

Infiniband的網路拓撲結構如圖,其組成單元主要分為四類:
-
(1)HCA(Host Channel Adapter),它是連線記憶體控制器和TCA的橋樑;
-
(2)TCA(Target Channel Adapter),它將I/O裝置(例如網絡卡、SCSI控制器)的數字訊號打包傳送給HCA;
-
(3)Infiniband link,它是連線HCA和TCA的光纖,InfiniBand架構允許硬體廠家以1條、4條、12條光纖3種方式連結TCA和HCA;
-
(4)交換機和路由器;
無論是HCA還是TCA,其實質都是一個主機介面卡,它是一個具備一定保護功能的可程式設計DMA(Direct Memory Access,直接記憶體存取 )引擎。
Omni-Path沿用了True Scale產品名稱和技術(收購QLogic InfiniPath網路產品線,改名True Scale),主要的變化是在把物理層把速度從40G提到了100G。為了相容更加開源的系統,Omni-Path也是基於開源標準的OFED架構(Mellanox也是採用該框架),並將API介面開放。
Intel在CPU上集成了Omni-Path相關功能,這也意味著Omni-Path通訊效率上更加高效,但會讓自己的網路依賴於CPU,至少在處理器上開放性還是做的比較有侷限性。
透過收購Cray互聯部門,Intel在 Omni-Path引入了1.5層的概念。它被稱作連結傳輸層(Link Transport Layer),基於Cray的Aries基礎互聯技術最佳化底層資料通訊,提供可靠的2層資料包交付、流控和單連璐控制。這也算是對收購Cray的Aries技術的充分利用。
OPA元件

Omni-Path主要有以下3部分元件:
-
HFI – Host Fabric Interface 提供主機,服務和管理節點的光纖連線
-
Switches 提供大規模的節點之間的任意拓撲連線
-
Fabric Manager 提供集中化的對光纖資源的provisioning 和監控
相比InfiniBand ,Intel Omni-Path Architecture 架構設計目標特性:
-
透過CPU/Fabric integration 來提高cost, power, and density
-
Host主機端的最佳化實現來高速的MPI訊息,低延遲的高擴充套件性的架構
-
Enhanced Fabric Architecture 來提供超低的端到端延遲,高效的糾錯和增強的QoS,並且超高的擴充套件性
RDMA技術

RDMA技術,最大的突破是將網路層和傳輸層放到了硬體中,伺服器的網絡卡上來實現,資料報文進入網絡卡後,在網絡卡硬體上就完成四層解析,直接上送到應用層軟體,四層解析CPU無需干預。
RDMA技術的全稱叫做Remote Direct Memory Access,即遠端直接資料存取,就是為解決網路傳輸中伺服器端資料處理的延遲而產生的。RDMA透過網絡卡將資料直接傳入伺服器的儲存區,不對作業系統造成任何影響,消除了外部儲存器複製和文字交換操作,解放記憶體頻寬和CPU資源。當一個應用執行RDMA讀或寫請求時,不執行任何資料複製。
在不需要任何核心記憶體參與的條件下,RDMA請求從執行在使用者空間中的應用中傳送到本地網絡卡,然後經過網路傳送到遠端伺服器網絡卡。RDMA最早專屬於Infiniband架構,隨著在網路融合大趨勢下出現了RoCE(RDMA over Converged Ethernet)和iWARP(RDMA over TCP/IP) ,這使高速、超低延時、極低CPU使用率的RDMA得以部署在目前使用最廣泛的資料中心網路上。
具體來說, RDMA 技術特性帶來的好處如下圖所示:

NVMe 裝置延遲很低,這就要求網路延遲也必須很低, RDMA 正好滿足這一點。
以一個 NVMe 寫操作為例。NVMe 主機驅動把寫命令及資料(從 NVMe 提交佇列取出一項)封裝一個與底層傳輸無關的命令膠囊(capsule);膠囊被放到主機 RDMA 網絡卡的傳送佇列中,由 RDMA_SEND 傳送出去;目標主機的 RDMA 網絡卡在接收佇列中收到這個膠囊,解除封裝,把 NVMe 命令及資料放到目標主機的記憶體中;目標主機處理 NVMe 命令及資料;完成後,目標主機封裝一個 NVMe 命令完成項,由 RDMA 傳輸到源主機。
兩種基於乙太網的RDMA協議
第一種:乙太網->IP->UDP->RoCE (RDMA over Converged Ethernet) v2
第二種:乙太網->IP->TCP(去掉 TCP/IP 流量控制和管理)->iWARP

InfiniBand 與RoCE and iWARP同列
InfiniBand採用Cut-Through轉發模式,減少轉發時延,基於Credit流控機制,保證無丟包。RoCE效能與IB網路相當,DCB特性保證無丟包,需要網路支援DCB特性,但時延比IB交換機時延稍高一些。iWARP則是利用成熟IP網路,繼承RDMA優點,但如果採用傳統IP網路丟包對效能影響大。

iWARP技術的主要問題在於穩定性,一旦網路有丟包,效能會奇差,而iWARP就是基於乙太網協議實現的,乙太網協議不可能沒有丟包,這使得iWARP技術沒有了應用空間。
IB效能最好,RoCE則用得最多,RoCE是伴隨著RDMA技術才普及起來的,相比於IB技術,RoCE技術仍基於乙太網實現,但是增加了丟包控制機制,確保乙太網處於一個無丟包的狀態,雖然延時比IB差些,但部署成本要低得多。
解析RDMA over TCP(iWARP)協議棧和工作原理
具備RNIC(RDMA-aware network interface controller)網絡卡的裝置,不論是目標裝置還是源裝置的主機處理器都不會涉及到資料傳輸操作,RNIC網絡卡負責產生RDMA資料包和接收輸入的RDMA資料包,從而消除傳統操作中多餘的記憶體複製操作。
RDMA協議提供以下4種資料傳輸操作(RDMA Send操作、RDMA Write操作、RDMA Read操作和Terminate操作),除了RDMA讀操作不會產生RDMA訊息,其他操作都會產生一條RDMA訊息
乙太網憑藉其低投入、後向相容、易升級、低運營成本優勢在目前網路互連領域內佔據統治地位,目前主流乙太網速率是100 Mb/s和1000 Mb/s,下一代乙太網速率將會升級到10Gb/s。將RDMA特性增加到乙太網中,將會降低主機處理器利用率,增加乙太網升級到10 Gb/s的優點,消除由於升級到10 Gb/s而引入巨大開銷的弊端,允許資料中心在不影響整體效能的前提下拓展機構,為未來擴充套件需求提供足夠的靈活性。

RDMA over TCP (Ethernet)協議棧
上圖是RDMA over TCP (Ethernet)的協議棧,最上面三層構成iWARP協議族,用來保證高速網路的互操作性。
RDMA層協議負責根據RDMA寫操作、RDMA讀操作轉換成RDMA訊息,並將RDMA訊息傳向Direct Data Placement (DDP)層。
DDP層協議負責將過長的RDMA訊息分段封裝成DDP資料包繼續向下轉發到Marker-based, Protocol-data-unit-Aligned (MPA)層。
MPA層在DDP資料段的固定間隔位置增加一個後向標誌、長度以及CRC校驗資料,構成MPA資料段。
TCP層負責對TCP資料段進行排程,確保發包能夠順利到達目標位置
IP層則在資料包中增加必要的網路路由資料資訊。
RDMA應用和RNIC(RDMA-aware Network Interface Controller)之間的傳輸介面層(Software Transport Interface)被稱為Verbs或RDMA API,RDMA API (Verbs),主要有兩種Verbs:
-
記憶體Verbs(Memory Verbs),也叫One-SidedRDMA。包括RDMA Reads, RDMA Writes, RDMA Atomic。這種模式下的RDMA訪問完全不需要遠端機的任何確認。
-
訊息Verbs(Messaging Verbs),也叫Two-SidedRDMA。包括RDMA Send, RDMA Receive。這種模式下的RDMA訪問需要遠端機CPU的參與。
IB、乙太網RoCE、乙太網iWARP這三種RDMA技術使用統一的API。
上層協議
InfiniBand為不同型別的使用者提供了不同的上層協議,併為某些管理功能定義了訊息和協議。InfiniBand主要支援SDP、SRP、iSER、RDS、IPoIB和uDAPL等上層協議。
-
SDP(SocketsDirect Protocol)是InfiniBand Trade Association (IBTA)制定的基於infiniband的一種協議,它允許使用者已有的使用TCP/IP協議的程式執行在高速的infiniband之上。 -
SRP(SCSIRDMA Protocol)是InfiniBand中的一種通訊協議,在InfiniBand中將SCSI命令進行打包,允許SCSI命令透過RDMA(遠端直接記憶體訪問)在不同的系統之間進行通訊,實現儲存裝置共享和RDMA通訊服務。 -
iSER(iSCSIRDMA Protocol)類似於SRP(SCSI RDMA protocol)協議,是IB SAN的一種協議 ,其主要作用是把iSCSI協議的命令和資料透過RDMA的方式跑到例如Infiniband這種網路上,作為iSCSI RDMA的儲存協議iSER已被IETF所標準化。 -
RDS(ReliableDatagram Sockets)協議與UDP 類似,設計用於在Infiniband 上使用套接字來發送和接收資料。實際是由Oracle公司研發的執行在infiniband之上,直接基於IPC的協議。 -
IPoIB(IP-over-IB)是為了實現INFINIBAND網路與TCP/IP網路相容而制定的協議,基於TCP/IP協議,對於使用者應用程式是透明的,並且可以提供更大的頻寬,也就是原先使用TCP/IP協議棧的應用不需要任何修改就能使用IPoIB。 -
uDAPL(UserDirect Access Programming Library)使用者直接訪問程式設計庫是標準的API,透過遠端直接記憶體訪問 RDMA功能的互連(如InfiniBand)來提高資料中心應用程式資料訊息傳送效能、伸縮性和可靠性。
其中IPoIB
IPoIB(IP-over-IB)是為了實現INFINIBAND網路與TCP/IP網路相容而制定的協議,基於TCP/IP協議,對於使用者應用程式是透明的,並且可以提供更大的頻寬,也就是原先使用TCP/IP協議棧的應用不需要任何修改就能使用IPoIB。
IPoIB的作用是在InfiniBand RDMA網路之上提供一個IP網路模擬層。
因為iWARP和RoCE/IBoE網路實際上都是基於RDMA的IP網路,所以它們不需要IPoIB。因此,核心將拒絕在iWARP或RoCE/IBoE RDMA裝置之上建立任何IPoIB裝置。
IPoIB侷限性
-
IPoIB為我們解決了很多問題。但是,與標準的乙太網網路介面相比,它有一些侷限性:
-
IPoIB只支援基於ip的應用程式(因為乙太網報頭沒有封裝)。
-
SM/SA必須隨時可用,以便IPoIB發揮作用。
-
IPoIB網路介面的MAC地址為20位元組。
-
網路介面的MAC地址不能被使用者控制。
-
IPoIB網路介面的MAC地址在IPoIB模組的連續載入中可能會發生變化,而且它不是持久的(即介面的一個常量屬性)。
-
在IPoIB網路介面中配置vlan需要了解對應的p_key的SM。
推薦閱讀:
參考:
http://www.rdmamojo.com/2015/02/16/ip-infiniband-ipoib-architecture/
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-configure_ipoib_using_a_gui
http://www.rdmamojo.com/2015/04/21/working-with-ipoib/
https://weibo.com/p/1001603936363903889917



免責申明:本號聚焦相關技術分享,內容觀點不代表本號立場,可追溯內容均註明來源,釋出文章若存在版權等問題,請留言聯絡刪除,謝謝。
推薦閱讀
更多架構相關技術知識總結請參考“架構師全店鋪技術資料打包(全)”相關電子書(44本技術資料打包彙總詳情可透過“閱讀原文”獲取)。
溫馨提示:
掃描二維碼關注公眾號,點選閱讀原文連結獲取“架構師技術全店資料打包彙總(全)”電子書資料詳情。

