VMware半虚拟化RDMA(vRDMA)方案介绍
EMC中文支持论坛 发表于:13年03月25日 00:28 [转载] DOIT.com.cn
介绍
RDMA(remote direct memory access)中文全称远程内存直接访问技术,具有高带宽、低延迟、零拷贝、操作系统bypass和cpu卸载功能。RDMA实现需要特定硬件支持,主要有三种:Infiniband、iWARP和RoCE。RDMA技术常应用于高性能计算(HPC)、集群数据库、金融系统、分布式环境和大数据。
本文主要介绍VMware虚拟化环境RDMA解决方案,主要内容包括虚拟化RDMA实现方式、vSphere基于VMCI的vRDMA、vRDMA主要组成部分、vRDMA性能和功能特性。
虚拟化RDMA实现方式
RDMA是在网络I/O虚拟化非常完善之后提供一项新的虚拟化I/O方案。虚拟化RDMA实现方式主要有三种:第一种是VMM/Hypervisor通过PCI-Passtrough技术将RDMA物理设备透传给虚拟机,该方式可以让虚拟机RDMA获得最佳性能,但是RDMA物理设备只能被一台虚拟机独自占用;第二种就是基于SR-IOV的PCI-Passthrough,RDMA物理设备支持SR-IOV,VMM/Hypervisor为每个虚拟机分配一个VF,该方式可以让多台虚拟机共享一个RDMA物理设备,虚拟机性能基本等价于RDMA物理设备。 第三种是SoftRoCE,这种方案底层采用聚合以太网络(Converged Ethernet),VMM/Hypervisor为虚拟机提供的是一个全仿真的RDMA虚拟设备。
第一种和第二种解决方案性能最好;由于RDMA物理设备通过透传方式分配给虚拟机,是的VMM/Hypervisor很多软件功能特性无法支持。比如:虚拟机在线迁移、虚拟机快照、虚拟机高可用等等。第三种是软件仿真方式,VMM/Hypervisor性能开销大,而且虚拟机实际复杂。
如何既能为虚拟机提供较好的RDMA性能,同时又能保证跟现有VMM/Hypervisor软件功能特性兼容?VMware提出vRDMA方案。vRDMA借鉴网络I/O半虚拟化方案思想,为虚拟机提供半虚拟化RDMA支持。
vRDMA over vSphere VMCI
VMCI(Virtual Machine Communication Interface)是VMware vSphere半虚拟化I/O解决方案框架。VMCI框架有两部分组成,一部分位于VMM/Hypervisor,另外一部分位于虚拟机(虚拟机需要安装VMCI驱动特能支持)。VMCI实现基于TCP的Socket(主要有伯克利Socket和微软Winsock两种)。VMCI数据通信都直接通过内存访问实现。
vRDMA基于VMCI实现,主要包括两部分:一部分位于虚拟机,另外一部分位于VMkernel(VMware虚拟化的VMM/Hypervisor)。VMCI为虚拟机提供RDMA虚拟机设备,虚拟机通过安装vRDMA驱动与VMkernel通信。vRDMA位于VMkernel部分负责虚拟机RDMA请求转发处理和物理RDMA设备管理。
vRDMA架构示意图如下: