探索中国CIO人才现状 | 第四季调研报告
VMware半虚拟化RDMA(vRDMA)方案介绍
2013-03-25  作者:企业网 

  介绍


  RDMA(remotedirectmemoryaccess)中文全称远程内存直接访问技术,具有高带宽、低延迟、零拷贝、操作系统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,这种方案底层采用聚合以太网络(ConvergedEthernet),VMM/Hypervisor为虚拟机提供的是一个全仿真的RDMA虚拟设备。


  第一种和第二种解决方案性能最好;由于RDMA物理设备通过透传方式分配给虚拟机,是的VMM/Hypervisor很多软件功能特性无法支持。比如:虚拟机在线迁移、虚拟机快照、虚拟机高可用等等。第三种是软件仿真方式,VMM/Hypervisor性能开销大,而且虚拟机实际复杂。


  如何既能为虚拟机提供较好的RDMA性能,同时又能保证跟现有VMM/Hypervisor软件功能特性兼容?VMware提出vRDMA方案。vRDMA借鉴网络I/O半虚拟化方案思想,为虚拟机提供半虚拟化RDMA支持。


  vRDMAovervSphereVMCI


  VMCI(VirtualMachineCommunicationInterface)是VMwarevSphere半虚拟化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架构示意图如下:


  vRDMA主要组成部分


  vRDMA为虚拟机提供一个整体半虚拟机RDMA解决方案。主要包括以下主要部分


  Libvrdma&Libibverbs


  Libvrdma和libibverbs是虚拟机使用的RDMA用户态库文件,可供应用程序直接调用。libibverbs是libvrdma的软连接,用户程序通过libibverbs访问libvrdma。


  虚拟机内核vRDMA驱动


  基于ibverb实现的虚拟机RDMA驱动。虚拟机应用程序RMDA请求通过该驱动转化为与ibverb兼容的调用请求。


  ESXi/ESXRDMA协议栈


  位于VMkernel,基于OFED驱动。负责物理RDMA设备管理,并为vMotion和FT提供RDMA设备访问支持。


  vRDMAVMCI


  vRDMAVMCI负责虚拟机RDMA请求接受和处理,并负责与RDMA协议栈通信。


  vRDMA数据通信过程


  vRDMA数据通信过程主要分两大类:一种同一台ESX/ESXI主机的虚拟机通信;另外一种是不同ESX/ESXi主机的虚拟机通信。vRDMAVMCI通过LID与QP号确认通信双方是否位于同一台ESX/ESXi主机。如果是,所有数据交互都直接通过vRDMAVMCI在内存里面完成;如果不是,vRDMAVMCI需要将请求先转发给ESX/ESXiRDMA协议栈。vRDMAVMCI提供缓存功能,部分后续通信数据可以直接由vRDMAVMCI从缓存取得并返回为虚拟机。


  vRDMA性能和功能特性


  根据测试,虚拟机vRDMA的half-roundtrip延迟在5微妙左右,低于SoftRoCE而高于PCI-Passthrough方式。


  vRDMA其他软件功能特性有:


  ·同一台ESX/ESXi主机的虚拟机可以在没有物理RDMA设备情况下进行RDMA通信。


  ·支持虚拟机快照和虚拟机在线迁移。


  ·SubnetManagement(SM)


  参考


  ·TowardaParavirtualvRDMADeviceforVMwareESXiGuests


  应用于


  ·VMwarevSphere