前言
事實上,在前一版 vSphere 6.5 當中便已經開始正式支援 RDMA (Remote Direct Memory Access) 當中的 RoCE (RDMA over Converged Ethernet),以便於達到「Kernel Bypass、Zero Copy、CPU Offloading」的目的。有關 vSphere 6.5 支援 RDMA 的相關資訊,請參考站內文章 vSphere 6.5 支援 RDMA (RoCE v1 及 RoCE v2)。圖、RDMA 運作示意圖
全面支援 RDMA (InfiniBand / iWARP / RoCE)
在新版 vSphere 6.7 運作環境中,全面支援 RDMA (InfiniBand / iWARP / RoCE) 之外,更增強 vSphere Kernel / Hypervisr / RDMA 之間的協同運作的部分,讓整體運作效能更加提升。在 vSphere 6.5 版本中,並不支援 InfiniBand 及 iWARP。
圖、vSphere 6.7 全面支援 RDMA (InfiniBand / iWARP / RoCE)
值得注意的是,倘若 VM 虛擬主機採用的 RDMA 為「Passthruogh Mode」時,雖然可以得到最大化的運作效能,但是將會限制 VM 虛擬主機的靈活性,例如,無法接受 DRS 自動化機制的調度 (無法 vMotion 至其它 ESXi 主機)。
因此,倘若希望 VM 虛擬主機希望具備 RDMA 的運作效能及靈活性 (例如,DRS / vSphere vMotion……等),應該要採用 PVRDMA (Para-Virtual Remote Direct Memory Access) 機制才對。目前,必須符合下列相關條件才能順利運作 PVRDMA 功能 (詳細資訊請參考官網資訊 VMware Docs - PVRDMA Support):
- 採用 vSphere ESXi 6.5 或 6.7 / vCenter Server 6.5 或 6.7。
- 採用 vDS (vSphere Distributed Switch)。
- VM 虛擬主機必須採用 Virtual Hardware Version 13 或 14。
此外,當 VM 虛擬主機採用 vRDMA 機制時,在資料傳輸上大約會有下列圖解 3 種情境:
- Memcpy: 當 VM 虛擬主機之間在「同一台」ESXi Host 時。
- RDMA: 當 VM 虛擬主機之間跨越「不同台」ESXi Host 時。
- TCP: 當 VM 虛擬主機之間跨越「不同台」ESXi Host,且其中一台 ESXi Host 未安裝支援 RDMA 介面卡時。
圖、vRDMA 資料傳輸情境
支援 iSER
在新版 vSphere 6.7 運作環境中,除了全面支援 RDMA (InfiniBand / iWARP / RoCE) 之外,還新增支援 iSER (iSCSI Extension for RDMA) 機制。簡單來說,透過整合 RDMA 的 iSER 機制,可以讓 iSCSI 傳輸作業從傳統的 TCP Transport Protocol 改為 RDMA Transport,進而降低 ESXi Host 的 CPU 工作負載,同時還能支援全面的 iSCSI 管理功能,例如,Discovery、Naming、Security、Error-Recovery、Boot……等。
圖、iSER 運作架構示意圖
圖、iSER 將的建立 2 個邏輯裝置 (vmnic / vmrdma)
vSAN 6.7 是否支援 RDMA?
雖然,在新版 vSphere 6.7 運作環境中已經全面支援 RDMA。但是,在 VMware vSAN 6.7 Release Notes 當中,並沒有看任何支援 RDMA 技術的相關說明? 下一版將開始支援,詳細資訊請參考 VMworld US 2018 - HCI2476BU - Tech Preview: RDMA and Next-Gen Storage Technologies for vSAN。參考資源
- Introducing vSphere 6.7 for Enterprise Applications - VMware vSphere Blog
- What’s new with vSphere 6.7 Core Storage - Virtual Blocks
- VMware vSAN 6.7 Release Notes
- vSphere 6.7 Core Storage - RDMA support in vSphere
- vSphere 6.7 Core Storage - iSER (iSCSI Extensions for RDMA) support in vSphere