當前位置:
首頁 > 科技 > 關於InfiniBand架構和知識點漫談

關於InfiniBand架構和知識點漫談

OpenFabrics Enterprise Distribution (OFED)是一組開源軟體驅動、核心內核代碼、中間件和支持InfiniBand Fabric的用戶級介面程序。

2005年由OpenFabrics Alliance (OFA)發布第一個版本。Mellanox OFED用於Linux,Windows (WinOF),包括各種診斷和性能工具,用於監視InfiniBand網路的運行情況,包括監視傳輸帶寬和監視Fabric內部的擁塞情況。

OpenFabrics Alliance (OFA)是一個基於開源的組織,它開發、測試、支持OpenFabrics企業發行版。該聯盟的任務是開發並推廣軟體,通過將高效消息、低延遲和最大帶寬技術架構直接應用到最小CPU開銷的應用程序中,從而實現最大應用效率。

該聯盟成立於2004年6月,最初是OpenIB聯盟,致力於開發獨立於供應商、基於Linux的InfiniBand軟體棧。2005,聯盟致力於支持Windows,此舉將使軟體棧真正跨平台。

2006年,該組織再次擴展其章程,包括對iWARP的支持,在2010年增加了對RoCE (RDMA over Converged)支持通過乙太網交付高性能RDMA和內核旁路解決方案。2014年,隨著OpenFabrics Interfaces工作組的建立,聯盟再次擴大,實現對其他高性能網路的支持。

Mellanox OFED是一個單一的軟體堆棧,包括驅動、中間件、用戶介面,以及一系列的標準協議IPoIB、SDP、SRP、iSER、RDS、DAPL(Direct Access Programming Library),支持MPI、Lustre/NFS over RDMA等協議,並提供Verbs編程介面;Mellanox OFED由開源OpenFabrics組織維護。

如果前面的軟體堆棧邏輯圖過於複雜,可以參考上面的簡明介紹圖。MLNX_OFED_LINUX(Mellanox OFED for Linux)作為ISO映像提供,每個Linux發行版,包括源代碼和二進位RPM包、固件、實用程序、安裝腳本和文檔。

InfiniBand串列鏈路可以在不同的信令速率下運行,然後可以捆綁在一起實現更高的吞吐量。原始信令速率與編碼方案耦合,產生有效的傳輸速率。編碼將通過銅線或光纖發送的數據的錯誤率降至最低,但也增加了一些開銷(例如,每8位數據傳輸10位)。

典型的實現是聚合四個鏈接單元(4X)。目前,InfiniBand系統提供以下吞吐量速率:

下面我們站在應用開發架構師或開發者的角度,分析、解讀下 InfiniBand的架構和服務能力(簡化的InfiniBand架構)。

InfiniBand的軟體架構

InfiniBand軟體棧的設計是為了簡化應用部署。IP和TCP套接字應用程序可以利用InfiniBand性能,而無需對運行在乙太網上的現有應用程序進行任何更改。這同樣適用於SCSI、iSCSI和文件系統應用程序。位於低層InfiniBand適配器設備驅動程序和設備獨立API(也稱為verbs)之上的上層協議提供了行業標準介面,可以無縫部署現成的應用程序。

LinuxInfiniBand軟體架構。該軟體由一組內核模塊和協議組成。還有一些關聯的用戶模式共享庫,這些庫在圖中沒有顯示。在用戶級操作的應用程序對底層互連技術保持透明。本文的重點是討論應用程序開發人員需要知道什麼,才能使他們的IP、SCSI、iSCSI、套接字或基於文件系統的應用程序在InfiniBand上運行。

對協議的操作、底層核心和HCA驅動程序的詳細討論超出了本文的範圍。但是,為了完整起見,下面是內核級別的簡要概述,下面將介紹InfiniBand特定模塊和協議。

內核代碼邏輯上分為三層:HCA驅動程序、核心InfiniBand模塊上層協議。用戶級訪問模塊實現了必要的機制,允許從用戶模式應用程序訪問InfiniBand硬體。核心InfiniBand模塊包括InfiniBand設備的內核級中間層,中間層允許訪問多個HCA NICs並提供一組公共共享服務,包括:

中間層主要功能

通信經理(CM)--CM提供了允許客戶建立連接所需的服務。

SA客戶端——SA(子網管理員)客戶端提供了允許客戶端與子網管理員通信的功能。SA包含建立連接所需的重要信息,如路徑記錄。

SMA-子網管理器代理響應子網管理包,允許子網管理器在每個主機上查詢和配置設備。

PMA-性能管理代理響應允許檢索硬體性能計數器的管理包。

MAD服務——管理數據報(MAD)服務提供一組介面,允許客戶端訪問特殊的InfiniBand隊列對(QP), 0和1。

GSI-通用服務介面(GSI)允許客戶端在特殊QP1上發送和接收管理包。

隊列對(QP)——重定向高層管理協議,通常將共享對特殊QP1的訪問重定向到專用QP。這是為帶寬密集型的高級管理協議所需要的。

SMI-子網管理介面(SMI)允許客戶端在特殊QP0上發送和接收數據包。這通常由子網管理器使用。

Verbs-對中間層提供由HCA驅動程序提供的Verbs訪問。InfiniBand體系結構規範定義了Vbers。Vbers是必須提供的函數的語義描述。中間層將這些語義描述轉換為一組Linux內核應用程序編程介面(API)。

中間層還負責在異常程序終止或客戶端關閉後,對沒有釋放的已分配資源的資源跟蹤、引用計數和資源清理。

InfiniBand堆棧的最低層由HCA驅動程序組成。每個HCA設備都需要一個特定於HCA的驅動程序,該驅動程序註冊在中間層,並提供InfiniBand Verbs。

