《使用SDNet开发创新型可编程网络.docx》由会员分享,可在线阅读,更多相关《使用SDNet开发创新型可编程网络.docx(6页珍藏版)》请在第一文库网上搜索。
1、使用SDNet开发创新型可编程网络1agopusFPGA可最大化电信和云服务的邺/NFV功能。日本电报电话公司(NTT)是一家全球电信集团控股公司,负责制定管理策略和推动研发工作发展。我们是NTT研发部的研究人员,正领导两个针对软件定义网络(SDN)和网络功能虚拟化(NFV)的创新型项目。针对其中的一个项目,我们已经开发出一个名为1agopus的高性能软件SDN/OpenF1ow交换机1,我们认为这是迄今为止作为开源软件发布的OpenF1ow1.3兼容交换机中的佼佼者。针对第二个项目,我们开发出一个具有软件包处理感知功能的40GbpsFPGA网络接口卡(NIC)1agopusFPGA0早期阶段
2、采用赛显思面向网络的SDNet软件定义规范环境,是我们能够成功开发这些技术的关键所在。在本文中我们将介绍如何使用SDNet满足我们的项目目标。实现SDN/NFV卓越性能的1AGOPUSFPGA云服务供应商和网络服务运营商正在转向采用SDN,将其作为自动配置系统的关键支持技术。NFV通过将网络系统从专有硬性设备转变为商用硬件系统,充分运用PC服务器、基于商用甚柱的交换机和软件工具,在帮助电信运营商降低资本支出和运营支出方面起着至关重要的作用。许多云服务提供商和电信运营商将为其新一代商用网络部署SDN和NFV0NTT集团是商业服务和研发领域的SDN和NFV领跑者。在日本总务省的自助下,NTT已经启
3、动一项与先进SDN/NFV相关的研究工作03项目。1agopus是03项目的主要可交付成果,其结合使用开放网络基金会(OPenNetworkingFOUndatiOn)的OPenFIow1.3协议、商用英特尔x86服务器和商用NIC,可实现高性能软件包处理和灵活的流程控制。1agopus的主要优势有:能在商用服务器上实现超过IOGbps的高性能软件包处理、高达百万流量输入的弹性网络流控制、针对虚拟提供商边缘(vPE)/虚拟客户端设备(vCPE)/虚拟演进分组核心网(vEPC)框架的可扩展流程分配器。1agopusFPGA项目旨在通过在运行于商用服务器上的FPGA上灵活地对软件加速和硬件加速功能
4、进行分区,实现40100Gbps的高性能包处理。图1显示了1agopusFPGA的概念和架构。这种灵活的架构能借助FPGA加速并以纯软件实现方式将1agopus交换机的IOGpbs线速提高到40Gbps线速。这一性能提升的代价仅仅是x86CPU的功耗增大不到10%o该架构还能极大地增强我们的网络故障排除能力,这对真正虚拟化的网络有实质性意义。软件(X86CPU)NFV应用SDn交换机IdgOC数据层面(FPGA)DPDKPMD,IA40GH40G网络图11agopusFPGA的概念和架构目前,我们正在使用先进的FPGA和设计工具联合为1agopus和网络运营商的原始硬件知识产权(IP)设计一种
5、先进的软件可缄程数据层面,其目的不仅是获得更高的系统性能,也是为降低功耗和成本。通过与赛灵思团队合作,我们已经在基于赛灵思Virtex?-7A11Programmab1eFPGA的80GbpsN1C演示板上成功集成了1agopus和我们的IP。25年2月,我们在东京举办的NTT2015年研发迨坛上首次演示了1agopusFPGAo同年8月,我们还在加州库比蒂诺举办的HotChips27大会上展示了我们的卓越成功。我们使用SDNet开发环境创建1agopusFPGA系统。这种新颖的动态可重编程数据层面包处理工具链让我们能够在不影响性能的情况下,把数据包分类、编辑、搜索、负载均衡和统计测量等高强度
6、数据层面运算转交给FPGANIC处理(均在10/40/10OGbE千兆位级以太网线速下实现位为1agOPUS和NFV应用提速。我们认为这是我们项目的最佳解决方案,可增强SDN/NFV技术的关键组成部分一一分类IP的功能。该环境的快速可重配置包流水线功能让我们能够迅速方便地更新网络协议和功能。SDNet环境涵盖叁境数据中心和广域网中丰富多样的用例,从而扩大了1agopusFPGA的使用潜力。对NTT而言,这种灵活、软件定义硬件设计技术能实现差异化网络业务的灵活部署。SDNet扩大了1agopusFPGA的使用潜力:这种灵活的软件定义硬件设计技术能实现差异化网络业务的灵活部署。SDNet环境奠定设
7、计基础随着新兴市场上SDN/NFV技术竞争日趋激烈,1agopusFPGA项目的一大设计挑战是在紧凑的开发期内完成开发,以如期进行部署和推广。我们从2014年10月开始设计1agopusFPGA系统,三个月后,即在2015年1月完成首次集成。鉴于该系统设计的复杂性,这是一项了不起的成就。图1所示是1agopusFPGA系统的顶层架构,它由包含软件FPGAIP包在内的四个技术软件层组成:(1)NFV应用;(2)1agopus软件交换机;(3)硬件抽象层,例如应用编程接口(API),英特尔数据面开发套件(DPDK)、一组用于x86快速包处理的库和驱动程序;以及(4)FPGANICIP内核套件。该多
8、重技术软件层会增大追踪问题根源的难度,如丢包和性能降低,削弱调试和立即隔离故障的能力。实际上这也是所有SDN/NFV架构的重大难题。为克服这些难题,我们采用了SDNet环境和赛灵思ViV皿O?DesignSuiteo我们在启动1agopusFPGA的设计工作时,先确定我们对包处理功能的要求,并且制定出一个开发流程。图2是这一开发流程的一般性介绍和SDNet规范的示例代码段。我们决定创建一个完美匹配的滤波器。该过滤器采用来自虚拟1AN的关键信息。借助这个过滤器,我们可以把硬件分类功能卸载到FPGANIC,在x86上为1agopus的软件数据层面提速。我们可使用1agopus和SDN控制器之间的O
9、DenF1oW协议注入流程项,进而通过DPDK流程指示器API配置滤波器项。c1ass:Tup1eoutstructDST_MAC:48,SRC_MAC:48,V1ANJD:16,ETH_TYPE:1612KEY;JassV1AN:Section2methodupdate=12KEY.V1ANJD=v1anmethodincrement_offset=size)$PPP-PXFnec1ass_sdnei.px-busIbus-dw256OptimizedRT1TaigetOptimizedRT1mp1eted.图2SDNet环境的设计流程为实现这一策略,我们创建了相应的SDNet功能描述,如图
10、2的代码段所示。我们随后把该代码输入SDNet编译器,设定总线类型、总线宽度和生成的RT1类型等选项。编译在数秒钟内完成。SDNet功能描述的实际代码规模大约为250行代码。相比之下,等效的RT1需要由数万行代码构成。考虑到我们的工作日程紧张,我们十分欣赏SDNet规范的简洁性。受我们开发时间的约束,要在RT1中重新设计并验证这一复杂模块是无法做到的。下一步我们使用工具命令语言(TeI)外壳程序,将生成的RT1与VivadoDesignSuite上的其他外设IP集成在一起。图3所示为集成式SDNet分类器和我们定制的流程分配器。我们的目标编程器件是赛灵思Virtex-7XC7VX690TFPG
11、Ao入口流量(rx)处理器1agopusFPGA时rx工作负荷DSTDST3目目目白目目FPGA分类器(SDNet)流程分配器内核DMA传输RAM1多核处理器RAMN有1agopusFPGA图3-FPGA流程分类与分配借助1agopusFPGA,我们仅以x86功耗上升不足10%为代价,便实现了40Gbps线速软件包处理能力。由于分类后的包流(指向32个接收rxDMA队列)通过在x86多核CPU上工作的1agopus的软件数据层面能够得到有效分配,这种集成FPGA设计让系统不仅能减少1agopus的OpenF1ow工作线程占用的CPU周期,而且还可平衡每个内核的工作负荷(图3)。因此,我们使用1
12、agopusFPGA实现了更高性能一一达到40Gpbs线速软件包处理能力,而且付出的代价仅仅是x86CPU的功耗增大不到10%(如图4所示)。1agopusFPGA每帧大小上的吞吐量-40G线速1-仅用4核,F1owDirector=OFF4核+FPGA,F1owDirector=ONA8核+FPGAtF1owDirector=ON帧大小(字节)CPU#2C115W(27%)115图4-性能与功耗关系图SDNet环境与VivadoDesignSuite结合运用,有助于我们项目的启动,让我们能够最大程度地丰富1agopusFPGA系统的特性集,优化性能并降低功耗。NTT研发部在SDN/NFV领域的领先地位,加上我们对赛灵思SDNet开发环境的运用,让我们为电信和云基础架构将带来革命性变化。为此,我们将继续运用软定义、可重编程的SDNet负载模块来优化我们的设计方法。包括API在内的SDNet规范的不断快速修改在我们设计未来平台时能为我们提供更多益处。其他(RAM/HDD4176W(41%合计:4251agopusFPGA