数据中心承载的网络转发数据量越来越大,建设高性能网络势在必行。以往我们将目光都集中在了软件定义网络技术的普及、100G/400G单端口带宽的提升等方面的新技术,而忽略了性能。一个网络的性能高低与每个环节都休戚相关,并不是简单地将网络出口由10G换成40G或100G就能改变的,从流量访问一直到应用软件的处理都需要提升,***的瓶颈在哪里?
搞过网络技术的人都知道,对于一个交换机,其上的端口能做线速转发是基本要求,但对于服务器来说就很困难,一个1G网卡的服务器,处理流量能达到800M就相当不错了,这是因为服务器收到数据流量还要解析(交换机往往做三层解析就足够,而且是由专门芯片来完成,不消耗CPU资源),将每个报文的内容都要解析出来,然后提供给应用层软件,例如图1:
图1:RDMA与TCP/IP技术对比图
图1中右侧是经典的TCP/IP协议,是数据中心内部数据传输网络使用的唯一网络协议,分为五层,其中蓝色标记的代表硬件部分,红色标记的代表是系统软件部分,绿色标记的代表是应用软件部分。在TCP/IP的网络世界里,一个服务器网卡接收到一个数据报文,要经过网络层和传输层,再送给应用层,网络和传输层就要消耗CPU资源,由CPU来查询内存地址,检验CRC,还原TCP包到应用,占用CPU缓存,单位时间内进来的报文数量越多,消耗CPU的资源就越多,CPU除了处理数据报文还要运行其它的应用,CPU并不是完全平稳运行的,CPU的高低波动也会影响处理报文的速度,从而影响网络传输性能。
左侧是RDMA技术,***的突破是将网络层和传输层放到了硬件中,服务器的网卡上来实现,数据报文进入网卡后,在网卡硬件上就完成四层解析,直接上送到应用层软件,四层解析CPU无需干预,这就是RDMA能带来低延时、高带宽和低CPU利用率的根本原因,也是RDMA技术的吸引人之处。利用RDMA技术,可以将网卡的带宽利用率大幅提升,一个拥有1G网卡的服务器,使用RDMA技术,应用软件处理的数据速度就可以接近1G。服务器可以将几乎100%的CPU 资源都提供给计算,降低了CPU 在网络协议处理中的占用率,服务器可以利用这些CPU 资源来做更多计算或提供其他的服务,相当于增加了虚拟机数量,节省了服务器资源。
RDMA技术的全称叫做Remote Direct Memory Access,即远程直接数据存取,就是为解决网络传输中服务器端数据处理的延迟而产生的。RDMA通过网卡将数据直接传入服务器的存储区,不对操作系统造成任何影响,消除了外部存储器复制和文本交换操作,解放内存带宽和CPU资源。当一个应用执行RDMA读或写请求时,不执行任何数据复制。
在不需要任何内核内存参与的条件下,RDMA请求从运行在用户空间中的应用中发送到本地网卡,然后经过网络传送到远程服务器网卡。RDMA最早专属于Infiniband架构,随着在网络融合大趋势下出现了RoCE(RDMA over Converged Ethernet)和iWARP(RDMA over TCP/IP) ,这使高速、超低延时、极低CPU使用率的RDMA得以部署在目前使用最广泛的数据中心网络上。三种技术都是在网络设备侧实现,用来和支持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,然后慢慢向其它网络部分延伸。