vRDMA主要组成部分
EMC中文支持论坛 发表于:13年03月25日 00:28 [转载] DOIT.com.cn
vRDMA主要组成部分
vRDMA为虚拟机提供一个整体半虚拟机RDMA解决方案。主要包括以下主要部分
Libvrdma & Libibverbs
Libvrdma和libibverbs是虚拟机使用的RDMA用户态库文件,可供应用程序直接调用。libibverbs是libvrdma的软连接,用户程序通过libibverbs访问libvrdma。
虚拟机内核vRDMA驱动
基于ib verb实现的虚拟机RDMA驱动。虚拟机应用程序RMDA请求通过该驱动转化为与ib verb兼容的调用请求。
ESXi/ESX RDMA协议栈
位于VMkernel,基于OFED驱动。负责物理RDMA设备管理,并为vMotion和FT提供RDMA设备访问支持。
vRDMA VMCI
vRDMAVMCI负责虚拟机RDMA请求接受和处理,并负责与RDMA协议栈通信。
vRDMA数据通信过程
vRDMA数据通信过程主要分两大类:一种同一台ESX/ESXI主机的虚拟机通信;另外一种是不同ESX/ESXi主机的虚拟机通信。vRDMAVMCI通过LID与QP号确认通信双方是否位于同一台ESX/ESXi主机。如果是,所有数据交互都直接通过vRDMA VMCI在内存里面完成;如果不是,vRDMA VMCI需要将请求先转发给ESX/ESXi RDMA协议栈。vRDMAVMCI提供缓存功能,部分后续通信数据可以直接由vRDMAVMCI从缓存取得并返回为虚拟机。
vRDMA性能和功能特性
根据测试,虚拟机vRDMA的half-roundtrip延迟在5微妙左右,低于SoftRoCE而高于PCI-Passthrough方式。
vRDMA其他软件功能特性有:
· 同一台ESX/ESXi主机的虚拟机可以在没有物理RDMA设备情况下进行RDMA通信。
· 支持虚拟机快照和虚拟机在线迁移。
· Subnet Management(SM)
参考
· Toward a Paravirtual vRDMA Device for VMware ESXiGuests
应用于
· VMware vSphere