RDMA背景介绍:
什么是RDMA?
RDMA全称remote direct memory access。大家都知道DMA用来将让CPU从数据拷贝过程中解放,让更多的CPU资源用于计算。RDMA目的和DMA一样,RDMA作用于两台计算机之间的网络数据传输,DMA主要作用计算机内存和IO外设之间的数据传输。
RDMA有什么优势?
延迟低
参考上图,传统TCP/IP数据传输方式需要经过大量协议层,RDMA通过Kernel Bypass方式可以避免那些开销。市场上在售的Mellanox CX3 PCIe3 FDR HCA延迟小于1ms。
高带宽
经过测试,Mellanox CX3 PCIe3 FDR HCA 带宽可以超过50Gbps。
低CPU使用率
由于RDMA减少大量内核协议处理工作,数据实现零拷贝,因此计算机CPU使用率可以大大减少。
RDMA可用方案:
基于以太网(iWARP)
基于聚合网 (RDMA over Converged Network)
基于Infiniband (RDMA over infiniband)
RDMA常见应用场景:
RDMA常见使用场景包括:HPC高性能计算,集群数据库(IBM DB2 pureScale和Oracle ExaData/RAC),分布式文件系统(IBM GPFS和Lustre和Red Hat Storage Gluster),分布式Cache(Dell RNA),金融领域和大数据(Hadoop:Mellanox加速器)
vSphere可选 RDMA方案:
全功能模式DirectPath I/O passthrough
SR-IOV VF模式的DirectPath I/O passthrough
半虚拟化的RDMA HCA(vRDMA)
前两种方案现在已经可用,第三种方案还在开发中。
vMotion与RDMA:
vMotion是vSphere专门提供用于虚拟机在线迁移的功能,现有方案基于TCP/IP协议。由于虚拟机迁移最大的问题是需要在两台ESX/ESXi服务器之间同步虚拟机的内存,因此当虚拟机内存很大, 而且业务很繁忙时,虚拟机在线迁移会对ESX/ESXi服务器性能产生严重挑战。如果vMotion基于RDMA,可以在迁移过程实现数据零拷贝、低延迟、消除内核中TCP/IP的协议开销。
测试项目
SPECjbb2005 50GB workload
测试环境
Two HP ProLiant ML 350 G6 machines, 2x Intel Xeon (E5520, E5620), HT enabled, 60 GB RAM
Mellanox 40GbE RoCE cards •ConnectX-2 VPI PCIe 2.0 x8, 5.0 GT/s
56 GB, 4 vCPU Linux VM
测试结果
通过测试可以发现,基于RDMA在线迁移对比TCP/IP可以节省36%时间,带宽性能提升30%,迁移过程中源ESX服务器CPU使用率下降92%,目的ESX服务器CPU使用率下降84%。