本文簡單描述了InfiniBand 和遠程直接訪問(RDMA)是什么,以及在實踐中如何配置InfiniBand網絡硬件。另外,本文檔解釋了如何配置與 InfiniBand 相關的服務。
01InfiniBand 和 RDMA 介紹
InfiniBand代表兩個不同的因素:
1、InfiniBand網絡的物理鏈路協議
2、InfiniBand Verbs API,這是RDMA(remote direct memory access)技術的一個實現。
RDMA 可在不涉及計算機操作系統的情況下,從一個計算機訪問另一臺計算機的內存。此技術啟用了高吞 吐量和低延遲聯網,且 CPU 使用率較低。 在典型的 IP 數據傳輸中,當機器中的某個應用程序向另一臺機器上的應用程序發送數據時,在接收層時會出現以下情況:
1、內核必須接收數據。
2、內核必須確定該數據是否屬于該應用程序。
3、內核喚醒應用程序。
4、內核會等待應用程序執行系統調用到內核。
5、應用程序將內核本身的內部內存空間數據復制到應用程序提供的緩沖中。
這個過程意味著,如果主機適配器使用直接內存訪問(DMA),或者至少兩次,則大多數網絡流量會被復制 到系統的主內存中。另外,計算機執行很多上下文開關以在內核和應用程序上下文間進行切換。這些上下 文切換都可能造成高流量率的 CPU 負載,并可能造成其他任務的性能下降。 RDMA 通訊會繞過內核在溝通過程中的干預,這和普通的 IP 通訊不同這可減少 CPU 開銷。RDMA 協議 讓主機適配器知道數據包何時來自網絡,應用程序應該接收它,并在應用程序的內存空間中保存數據包。對于 InfiniBand,主機適配器不將數據包發送到內核,然后將其復制到用戶應用程序的內存中,而是,主機適 配器將數據包的內容直接放置在應用程序的緩沖中。此過程需要單獨的 API、InfiniBand Verbs API,應用 程序必須支持這個API才能使用 RDMA。 Red Hat Linux同時支持 InfiniBand 硬件和 InfiniBand Verbs API。另外,Red Hat Enterprise Linux 支持以下技術,以便在非 InfiniBand 硬件中使用 InfiniBand Verbs API:
互聯網廣域 RDMA 協議(iWARP):通過 IP 網絡實施 RDMA 的網絡協議。
RDMA over Converged Ethernet(RoCE),也稱為以太網的 InfiniBand(IBoE):通過以太網實現 RDMA 的網絡協議。
02配置 ROCE
比如 Mellanox、Broadcom 和 QLogic 都提供 RoCE 硬件。 RoCE 是一種網絡協議,可實現通過以太網的遠程直接訪問(RDMA)。以下是不同的 RoCE 版本:
RoCE v1
RoCE 版本 1 協議是帶有 ethertype 0x8915 的以太網鏈路層協議,它允許同一以太網廣播域中任何兩個主機之間進行通信。 默認情況下,在使用 Mellanox ConnectX-3 網絡適配器時,Red Hat Enterprise Linux 使用 RoCE v1 作為 RDMA 連接管理器(RDMA_CM)。
RoCE v2
RoCE 版本 2 協議在 IPv4 或 IPv6 協議的 UDP 上存在。RoCE v2 保留 UDP 目標端口號 4791。默認情況下,在使用 Mellanox ConnectX-3 Pro、ConnectX-4 Lx 或 ConnectX-5 網絡適配器時,Red Hat Enterprise Linux將RoCE v2 用于 RDMA_CM,但硬件支持 RoCE v1 和 RoCE v2。 RDMA_CM 設置客戶端和服務器之間用來傳輸數據的可靠連接。RDMA_CM 為建立連接提供了一個與 RDMA 傳輸相關的接口。該通信使用特定的 RDMA 設備,數據傳輸是基于消息的。 在客戶端使用 RoCE v2,在服務器使用 RoCE v1 不被支持。在這種情況下,將服務器和客戶端都配置為通過 RoCE v1 進行通信。 不支持在客戶端和服務器上的 RoCE v1 使用 RoCE v2 協議。如果您的服務器中硬件只支持 RoCE v1,請將 您的客戶端配置為使用 RoCE v1 與服務器通信。這部分論述了如何在將 mlx5_0驅動程序用于 Mellanox ConnectX-5 Infiniband 設備的客戶端上強制實施 RoCE v1。 Soft-RoCE 是 RDMA over Ethernet 的一個軟件實現,它也稱為 RXE。在沒有 RoCE 主機頻道適配器(HCA)的主機上使用 Soft-RoCE。 Soft-RoCE 功能僅作為技術預覽提供。紅帽產品服務級別協議(SLA)不支持技術預覽功 能,且其功能可能并不完善,因此紅帽不建議在生產環境中使用它們。
03配置核心RDMA子系統
默認情況下,內核命名 IP over InfiniBand(IPoIB)設備,如 ib0,ib1 等。為避免沖突,紅帽建議在 udev 設 備管理器中創建一條規則來創建持久且有意義的名稱,如 mlx4_ib0。 RDMA 操作需要固定物理內存。這意味著內核不允許把內存寫入到 swap 空間中。如果用戶固定太多內 存,系統會耗盡內存,并且內核會終止進程來釋放更多內存。因此,內存固定是一個特權操作。如果非 root 用戶運行大型 RDMA 應用程序,則可能需要增加這些用戶可在系統中的內存量。這部分論述 了如何為 rdma 組配置無限內存。 配置RDMA服務,rdma 服務在內核中管理RDMA堆棧。如果Red Hat Enterprise Linux 檢測到 InfiniBand、iWARP 或 RoCE 設備,udev 設備管理器會指示 systemd 啟動 rdma 服務。
04配置InfiniBand子網管理器
所有 InfiniBand 網絡都必須運行子網管理器才能正常工作。即使兩臺機器沒有使用交換機直接進行連接, 也是如此。有可能有一個以上的子網管理器。在那種情況下,當主子網管理器出現故障時,另外一個作為從網管理器 的系統會接管。大多數 InfiniBand 交換機都包含一個嵌入式子網管理器。 但是,如果您需要一個更新的子網管理器,需使用 Red Hat Enterprise Linux 提供的 OpenSM 子網管理器。
05配置 IPOIB
默認情況下,InfiniBand 不使用 IP 進行通信。但是,IP over InfiniBand(IPoIB)在 InfiniBand 遠程直接訪問(RDMA)網絡之上提供一個 IP 網絡模擬層。這允許現有未經修改的應用程序通過 InfiniBand 網絡傳輸數 據,但性能低于應用程序原生使用 RDMA 時的數據。 互聯網廣域 RDMA 協議(iWARP)和 RoCE 網絡已基于 IP。因此,您不能在 IWARP 或 RoCE 設備之上創建 IPoIB 設備。Mellanox 設備從 ConnectX-4 及更高版本開始,默認使用 Enhanced IPoIB 模式(僅限數 據報)。這些設備不支持連接的模式。 IPOIB通訊模式,在Datagram或Connected模式下配置 IPoIB 設備。不同之處在,IPoIB 層試圖使用什么類型的隊列對在通信的另一端的機器中打開: 在Datagram模式中,系統打開了一個不可靠、斷開連接的隊列對。這個模式不支持大于 InfiniBand link-layer 的最大傳輸單元(MTU)的軟件包。IPoIB 層在傳輸的 IP 數據包之上添加了一個 4 字節 IPoIB 標頭。因此,IPoIB MTU 需要比 InfiniBand link-layer MTU 小 4 字節。因為 2048 是一個常見的 InfiniBand 鏈路層 MTU,數據數報模式中常見的 IPoIB 設備 MTU 是 2044。 在Connected模式中,系統會打開一個可靠、連接的隊列對。此模式允許大于 InfiniBand 鏈路層 MTU 的消息,主機適配器處理數據包分段和重新傳輸。因 此,InfiniBand 適配器以Connected模式發送的 IPoIB 信息大小沒有限制。但是,IP 數據包會受size字段和 TCP/IP 標頭的限制。因此,Connected模式中的 IPoIB MTU 最大為65520字節。 連接 模式模 的性能更高,但消耗的內核內存更多。 如果系統被配置為使用Connected模式,它仍然會以Datagram模式發送多播流量,因為 InfiniBand 交換機和光纖無法在Connected模式下傳遞多播流量。另外,當與任何未在Connected模式中配置的主 機通信時,系統將返回Datagram模式。 在運行將多播數據發送到接口上最大 MTU 的應用程序時,您必須將接口配置為Datagram模式,或者將應用程序配置為以數據包大小數據包的大小封頂數據包發送的大小。
審核編輯:郭婷
-
計算機
+關注
關注
19文章
6757瀏覽量
85309 -
操作系統
+關注
關注
37文章
6363瀏覽量
122129 -
RDMA
+關注
關注
0文章
68瀏覽量
8866
原文標題:關于InfiniBand和RDMA網絡配置實踐
文章出處:【微信號:算力基建,微信公眾號:算力基建】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論