论文部分内容阅读
网络I/O一直是分布式应用的瓶颈。为此,相关研究者提出高速网络RDMA(Remote Direct Memory Access)技术。RDMA具有卸载TCP/IP协议栈和用户态下处理数据传输的工作方式,它首先在高性能计算领域得到广泛应用。随着其硬件价格的降低和RDMA over Ethernet的出现,数据中心也将RDMA引入。它的低延迟、高带宽、CPU轻负荷的特点,为许多传统分布式应用的设计提供了新思路,也对新兴的大数据处理、云计算服务等起到性能保障。现有的利用RDMA技术加速分布式系统的工作都是将RDMA网络模块与整个系统紧耦合。系统设计者通常以一个高速网络模块的角度来使用RDMA,试图来解决跨节点间的数据传输瓶颈。当将这些系统部署到数据中心或者云计算环境下,就会产生资源浪费、恶性竞争、较差的数据本地性、可扩展性不够等问题。此外,将RDMA网络模块与特定系统紧耦合这种方式,不但增加系统设计者的负担,还在系统维护成本、软件复用、大规模部署等方面有所损害。基于上述原因,我们设计并实现一个提供RDMA高速网络的通用平台RDMAVisor,以守护进程的方式存在,向应用程序提供简单易用的接口来调用RDMA高速网络服务。分布式应用设计者通过这些接口,来获得类似于系统服务一样的RDMA高速网络数据传输服务,从而能够专心于应用逻辑的设计和实现。本文的主要贡献有以下4点:(1)设计并实现面向数据中心的RDMA网络服务通用平台RDMAVisor;(2)对RDMA中各种服务类型和操作进行分析,以自适应调节参数的方式,为各种类型的分布式应用提供用户态下的数据传输服务;(3)通过复用RDMA连接实体,减轻甚至解决了RDMA的可扩展性问题;(4)针对RDMA原生操作如RDMA Remote Atomic的不足,RDMAVisor在守护进程层级向用户提供Remote Atomic操作,以更高效的方式替换掉RDMA原生操作。