︿
Top

前言

從新版 vSphere 6.5 開始,正式支援 RDMA (Remote Direct Memory Access) 當中的 RoCE (RDMA over Converged Ethernet),以便於達到「Kernel Bypass、Zero Copy、CPU Offloading」的目的。在目前的 RoCE 運作模式中,分別有 RoCE v1RoCE v2 等 2 種運作模式:

RoCE v1 (Layer 2)

運作在 Ehternet Link Layer (Layer 2) 所以 Ethertype 0x8915,所以正常的 Frame 大小為 1,500 bytes 而 Jumbo Frame 則是 9,000 bytes

RoCE v2 (Layer 3)

運作在 UDP / IPv4 或 UDP / IPv6 之上 (Layer 3),採用 UDP Port 4791 進行傳輸 。因為 RoCE v2 的封包是座落在 Layer 3 之上可進行路由,所以有時又會稱為「Routable RoCE」或簡稱「RRoCE」
圖、RoCE v1 及 RoCE v2 封包格式示意圖



RDMA 的功用

簡單來說,透過 RDMA 可以達到「Kernel Bypass、Zero Copy、CPU Offloading」的目的。一般來說,採用 RDMA 與一般乙太網路 TCP/IP 相較之下,效能大約可以提升 30% ~ 40% 或以上。

圖、採用一般乙太網路 TCP/IP 進行傳輸

圖、採用 RDMA 進行傳輸

現在,vSphere 6.5 支援 PVRDMA (Para-Virtual Remote Direct Memory Access) 機制,簡單來說就是讓 VM 虛擬主機可以使用 ESXi 主機所配置的 RDMA 介面卡及功能,達到 Kernel Bypass、Zero Copy、CPU Offloading 的目的 (目前 vSphere vMotionSnapshot 皆受益)。

目前,必須符合下列相關條件才能順利運作 PVRDMA 功能:


最後,我個人的疑問是 VMware vSAN 是否已經支援 RDMA 特色功能了? 就目前所得到的資訊來看,目前 vSAN 似乎仍支援 RDMA 特色功能。至於 vSphere 6.5 是否支援另一個主流 RDMA (iWARP),目前所得到的資訊來看似乎也仍支援。



參考資源

文章標籤: