基于智能网卡的快速数据交换传输技术研究

发表时间:2021/4/12   来源:《科学与技术》2020年36期   作者:马彦强
[导读] 作为人类最伟大的发明技术之一,互联网的发展以及应用对
        马彦强
        南京中兴软件有限责任公司  江苏南京  210000
        摘 要:作为人类最伟大的发明技术之一,互联网的发展以及应用对我国居民的日常生活、工作生产产生了重大影响,对各行各业的产业升级和高效运行进行了有效赋能。网络虚拟化是互联网的重要基础技术之一,其承担了用户数据的快速转发和传输。本文就网络虚拟化领域中,虚拟交换机技术进行分析比较和讨论,研究分析基于FPGA实现的智能网卡技术在网络虚拟化领域中的应用价值和前景。
        关键词:智能网卡;网络虚拟化;交换传输技术;FPGA
        一、概述
        网络虚拟化中,虚拟交换机为虚拟机等提供了高灵活性、低成本的数据交换传输通道。然而基于不同的技术实现的虚拟交换机性能有着较大的差距。
        虚拟交换机可以抽象为下图模型框架。其主要分为控制组件和转发组件。转发组件提供数据的转发和传输处理,控制组件负责对转发组件的管理控制,包括转发组件对数据的转发规则的制定和下发等。接下来我们对比分析一下几种常见虚拟交换机的转发技术差异和性能差异。
        
        OVS是其中极具代表性的一套软件系统,转发组件驻留于LINUX系统内核中,依照控制组件下发的转发规则,对数据报文进行转发处理。随着数据量需求的增长,由于内核协议栈的的复杂性和数据传输多环节数据复制,OVS越来越不能满足性能需求。
        DPDK技术应运而生,基于网卡技术和CPU技术的支撑,采用DPDK用户态驱动,OVS+DPDK在用户空间实现了转发组件,提供了更高带宽的转发能力,极大的满足了市场需求。然而,DPDK的原理决定了在控制组件之外,转发组件必须占用某些CPU核进行轮询处理。一方面,服务器的计算资源宝贵,有强烈的需求希望减少虚拟交换机对于CPU资源的占用;另一方面,分配到有限的CPU资源,OVS+DPDK的转发能力受到限制,跟不上用户对带宽的持续增长需求。
        需求推动创新,智能网卡走进虚拟交换技术的领域,最具代表性的是基于FPGA实现的智能网卡。相比于CPU擅长处理逻辑运算,FPGA更擅长处理逻辑相对简单、性能要求高的处理。FPGA功耗低,性能好,因此是实现高性能虚拟交换机的理想选择之一。
        二、FPGA智能网卡原理
(一)FPGA结构和特点
        FPGA,全称为可编程门阵列(Filed Programmable Gate Array),内部有众多功能模块和资源,主要有:可编程输入输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入块式RAM、丰富的布线资源、内嵌的底层功能单元和内嵌专用硬件模块。
        特点:
        开发周期短。相比于ASIC,FPGA可以更加快速的开发实现专用功能芯片。FPGA可以编程来实现定制化的FPGA功能,化身为不同的ASIC功能实体,相比于专用于ASIC芯片,开发周期大大缩短。
        功耗低。FPGA采用高速CMOS工艺,功耗低。
        性能好。CPU属于冯诺依曼结构,需要指令的存取、译码、执行等来执行用户的指令意图,难以实现专用的指令流,加之通用CPU上运行的操作系统机制复杂,很难保证高性能数据处理和转发,而FPGA在程序烧结时就决定了逻辑单元功能,不需要指令执行相关机制,是电路级的指令流。缓存方面,各控制单元有属于自己的寄存器和片上内存,不需要不必要的仲裁和缓存。同时,FPGA中各逻辑单元间的连接关系在烧结时也确定了,通信更加高效。
(二)FPGA智能网卡实现虚拟交换机原理
        逻辑框图如下。
        CPU和FPGA通过PCIe总线互联。CPU上运行的控制程序通过PCIe总线对FPGA进行配置和控制,包括:设备的驱动、版本的加载、流规则的下发、部分报文的转交、FPGA状态的监控等;FPGA运行于烧结确定的运行逻辑之下,查找CPU下发的转发表等,对报文进行收发、解析、封装等处理;虚拟机与FPGA间通过virtio队列高效交换数据,不需要CPU参与,提高了网络性能。
        
        三、FPGA智能网卡性能优势
(一)性能对比方案
        在同一规格服务器上,启动相同规格相同数量的虚拟机,测试仪与服务器网口直连,数据流由测试仪发出,到达虚拟机后折返,回到测试仪。分别测试OVS、OVS+DPDK、智能网卡的转发性能。对比吞吐量。
(二)性能数据及分析
        出于对商用产品的信息保护,我们省去列举服务器详细参数,由于实验基于同一台服务器,所以对三种产品的测试数据相对比较,是可以说明技术间的优劣的。
        1、对于常见长度报文(1500字节左右)测试,OVS、OVS+DPDK(2核用于转发)、智能网卡的双向吞吐量分别约为30万pps、300万pps、900万pps。
        2、智能网卡时延明显低于OVS+DPDK,约为20-30%。
        3、数据包较短时,CPU实现虚拟交换机转发的方案性能下降明显,智能网卡只有略微下降。
        4、流规则数量大量增长时,CPU实现虚拟交换机转发的方案性能下降明显,智能网卡基本保持不变。
       可见,FPGA实现的智能网卡,由于文中所述的特点和优势,在报文收发、处理、查表中有明显的技术优势,最终的虚拟交换机产品在吞吐量、延时、稳定性方面具有更强的竞争力,值得关注和研究。
         
        结束语:随着业界对性能需求和功能需求的多样化,专用硬件辅助实现特有功能将是常见的方案(比如本文所研究的FPGA智能网卡实现虚拟交换技术)。而FPGA是其中一个重要组成部分,值得我们深入思考和研究。比如,本文研究的是CPU和FPGA两种处理器搭配实现虚拟交换机,将来是否可以研发CPU和FPGA一体的处理器呢?基于此处理器的虚拟交换机产品是否有更加亮眼的表现?一切皆有可能。

        
        
        
 
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: