导读
在数据不断增长的时代,数据的快速处理对信息的有效利用至关重要。目前数据中心无论对存储读写带宽还是延迟都有极致的要求,例如在线搜索、移动、游戏,视频直播领域都需要以非常快的速度响应用户的请求,数据中心内任何一环导致延迟,都会对用户体验产生极大的影响。
在高性能计算领域,RDMA技术很早就已经得到了验证,并且进行了一定范围的应用。随着大数据与人工智能的高速发展,RDMA技术也将在企业内得到推广。
走进RDMA世界
在TCP的网络世界里,收到一个网络数据包,要经过网络层和传输层,最后才能够被应用层处理。网络层和传输层会消耗CPU资源,由于CPU还要处理其他的计算任务,这一方面使得网络传输性能收到影响,同时也会影响其它计算任务的性能。此外,在进行传统的TCP协议处理时,所有的数据都需要在用户缓冲区与内核缓冲区之间进行多次复制,需要消耗极大的内存带宽,同时带来一定的延时。
RDMA技术就是为了降低网络传输中服务器端数据处理的延迟而产生的。服务器网卡收到一个数据包,在网卡硬件上就可以完成网络层和传输层的解析,直接把数据传递给应用层,不需要CPU的干预,从而释放内存带宽并减少CPU消耗,进而提升应用系统性能。
为了有效利用RDMA技术的高带宽和低延迟优势,焱融云存储团队调研了支持RDMA技术的三种不同的网络协议:
-
Infiniband(IB): 使用RMDA专用网卡与交换机,从硬件级别全面支持RDMA,保证传输可靠性
-
RDMA OVER Converged Ethernet(RoCE):基于现有的以太网实现RDMA,底层网络包头部是普通的以太网包头,上层网络包头部是Infiniband包头,因此RoCE只需要专有的支持RoCE网卡,就可以在标准以太网基础架构(交换机)上实现RDMA
-
Internet Wide Area RDMA Protocol(iWARP): iWARP直接将RDMA实现在了TCP上,这允许在标准以太网基础架构(交换机)上使用RDMA,这种方案需要配置支持iWARP的特殊网卡
对比三种协议实现,Infiniband性能最好,但需要额外配置较多的专用设备,系统整体升级成本较高;RoCE只需要替换专用的网卡设备,在获取性能优势的同时,将成本控制在一定范围;iWARP成本最低,但与TCP臃肿的协议栈相关联,性能上提升有限。
焱融云分布式存储完美支持RDMA
要实现支持RDMA网络的通信方式,需要使用RDMA verbs API(OFED 提供了包含libibverbs和RDMA-CM等用户态库函数)编程,对原有的通信模块进行改进,最终实现的网络传输模块既能兼容最初的TCP通信方式,又可以同时向客户端提供RDMA连接服务。
焱融云技术团队在焱融高性能分布式存储里实现了RDMA传输的功能,支持通过InfiniBand,RoCE或TCP来实现客户端到存储服务端的数据交互,以及存储集群服务器之间的数据传输。
性能大幅提升
在性能上,我们采用Mellanox connect-X系列网卡以及Mellanox交换机基于以太网物理链路测试了RoCE的性能。从测试结果来看,相对于TCP/IP通讯协议, 小文件读写性能有了质的提升。可以看到,基于RDMA技术的读写性能比基于普通交换机TCP传输的性能最高可提升4倍。尤其是在小数据包的读写上,其性能优势更为明显。
以上数据是基于RoCE方式实现的RDMA传输,如果使用专用的InfiniBand设备,其性能还会进一步提升。有了RDMA这个利器,焱融云分布式存储在高性能计算、AI人工智能等领域将更具优势,满足用户在这些业务中对性能的更高要求。
在一个又一个的技术挑战面前,在追求卓越的道路上,焱融云从未止步。