遠端直接記憶體訪問 (RDMA)
什麼是 RDMA?
RDMA 指的是在網路中一臺計算機訪問另一臺計算機的記憶體,而無需任何計算機的作業系統、處理器或快取的參與。由於釋放了許多資源,因此有助於提高系統吞吐量和效能。
可以在遠端機器上執行讀寫操作,而不會被該機器的 CPU 中斷。這項技術提高了資料傳輸速率,並降低了網路延遲。它使用零複製網路,透過啟用網路介面卡將資料直接傳輸到系統緩衝區。
RDMA 以前僅用於高效能計算 (HPC) 環境。由於效能比成本更重要,因此維護 RDMA 網路結構(如 InfiniBand)的成本是合理的。
由於像 RDMA over Converged Ethernet (RoCE) 這樣的標準,現在可以在現有的乙太網結構上啟用 RDMA 用於 IP 網路通訊,因此採用 RDMA 的成本降低了。RNIC 介面卡使用標準乙太網管理程式進行配置。
RDMA 的特性
核心繞過 − 由於作業系統不參與資料傳輸,應用程式可以直接從使用者空間傳送資料,從而消除上下文切換和延遲。
零複製 − 應用程式可以直接將資料放置在目標應用程式的記憶體緩衝區中,並將資料直接接收入緩衝區,而無需在網路層之間複製資料。這將減少不必要的緩衝區傳輸。
減少 CPU 參與 − 應用程式可以從遠端伺服器檢索資料,而無需在這些伺服器上使用 CPU 時間。訪問的內容不會填充遠端伺服器 CPU 的快取記憶體。
有效的交易 − 可以傳送和接收離散訊息,而不是以流的形式傳送和接收資料,從而消除了分離訊息的需要。
相容 RDMA 的網路協議
IWARP
這是一個名為 iWARP 的網際網路工程任務組 (IETF) 標準。iWARP 是一種以 TCP/IP 為基礎的網路協議。iWARP 資料包可以被路由。
Infiniband
這是一個相容 RDMA 的網路協議。但是,它需要硬體支援,例如支援這項技術的交換機和網路介面卡 (NIC)。
RoCE
這是一個在乙太網上啟用 RDMA 的網路協議。因此,RoCE 不需要將基於乙太網的資料中心轉換為 Infiniband。一般來說,RoCE 分為兩個版本:RoCE v1 和 RoCE v2。
RoCE v1 資料包可以被路由。但是,RoCE v2 資料包可以在同一乙太網廣播中的兩臺主機之間通訊。因此,RoCE v1 指的是乙太網層協議,而 RoCE v2 指的是網際網路協議。
RDMA 的優點
與其他資料傳輸技術和協議(如 iSCSI(透過 TCP 的 SCSI 協議)、光纖通道 (FC) 或乙太網光纖通道 (FCoE))相比,RDMA 的一個主要優點是其驚人的速度。
RDMA 的變體會影響最終的資料傳輸速度。乙太網和 Infini Band 特別受歡迎,因為它們可以承載高達每秒 100 吉位元的資料速度。
這對於需要計算能力的應用程式特別有用,例如分散式資料庫、大資料分析和資料中心應用程式。
RDMA 的缺點
與許多企業仍在使用的光纖線路相比,RDMA 也有一些缺點。
企業必須計劃大量投資才能使用 RDMA,因為這項技術需要購買新的硬體和協議元件。因此,遠端直接記憶體訪問的成本遠高於 FC 或 FCoE。
只有在所有系統都相容這項技術的情況下,才能進行基於 RDMA 的資料傳輸。