数据中心承载的网络转发数据量越来越大,构建高性能网络势在必行。过去,我们专注于软件定义网络技术的普及、100G/400G单口带宽的提升等新技术,而忽略了性能。网络的性能与每一个环节都息息相关。它不能简单地通过将网络出口从10G更改为40G或100G来更改。从流量接入到应用软件处理都需要改进。最大的瓶颈在哪里?从事过网络技术工作的人都知道,对于交换机来说,其上的端口能够进行线速转发是基本要求,但是对于服务器来说就很难了。一台1G网卡的服务器最大可以处理800M的流量。挺好的,这是因为服务器需要对接收到的数据流量进行分析(交换机往往做三层分析就够了,而且是专门的芯片完成的,不占用CPU资源),以及每一个的内容message必须解析出来,然后提供给应用层软件,如图1:图1:RDMA和TCP/IP技术对比图图1右边是经典的TCP/IP协议,是网络唯一数据中心内部数据传输网络使用的协议。一共有五层,其中蓝色标记代表硬件部分,红色标记代表系统软件部分,绿色标记代表应用软件部分。在TCP/IP的网络世界中,服务器网卡收到一条数据报文,要经过网络层和传输层,然后发送到应用层。网络层和传输层消耗CPU资源,CPU查询内存地址,校验CRC,还原TCP包给应用,占用CPU缓存,单位时间内进来的包越多,消耗CPU资源越多,CPU除了处理数据包外还要运行其他应用程序,CPU运行并不是完全顺畅的,CPU水平的波动也会影响处理数据包的速度,从而影响网络传输性能。左边是RDMA技术。突破点是将网络层和传输层放在硬件中,在服务器的网卡上实现。数据包进入网卡后,在网卡硬件上完成四层解析,直接发给Application层软件,四层解析CPU不需要介入,这就是RDMA能够带来的根本原因低延迟、高带宽和低CPU占用率,这也是RDMA技术的魅力所在。采用RDMA技术,可以大大提高网卡的带宽利用率。具有1G网卡的服务器可以使用RDMA技术以接近1G的速度处理数据。服务器可以提供几乎100%的CPU资源用于计算,减少CPU在网络协议处理中的占用,服务器可以利用这些CPU资源做更多的计算或者提供其他服务,相当于增加了虚拟机的数量,节省服务器资源。RDMA技术的全称叫做RemoteDirectMemoryAccess,即远程直接数据访问,是为了解决服务器端数据处理在网络传输中的延迟而产生的。RDMA通过网卡将数据直接传输到服务器的存储区,对操作系统没有任何影响,省去了外存拷贝和文本交换操作,解放了内存带宽和CPU资源。当应用程序执行RDMA读取或写入请求时,不会执行数据复制。RDMA请求从用户空间中运行的应用程序发送到本地NIC,然后通过网络传输到远程服务器NIC,而不涉及内核内存。RDMA最初专用于Infiniband架构。随着网络融合大趋势下RoCE(RDMAoverConvergedEthernet)和iWARP(RDMAoverTCP/IP)的出现,这使得RDMA具有高速、超低延迟和极低的CPU占用率。它可以部署在当今使用最广泛的数据中心网络上。这三种技术均在网络设备侧实现,用于适配支持RDMA的网卡,识别并转发RDMA报文。InfiniBand采用Cut-Through转发方式减少转发时延,基于Credit流控机制,保证不丢包。RoCE性能与IB网络相当,DCB特性保证不丢包。网络需要支持DCB特性,但延迟比IB交换机略高。iWARP使用了成熟的IP网络,继承了RDMA的优点,但是如果使用传统的IP网络,丢包会对性能造成很大的影响。图2列出了三种技术的对比:图2:三种RDMA技术的对比从图2可以看出,IB是低延迟网络交换机的专有技术,一般延迟可以达到140ns。3μs,比普通网络设备的延迟低了一个数量级,但价格极其昂贵,一般是普通网络设备的五到十倍,只有在金融和期货交易环境中才会考虑。毕竟在技术上都是采用的,成本太高了。为了降低应用成本,IB组织在IB协议的基础上增加了适用于以太网的协议:RoCE和iWARP。这两类协议可用于通过普通以太网硬件组成网络。iWARP技术的主要问题是稳定性。一旦网络出现丢包,性能就会极差。然而,iWARP是基于以太网协议实现的。以太网协议不可能不丢包,这使得iWARP技术没有应用空间。IB性能最好,RoCE应用最广。RoCE随着RDMA技术一起普及。与IB技术相比,RoCE技术仍然是基于以太网,但是增加了丢包控制机制,保证以太网处于不丢包的状态,虽然延迟比IB差,但是部署成本要低很多,而在这样的网络中,RDMA是主角。RDMA通过服务器网卡实现,网络设备只需要通过RoCE技术实现即可,关键是靠RDMA来降低延迟。随着人工智能和5G网络的兴起,“唤醒万物、连接万物”的时代已经到来。计算需求的爆发式增长无疑对数据中心网络提出了更严苛的要求,需要更多高性能的数据中心。RDMA技术作为一种先进的网络数据传输方式,备受关注。与传统网络相比,RDMA可以显着提高应用效率,提供高性能的网络传输。RDMA这么好,怎么还没普及呢?它仍然只用于HPC中的某些应用程序,主要是因为价格因素。如今,已经出现了像RoCE这样的以太网兼容技术。相信在数据中心网络领域,RDMA会真正开花结果。尤其是在存储领域,IP存储看中了RDMA,现在很多互联网公司都开始考虑在存储网络中部署RDMA,然后慢慢向其他网络部分延伸。
