如何配置InfiniBand和RDMA網(wǎng)絡(luò)?

本文檔描述InfiniBand 和遠(yuǎn)程直接訪問(wèn)(RDMA)是什么以及如何配置 InfiniBand 硬件。另外,本文檔解釋了如何配置與 InfiniBand 相關(guān)的服務(wù)。本文請(qǐng)參看“配置InfiniBand和RDMA網(wǎng)絡(luò)”。
下載鏈接:

InfiniBand 代表兩個(gè)不同的因素:
InfiniBand 網(wǎng)絡(luò)的物理鏈路協(xié)議?
InfiniBand Verbs API,這是 RDMA(remote direct memory access)技術(shù)的一個(gè)實(shí)現(xiàn)?
RDMA 可在不涉及計(jì)算機(jī)操作系統(tǒng)的情況下,從一個(gè)計(jì)算機(jī)訪問(wèn)另一臺(tái)計(jì)算機(jī)的內(nèi)存。此技術(shù)啟用了高吞 吐量和低延遲聯(lián)網(wǎng),且 CPU 使用率較低。?
在典型的 IP 數(shù)據(jù)傳輸中,當(dāng)機(jī)器中的某個(gè)應(yīng)用程序向另一臺(tái)機(jī)器上的應(yīng)用程序發(fā)送數(shù)據(jù)時(shí),在接收層時(shí) 會(huì)出現(xiàn)以下情況:?
1. 內(nèi)核必須接收數(shù)據(jù)。
2. 內(nèi)核必須確定該數(shù)據(jù)是否屬于該應(yīng)用程序。?
3. 內(nèi)核喚醒應(yīng)用程序。
4. 內(nèi)核會(huì)等待應(yīng)用程序執(zhí)行系統(tǒng)調(diào)用到內(nèi)核。
5. 應(yīng)用程序?qū)?nèi)核本身的內(nèi)部?jī)?nèi)存空間數(shù)據(jù)復(fù)制到應(yīng)用程序提供的緩沖中。?
這個(gè)過(guò)程意味著,如果主機(jī)適配器使用直接內(nèi)存訪問(wèn)(DMA),或者至少兩次,則大多數(shù)網(wǎng)絡(luò)流量會(huì)被復(fù)制 到系統(tǒng)的主內(nèi)存中。另外,計(jì)算機(jī)執(zhí)行很多上下文開(kāi)關(guān)以在內(nèi)核和應(yīng)用程序上下文間進(jìn)行切換。這些上下 文切換都可能造成高流量率的 CPU 負(fù)載,并可能造成其他任務(wù)的性能下降。?
RDMA 通訊會(huì)繞過(guò)內(nèi)核在溝通過(guò)程中的干預(yù),這和普通的 IP 通訊不同這可減少 CPU 開(kāi)銷(xiāo)。RDMA 協(xié)議 讓主機(jī)適配器知道數(shù)據(jù)包何時(shí)來(lái)自網(wǎng)絡(luò),應(yīng)用程序應(yīng)該接收它,并在應(yīng)用程序的內(nèi)存空間中保存數(shù)據(jù)包。對(duì) 于 InfiniBand,主機(jī)適配器不將數(shù)據(jù)包發(fā)送到內(nèi)核,然后將其復(fù)制到用戶應(yīng)用程序的內(nèi)存中,而是,主機(jī)適 配器將數(shù)據(jù)包的內(nèi)容直接放置在應(yīng)用程序的緩沖中。此過(guò)程需要單獨(dú)的 API、InfiniBand Verbs API,應(yīng)用 程序必須支持這個(gè)API才能使用 RDMA。?
Red Hat Enterprise Linux 8支持 InfiniBand 硬件和 InfiniBand Verbs API。另外,Red Hat Enterprise Linux 支持以下技術(shù),以便在非 InfiniBand 硬件中使用 InfiniBand Verbs API:?
互聯(lián)網(wǎng)廣域 RDMA 協(xié)議(iWARP):通過(guò) IP 網(wǎng)絡(luò)實(shí)施 RDMA 的網(wǎng)絡(luò)協(xié)議。?
RDMA over Converged Ethernet(RoCE),也稱(chēng)為以太網(wǎng)的 InfiniBand(IBoE):通過(guò)以太網(wǎng)實(shí)現(xiàn) RDMA 的網(wǎng)絡(luò)協(xié)議。
比如 Mellanox、Broadcom 和 QLogic 都提供 RoCE 硬件。配置細(xì)節(jié),請(qǐng)參看“配置InfiniBand和RDMA網(wǎng)絡(luò)”。
RoCE 是一種網(wǎng)絡(luò)協(xié)議,可實(shí)現(xiàn)通過(guò)以太網(wǎng)的遠(yuǎn)程直接訪問(wèn)(RDMA)。以下是不同的 RoCE 版本:?
RoCE v1?
RoCE 版本 1 協(xié)議是帶有 ethertype 0x8915 的以太網(wǎng)鏈路層協(xié)議,它允許同一以太網(wǎng)廣播域中任何兩 個(gè)主機(jī)之間進(jìn)行通信。
默認(rèn)情況下,在使用 Mellanox ConnectX-3 網(wǎng)絡(luò)適配器時(shí),Red Hat Enterprise Linux 使用 RoCE v1 作 為 RDMA 連接管理器(RDMA_CM)。
RoCE v2?
RoCE 版本 2 協(xié)議在 IPv4 或 IPv6 協(xié)議的 UDP 上存在。RoCE v2 保留 UDP 目標(biāo)端口號(hào) 4791。默認(rèn)情況下,在使用 Mellanox ConnectX-3 Pro、ConnectX-4 Lx 或 ConnectX-5 網(wǎng)絡(luò)適配器時(shí),Red Hat Enterprise Linux將RoCE v2 用于 RDMA_CM,但硬件支持 RoCE v1 和 RoCE v2。?
RDMA_CM 設(shè)置客戶端和服務(wù)器之間用來(lái)傳輸數(shù)據(jù)的可靠連接。RDMA_CM 為建立連接提供了一個(gè)與 RDMA 傳輸相關(guān)的接口。該通信使用特定的 RDMA設(shè)備,數(shù)據(jù)傳輸是基于消息的。
在客戶端使用 RoCE v2,在服務(wù)器使用 RoCE v1 不被支持。在這種情況下,將服務(wù)器和客 戶端都配置為通過(guò) RoCE v1 進(jìn)行通信。
不支持在客戶端和服務(wù)器上的 RoCE v1 使用 RoCE v2 協(xié)議。如果您的服務(wù)器中硬件只支持 RoCE v1,請(qǐng)將 您的客戶端配置為使用 RoCE v1 與服務(wù)器通信。這部分論述了如何在將 mlx5_0 驅(qū)動(dòng)程序用于 Mellanox ConnectX-5 Infiniband 設(shè)備的客戶端上強(qiáng)制實(shí)施 RoCE v1。
Soft-RoCE 是 RDMA over Ethernet 的一個(gè)軟件實(shí)現(xiàn),它也稱(chēng)為 RXE。在沒(méi)有 RoCE 主機(jī)頻道適配器 (HCA)的主機(jī)上使用 Soft-RoCE。
Soft-RoCE 功能僅作為技術(shù)預(yù)覽提供。紅帽產(chǎn)品服務(wù)級(jí)別協(xié)議(SLA)不支持技術(shù)預(yù)覽功 能,且其功能可能并不完善,因此紅帽不建議在生產(chǎn)環(huán)境中使用它們。
配置細(xì)節(jié),請(qǐng)參看“配置InfiniBand和RDMA網(wǎng)絡(luò)”。
默認(rèn)情況下,內(nèi)核命名 IP over InfiniBand(IPoIB)設(shè)備,如 ib0,ib1 等。為避免沖突,紅帽建議在 udev 設(shè) 備管理器中創(chuàng)建一條規(guī)則來(lái)創(chuàng)建持久且有意義的名稱(chēng),如 mlx4_ib0。
RDMA 操作需要固定物理內(nèi)存。這意味著內(nèi)核不允許把內(nèi)存寫(xiě)入到 swap 空間中。如果用戶固定太多內(nèi) 存,系統(tǒng)會(huì)耗盡內(nèi)存,并且內(nèi)核會(huì)終止進(jìn)程來(lái)釋放更多內(nèi)存。因此,內(nèi)存固定是一個(gè)特權(quán)操作。如果非 root 用戶運(yùn)行大型 RDMA 應(yīng)用程序,則可能需要增加這些用戶可在系統(tǒng)中的內(nèi)存量。這部分論述 了如何為 rdma 組配置無(wú)限內(nèi)存。
配置RDMA服務(wù),rdma 服務(wù)在內(nèi)核中管理RDMA堆棧。如果Red Hat Enterprise Linux 檢測(cè)到 InfiniBand、iWARP 或 RoCE 設(shè)備,udev 設(shè)備管理器會(huì)指示 systemd 啟動(dòng) rdma 服務(wù)。配置細(xì)節(jié),請(qǐng)參看“配置InfiniBand和RDMA網(wǎng)絡(luò)”。
所有 InfiniBand 網(wǎng)絡(luò)都必須運(yùn)行子網(wǎng)管理器才能正常工作。即使兩臺(tái)機(jī)器沒(méi)有使用交換機(jī)直接進(jìn)行連接, 也是如此。有可能有一個(gè)以上的子網(wǎng)管理器。在那種情況下,當(dāng)主子網(wǎng)管理器出現(xiàn)故障時(shí),另外一個(gè)作為從網(wǎng)管理器 的系統(tǒng)會(huì)接管。大多數(shù) InfiniBand 交換機(jī)都包含一個(gè)嵌入式子網(wǎng)管理器。
但是,如果您需要一個(gè)更新的子網(wǎng)管理器,需使用 Red Hat Enterprise Linux 提供的 OpenSM 子網(wǎng)管理器。配置細(xì)節(jié),請(qǐng)參看“配置InfiniBand和RDMA網(wǎng)絡(luò)”。
默認(rèn)情況下,InfiniBand 不使用 IP 進(jìn)行通信。但是,IP over InfiniBand(IPoIB)在 InfiniBand 遠(yuǎn)程直接訪問(wèn) (RDMA)網(wǎng)絡(luò)之上提供一個(gè) IP 網(wǎng)絡(luò)模擬層。這允許現(xiàn)有未經(jīng)修改的應(yīng)用程序通過(guò) InfiniBand 網(wǎng)絡(luò)傳輸數(shù) 據(jù),但性能低于應(yīng)用程序原生使用 RDMA 時(shí)的數(shù)據(jù)。
互聯(lián)網(wǎng)廣域 RDMA 協(xié)議(iWARP)和 RoCE 網(wǎng)絡(luò)已基于 IP。因此,您不能在 IWARP 或 RoCE 設(shè)備之上創(chuàng)建 IPoIB 設(shè)備。Mellanox 設(shè)備從 ConnectX-4 及更高版本開(kāi)始,默認(rèn)使用 Enhanced IPoIB 模式(僅限數(shù) 據(jù)報(bào))。這些設(shè)備不支持連接的模式。
IPOIB通訊模式,在 Datagram 或 Connected 模式下配置 IPoIB 設(shè)備。不同之處在,IPoIB 層試圖使用什么類(lèi)型的 隊(duì)列對(duì)在通信的另一端的機(jī)器中打開(kāi):
在 Datagram 模式中,系統(tǒng)打開(kāi)了一個(gè)不可靠、斷開(kāi)連接的隊(duì)列對(duì)。這個(gè)模式不支持大于 InfiniBand link-layer 的最大傳輸單元(MTU)的軟件包。IPoIB 層在傳輸的 IP 數(shù)據(jù)包之上添加了一個(gè) 4 字節(jié) IPoIB 標(biāo)頭。因此,IPoIB MTU 需要比 InfiniBand link-layer MTU 小 4 字節(jié)。因為 2048 是一個(gè)常見(jiàn)的 InfiniBand 鏈路層 MTU,數(shù)據(jù)數(shù) 報(bào) 模式中常見(jiàn)的 IPoIB 設(shè)備 MTU 是 2044。?
在 Connected 模式中,系統(tǒng)會(huì)打開(kāi)一個(gè)可靠、連接的隊(duì)列對(duì)。此模式允許大于 InfiniBand 鏈路層 MTU 的消息,主機(jī)適配器處理數(shù)據(jù)包分段和重新傳輸。因 此,InfiniBand 適配器以 Connected 模式發(fā)送的 IPoIB 信息大小沒(méi)有限制。但是,IP 數(shù)據(jù)包會(huì)受 size 字段和 TCP/IP 標(biāo)頭的限制。因此,Connected 模式中的 IPoIB MTU 最大為 65520 字節(jié)。
連接 模式模 的性能更高,但消耗的內(nèi)核內(nèi)存更多。?
如果系統(tǒng)被配置為使用 Connected 模式,它仍然會(huì)以 Datagram 模式發(fā)送多播流量,因為 InfiniBand 交 換機(jī)和光纖無(wú)法在 Connected 模式下傳遞多播流量。另外,當(dāng)與任何未在 Connected 模式中配置的主 機(jī)通信時(shí),系統(tǒng)將返回 Datagram 模式。
在運(yùn)行將多播數(shù)據(jù)發(fā)送到接口上最大 MTU 的應(yīng)用程序時(shí),您必須將接口配置為 Datagram 模式,或者將 應(yīng)用程序配置為以數(shù)據(jù)包大小數(shù)據(jù)包的大小封頂數(shù)據(jù)包發(fā)送的大小。配置細(xì)節(jié),請(qǐng)參看“配置InfiniBand和RDMA網(wǎng)絡(luò)”。
下載鏈接:
中國(guó)聯(lián)通的開(kāi)放網(wǎng)絡(luò)研究與實(shí)踐
中國(guó)聯(lián)通開(kāi)放硬件網(wǎng)絡(luò)設(shè)備白皮書(shū)
來(lái)源:全棧云技術(shù)架構(gòu)
???????????????? ?END ?????????????????
轉(zhuǎn)載申明:轉(zhuǎn)載本號(hào)文章請(qǐng)注明作者和來(lái)源,本號(hào)發(fā)布文章若存在版權(quán)等問(wèn)題,請(qǐng)留言聯(lián)系處理,謝謝。
推薦閱讀
更多架構(gòu)相關(guān)技術(shù)總結(jié)請(qǐng)參考“架構(gòu)師全店鋪技術(shù)資料打包”相關(guān)電子書(shū)(37本技術(shù)資料打包匯總詳情可通過(guò)“閱讀原文”獲取)。
內(nèi)容持續(xù)更新,現(xiàn)下單“全店鋪技術(shù)資料打包(全)”,后續(xù)可享全店更新“免費(fèi)”贈(zèng)閱,價(jià)格僅收198元(原總價(jià)350元)。
溫馨提示:
掃描二維碼關(guān)注公眾號(hào),點(diǎn)擊閱讀原文鏈接獲取“IT技術(shù)全店資料打包匯總(全)”電子書(shū)資料詳情。

