前言
從新版 vSphere 6.5 開始,正式支援 RDMA (Remote Direct Memory Access) 當中的 RoCE (RDMA over Converged Ethernet),以便於達到「Kernel Bypass、Zero Copy、CPU Offloading」的目的。在目前的 RoCE 運作模式中,分別有 RoCE v1 及 RoCE 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 封包格式示意圖
圖片來源: VMware vSphere Blog - vSphere 6.5 with RoCE (RDMA over Converged Ethernet) and Certification Suite
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 vMotion 及 Snapshot 皆受益)。
目前,必須符合下列相關條件才能順利運作 PVRDMA 功能:
- 採用 vSphere ESXi 6.5 / vCenter Server 6.5
- 採用 vDS (vSphere Distributed Switch)
- VM 虛擬主機必須採用 Virtual Hardware Version 13
- 詳細資訊請參考 VMware vSphere 6.5 文件中心 - PVRDMA 支援
最後,我個人的疑問是 VMware vSAN 是否已經支援 RDMA 特色功能了? 就目前所得到的資訊來看,目前 vSAN 似乎仍未支援 RDMA 特色功能。至於 vSphere 6.5 是否支援另一個主流 RDMA (iWARP),目前所得到的資訊來看似乎也仍未支援。