---
# System prepended metadata

title: Infiniband

---

# 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






























