在 FreeBSD 上通過 Infiniband 進行文件共享
我有一對伺服器,我想直接相互連接——而不是通過網路其餘部分共享的交換機。我希望從直接連接(包括更大的 MTU)提供的更低延遲和更高頻寬中受益。
兩台機器目前都執行 FreeBSD-11.2,並且每台機器都有自己的帶有多個文件系統的 ZFS 池。快速交叉訪問這些文件系統是主要目標之一。
為此我買了一對二手卡(Mellanox IBM 46M2201 Dual Port ConnectX 4X),有以下問題:
- 我有哪些連接選項?主要目的是共享數據—— NFS 是我唯一的選擇,還是 FreeBSD 有 Infiniband 特有的東西?
- 如果是 NFS,它是否必須通過 IP,或者是否有一些“更親密”的 Infiniband 特定協議?
- 如果是 NFS over IP,我應該選擇 UDP 還是 TCP?任何其他調整參數可以從直接連接中獲得最大收益?
- 我需要什麼類型的電纜來直接連接這些?令我驚訝的是,搜尋“infiniband cable”返回了各種具有不同連接器的產品。
非常感謝您提前提供任何見解。如果有一個線上文件(其中一些)回答了這些問題,我很樂意獲取連結——我能找到的所有內容似乎都是特定於供應商的……
(為什麼這個關於連接伺服器的問題在**Serverfault上被認為是“離題” ?)
我沒有 1-3 的答案,只有一些關於 Infiniband(IB) 應用程序的附加資訊可以幫助您找到答案。我可以回答4。
我的連接選項是什麼?主要目的是共享數據—— NFS 是我唯一的選擇,還是 FreeBSD 有 Infiniband 特有的東西?
如果是 NFS,是否必須通過 IP,或者是否有一些“更親密”的 Infiniband 特定協議?
要尋找的關鍵詞可能是 NFS over RDMA,但快速搜尋表明它對於 FreeBSD 可能還不完整。您也可以查看 SRP 或 iSER,但我沒有發現對使用這些 IB 協議的任何應用程序的引用。
- 如果是 NFS over IP,我應該選擇 UDP 還是 TCP?任何其他調整參數可以從直接連接中獲得最大收益?
TCP。根據FreeBSD IB Wiki,作為 IB 配置的一部分,您正在設置連接模式,這類似於使用 TCP。至少在 Linux 世界中,當使用連接模式時,您應該只使用 NFS over TCP 而不是 UDP。NFS over UDP 只應在使用數據報模式時進行,不推薦。
- 我需要什麼類型的電纜直接連接這些?令我驚訝的是,搜尋“infiniband cable”返回了各種具有不同連接器的產品。
您需要一根“QDR”電纜,它是“Quad Data Rate”或 40Gbps 的縮寫。ConnectX-3 卡執行 FDR,它是“十四數據速率”或 56Gbps(14Gbps*4 通道)的縮寫。任何一條電纜都應該適用於您的卡。
您可以購買 Mellanox 品牌的電纜,在這種情況下您知道它會起作用,或者您可以獲得非品牌電纜。我喜歡 3M 品牌的電纜。它們是一種扁平電纜,支持非常尖銳的彎曲半徑,允許您在非常小的空間內堆疊一堆電纜而不會產生任何串擾。二手 Mellanox QDR 電纜在 eBay 上應該非常便宜。我從來沒有買過二手的,但如果你這樣做,你必須得到一根經過測試的電纜——如果你沒有一個可以比較的工作系統,那很難排除故障。
有兩種類型的電纜 - 無源(銅)或有源(光纖)電纜。光纖電纜永久連接到 QSFP 連接器,因此您必須將它們設置為特定長度。銅的最大長度為 3 米,或者可能長達 5 米 - 更長,您必須使用光纖電纜。在所有東西都 100% 使用銅線工作之前,不要使用光纜。由於硬體中的奇怪故障模式,我已經看到銅線工作正常但光纖不能正常工作的情況。消除這種可能性,直到您有經驗和零件清單以進行故障排除。
現在,還有一些您沒有要求但可能會有所幫助的其他提示。首先,確保您在其中一個系統上執行 opensm。把它想像成一個 dhcp 伺服器;沒有它,兩個系統將物理連接,但不會傳遞任何數據。
其次,一些Mellanox 卡將在 IB 模式或乙太網模式下執行。這些通常是 VPI 系列卡。我不確定這是否是 ConnectX-2 上的一個選項,或者您的卡是否支持它。但如果他們這樣做了,讓這些卡作為 40GBE 而不是 QDR IB 執行並具有良好的 NFS 性能可能會更容易。根據我在 Linux 上的經驗,我們看到 IPoIB 的性能約為線速的 20-30%。您將通過 RDMA 等 IB 協議或切換到乙太網模式獲得線速。