# Infiniband --- 本文部分內容出自 Mellanox 官方教學:https://academy.mellanox.com/en/ > Wiki: > InfiniBand(直譯為「無限頻寬」技術,縮寫為IB)是一個用於高效能計算的電腦網路通信標準,它具有極高的吞吐量和極低的延遲,用於電腦與電腦之間的資料互連。InfiniBand也用作伺服器與儲存系統之間的直接或交換互連,以及儲存系統之間的互連。 [大綱簡報](http://w.mou.tw:8080/share/SC/HPC/HPC_AI_IB_INTR-July%202020.pdf) # 概略 ![](https://i.imgur.com/XjTHatz.png) IB 網路主要分為五層,而其封包格式如上圖。 其中紅色主要對應了 OSI 七層中的上三層。 ## 物理層 物理層定義了電氣特性和機械特性,包括光纖和銅媒介的電纜和插座、底板連接器、熱交換特性等。定義了背板、電纜、光纜三種物理端口。 * 背板 * 主要用於機箱內的 IB 網傳輸 * 電纜 * Cable 中間走的是銅線,距離較短但方便且便宜 * 單條一對一 * ![](https://i.imgur.com/10tnR9K.png) * DAC 一分二,可以平分頻寬 * ![](https://i.imgur.com/QscjMss.png) * 光纜 * Cable 間為光纖,距離長但貴 * AOC * ![](https://i.imgur.com/3N0tk73.png) * AOC = 兩個光轉換器+光纖線 * ![](https://i.imgur.com/9j2eXqS.png) ## Data Link | Layer | Infiniband | Ethernet | | -------- | -------- | -------- | | Dats Link | GUID| Mac Address | | Data Link | LID | Like private IP | | Network | GID | Like Net Mask | Infiniband 的規劃跟 IPv6 比較相近 # L1 ![](https://i.imgur.com/9QSNAY6.png) ![](https://i.imgur.com/cYWRYBC.jpg) ![](https://i.imgur.com/lo2zMUY.jpg) ![](https://i.imgur.com/96PBPF9.jpg) ![](https://i.imgur.com/Zifw95z.jpg) ![](https://i.imgur.com/xFTyQDB.jpg) # L2 ![](https://i.imgur.com/svC7uPu.png) ![](https://i.imgur.com/BFCevYX.jpg) ![](https://i.imgur.com/hqSF54A.jpg) ![](https://i.imgur.com/M8IPjP7.jpg) ![](https://i.imgur.com/HiwF4QQ.jpg) ![](https://i.imgur.com/XjTHatz.png) ![](https://i.imgur.com/sL7riST.png) ![](https://i.imgur.com/cmomQLy.png) ![](https://i.imgur.com/Dy1J7LC.png) ![](https://i.imgur.com/iDPIDDR.png) ![](https://i.imgur.com/LEPtoBy.jpg) ![](https://i.imgur.com/iYCBuaC.jpg) ![](https://i.imgur.com/pGrfPZv.png) ![](https://i.imgur.com/wCmRz8W.png) ![](https://i.imgur.com/DvSQbQ1.png) ![](https://i.imgur.com/JczIE2V.png) ![](https://i.imgur.com/A2EhwHs.png) ![](https://i.imgur.com/btXRZAz.jpg) # L3 ![](https://i.imgur.com/nIo1JIq.png) ![](https://i.imgur.com/jvu4n9L.jpg) ![](https://i.imgur.com/JWnthun.jpg) ![](https://i.imgur.com/1LfwWqP.png) ![](https://i.imgur.com/ATshENa.jpg) ![](https://i.imgur.com/LemgTn8.jpg) ![](https://i.imgur.com/1zY4U6Y.jpg) ![](https://i.imgur.com/ZPsHkbu.png) ![](https://i.imgur.com/tGxMEKP.jpg) ![](https://i.imgur.com/XthqgUy.jpg) # 應用 API InfiniBand 定義了 L4 以下,但卻沒有標準的驅動程式。原始的 IB 標準只列出一組的動作例如 ibv_open_device 或是 ibv_post_send,這些都是必須存在的子程式或方法的抽象表示方式。這些子程式的語法由供應商自行定義。事實標準的軟體堆疊標準是由 OpenFabrics Alliance 所開發的。它以雙許可證方式發布,GNU通用公共許可證或BSD許可證用於 GNU/Linux 以及 FreeBSD,且 WinOF 在 Windows 下可以選擇 BSD許可證。它已被大多數 InfiniBand 供應商採用,用於 GNU/Linux、FreeBSD 以及 Windows。 OpenFabrics Enterprise Distribution (OFED)是一組開源軟件驅動、核心內核代碼、中間件和支持InfiniBand Fabric的用戶級接口程序。 我們可以想像在上面的定義後,OFED 進一步的撰寫了更多的 IB 功能,舉凡 IPoIB(在 IB 網路上實現乙太網的 IP 機制)、RDMA 等等。 OFED 除了由 OpenFabrics 官方釋出的開源版本外 https://www.openfabrics.org/downloads/OFED/ 也有由 Mellanox 再次撰寫並打包的 MLNX_OFED https://www.mellanox.com/support/mlnx-ofed-matrix?mtag=linux_sw_drivers 不論何者,都能夠妥善利用 opensmd 管理 IB 網路,並提供進階功能 IPoIB、RDMA # OFED :::warning 參考這篇 https://hackmd.io/@William-Mou/SywOmi7kD ::: InfiniBand 定義了傳出規範,但卻沒有標準的驅動程式。原始的 IB 標準 (verbs) 只列出一組的動作例如 ibv_open_device 或是 ibv_post_send。子程式的語法由供應商自行定義。常見標準是由 OpenFabrics Alliance 所開發。它以雙許可證方式發布,GNU 通用公共許可證或BSD許可證用於 GNU/Linux 以及 FreeBSD,且 WinOF 在 Windows 下可以選擇 BSD 許可證。它已被大多數 InfiniBand 供應商採用,用於 GNU/Linux、FreeBSD 以及 Windows。 ## OFED 用途 OpenFabrics Enterprise Distribution (OFED) 是一組開源軟件驅動、核心內核代碼、中間件和支持InfiniBand Fabric的用戶級接口程序。 我們可以想像在上面的定義後,OFED 進一步的撰寫了更多的 IB 功能,舉凡 IPoIB(在 IB 網路上實現乙太網的 IP 機制)、RDMA 等等。 OFED 除了由 OpenFabrics 官方釋出的開源版本外 https://www.openfabrics.org/downloads/OFED/ 也有由 Mellanox 再次撰寫並打包的 MLNX_OFED https://www.mellanox.com/support/mlnx-ofed-matrix?mtag=linux_sw_drivers 不論何者,都能夠妥善利用 opensmd 管理 IB 網路,並提供進階功能 IPoIB、RDMA