如IPoIB,SRP,SDP,iSER等高級協議,採用標準數據網路,存儲和文件系統應用在InfiniBand上操作。除了IPoIB提供了InfiniBand上TCP/IP數據流的簡單封裝外,其他更高級別的協議透明地支持更高的帶寬、更低的延遲、更低的CPU利用率和端到端服務,使用經過現場驗證的RDMA(遠程DMA)和InfiniBand硬體的傳輸技術。下面將討論這些高級協議,以及如何快速啟用現有的應用程序對InfiniBand進行操作。

IB對基於IP的應用支持

在InfiniBand上評估任何基於IP的應用程序的最簡單方法是使用上層協議IP over IB (IPoIB)。在高帶寬的InfiniBand適配器上運行的IPoIB可以為任何基於ip的應用程序提供即時的性能提升。IPoIB支持在InfiniBand硬體上的(IP)隧道數據包。

如下圖,在Linux中,協議是作為標準的Linux網路驅動程序實現的,這允許任何使用標準Linux網路服務的應用程序或內核驅動程序在不修改的情況下使用InfiniBand傳輸。Linux內核2.6.11及以上版本支持IPoIB協議,並對InfiniBand核心層和基於Mellanox技術公司HCA的HCA驅動程序的支持。

這種在InfiniBand上啟用IP應用程序的方法對於帶寬和延遲不重要的管理、配置、設置或控制平面相關數據是有效的。由於應用程序繼續在標準TCP/IP網路棧上運行,應用程序完全不知道底層I/O硬體。然而,為了獲得充分的性能並利用InfiniBand體系結構的一些高級特性,應用程序開發人員也可以使用套接字直接協議(SDP)和相關的基於套接字的API。

InfiniBand不僅對基於IP的應用提供了支持,同時對基於Socket、SCSI和iSCSI,以及對NFS的應用程序提供了支持。

例如,在iSER協議中,採用了SCSI中間層的方法插入到Linux,iSER在額外的抽象層(CMA,Connection Manager Abstraction layer)上工作,實現對基於InfiniBand和iWARP的RDMA技術的透明操作。

第一章 InfiniBand關鍵技術和概念解析1

1.1什麼是InfiniBand (IB)?2

1.2 InfiniBand與傳統的網路協議有何不同?5

1.3 InfiniBand與TCP有什麼不同?5

1.4 InfiniBand嚴格意義上是I/O Fabric嗎?5

1.5 InfiniBand是分層協議嗎?5

1.6 InfiniBand的優勢是什麼?6

1.7 可用的InfiniBand數據速率是多少?6

1.8 什麼是RDMA ?它的優點是什麼?7

1.9 InfiniBand架構的主要元素是什麼?9

1.10 什麼是主機通道適配器(HCA)?10

1.11 什麼是交換機?在InfiniBand中如何工作?10

1.12 什麼是子網管理器(SM)?11

1.13 在InfiniBand網路中路由器是必需的嗎?11

1.14 什麼是網關?它如何在InfiniBand網路中工作?11

1.15 VPI與InfiniBand有什麼關係 ?11

1.16 什麼是LID, GID 和 GUID?12

1.17 InfiniBand支持IP流量嗎?IPoIB是什麼?12

1.18 什麼是可靠和不可靠的傳輸方式?13

1.19 IPoIB支持綁定嗎?13

1.20 InfiniBand支持多播嗎?13

1.21 InfiniBand支持服務質量嗎?13

1.22 InfiniBand是無損網路嗎?14

1.23 InfiniBand如何處理安全問題?14

1.24 基於信用的流量控制如何工作?15

1.25 Infiniband有生成樹嗎?15

1.26 InfiniBand中Verbs是什麼?15

1.27 如何監控InfiniBand網路的帶寬、擁塞和健康狀況?15

1.28 InfiniBand和Mellanox更多學習資源17

第二章InfiniBand背景和技術發展17

2.1 InfiniBand技術的發展18

2.2 InfiniBand技術的優勢19

2.3 InfiniBand組網方式和相關概念21

2.4 InfiniBand協議簡介21

2.4.1物理層協議22

2.4.2 鏈路層協議23

2.4.3 網路層協議23

2.4.4 傳輸層協議23

2.4.5 上層網路協議23

2.5 InfiniBand應用場景24

第三章InfiniBand架構解析25

3.1 軟體協議棧OFED介紹25

3.2 InfiniBand的軟體架構26

3.2.1 IB對基於IP的應用支持28

3.2.2 IB對基於Socket的應用的支持29

3.2.3 IB對基於SCSI和iSCSI應用的支持30

3.2.4 IB對NFS應用的支持32

3.3 InfiniBand網路和拓撲組成33

3.4 InfiniBand網路管理36

3.5 InfiniBand並行計算集群37

3.6 InfiniBand的存儲支持能力38

3.7 InfiniBand對RDMA技術支持39

第四章 InfiniBand主要產品和特性39

4.1 Mellanox主要產品介紹39

4.1.1 Infiniband交換機41

4.1.2 InfiniBand適配卡HCA43

4.1.3 Infiniband路由器和網關設備43

4.1.4 Infiniband線纜和收發器48

目前,InfiniBand軟體和協議堆棧在主流的Linux、Windows版本和虛擬機監控程序(Hypervisor)平台上都得到了支持和支持。這包括Red Hat Enterprise Linux、SUSE Linux Enterprise Server、Microsoft Windows Server和Windows CCS (計算集群伺服器)以及VMware虛擬基礎設施平台。

溫馨提示:

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 架構師技術聯盟 的精彩文章:

實現超級計算機系統,通過堆CPU就行嗎?
收藏:淺析SPDK技術和知識點

TAG:架構師技術聯盟 |