由于可将网络功能/特征仿真到软件并部署于通用服务器来实现,以NFV(网络功能虚拟化)与SDN(软件定义网络)为代表的“网络虚拟化技术”成为最近一个非常热门的行业话题。但是,半导体性能的未来速率演进将会落后于网络容量的增长,随着网络数据容量正在进入太比特时代,预计将难以通过NFV技术的灵活性来获得所需的数据速率与功率效率。为解决此问题,业界有机构正在研究可用于网络虚拟化的硬件/软件联合设计技术[1],在技术理念与具体技术上都有较大的参考价值,下文对其进行详细介绍。
1、引言
随着商用型服务器的性能得到逐步提升,全球通信业界开始大力探索通过部署网络虚拟化技术来大幅降低网络建设成本与运维成本。
SDN(Software-Defined Networking,软件定义网络)即是网络虚拟化技术的代表,其可将电信网络设备的控制功能与数据传送功能分离解耦,从而可以集中处理网络配置与设置(可通过相关软件进行自动化的流程控制)。
为了能把SDN技术应用到电信运营商的广域网络,业界已经发布了开源的SDN应用。该应用包括两大部分:(1)Ryu SDN框架——其为一种SDN控制器,为SDN网络的设置提供便捷的工具与能力库;(2)Lagopus——其为一种高性能的SDN软件交换机,具备可广泛应用部署于数据中心及广域网络的能力与特性。
2、对硬件加速器(用于网络虚拟化)的研发
随着网络虚拟化技术的进步,传统上由专用硬件设备所提供的网络功能,也将有望通过在标准化的通用服务器中部署虚拟化成软件的网络功能来实现。
可以预见的是,随着网络虚拟化技术的实际应用越来越普遍,部署有很多网络功能的通用服务器的CPU(中央处理单元,用于进行与网络相关的处理)将会承受很大的负载。
从而,为了使网络虚拟化技术能满足更高级网络服务与系统的需求,就需要研发能减轻通用服务器CPU负载的技术,以期提高通用型服务器处理能力的功率与性能的比值,为更多网络功能的正常运行提供稳定的环境。
为了使网络虚拟化系统中的软硬件能协同工作,NTT设备创新中心正在研发硬件/软件联合设计技术,已设计出具有如图1所示理念的HWA(HardWare Accelerator,硬件加速器)——其具有性能、灵活性及可用性三个维度,并涉及SDN软件交换机、SDN硬件交换机、硬件加速器。总体而言,硬件加速器可在提升性能、提高可靠性的同时,保证高性能SDN软件交换机(Lagopus)的灵活性。
图1 硬件加速器的设计理念
3、硬件加速器的技术原理与特性
1)技术原理
在用于网络虚拟化的通用型服务器中,能与硬件加速器HWA协同工作的SDN软件交换机的系统配置如图2所示。其中:(1)虚线的上半部分为数据平面,以SDN软件交换机为核心进行软件(网络功能虚拟化应用)处理(采取x86 CPU);(2)虚线的下半部分执行硬件处理功能,其主体为内置于通用服务器NIC(网卡)之中的一个可重构/重配置的FPGA(现场可编程门阵列)电路——硬件加速器HWA。通常地,硬件研发比软件研发要花费多得多的时间。但是,由于此方案中采取了可对程序中的功能进行重写的FPGA,就不仅可加速硬件研发,还具备在后续对网络功能进行更新、迅速解决故障的能力。
图2 SDN软件交换机的系统配置
(注——API:应用编程接口;DPDK:Intel的数据平面开发工具包;NFV:网络功能虚拟化)
图2中所示的SDN软件交换机通过网卡中的FPGA硬件加速器HWA向相关的软件转发网络分组/数据包以待处理。除了网卡通常的数据包处理功能,硬件加速器也具备相关的预处理能力以减轻Lagopus(SDN软件交换机)转发组件(即数据平面)的负载压力。但是,硬件加速器的预处理功能与SDN软件交换机的数据包处理是相互独立的,并不直接与之通信。这就使得SDN软件交换机能保持其灵活性,同时减轻软件处理负载,并可进一步地提高SDN软件交换机的性能。
2)技术特性
(1)高速的流量调度
要进行高速的数据包/分组处理,需要SDN软件交换机把相关工作平均地分配给多核处理器之中的各个处理单元,以对多个指令进行高效的并行处理。但是,目前尚无提前分发数据分组负载的相关机制。从而,所有数据分组就必须被传送至某个指定的CPU核,然后再分割给相应的软件进行处理。于是,这样就容易导致数据包堆积在单个的CPU核之中,从而就成为“瓶颈”,甚至在最坏的情况下造成丢包。
为解决上述问题,业界研发了高速的流量调度机制。其工作原理为:如图3所示,基于硬件加速器所接收到的分组流数据,将数据包分配给FPGA数据结构(以队列的形式)。其后,DMA(Direct Memory Access,直接内存存取器)将数据分组传送至主内存阵列(多核CPU的每个处理器单元对应一个主内存)。
图3 高速流量调度的实现原理(以六核CPU为例)
以此种方式,所有的处理负载/任务就被平均、平滑地分配给多核CPU的每个处理器单元(如图4所示),同时又不会造成软件周期的浪费。
图4 高速流量调度的效果(以六核CPU为例)
(2)可进行数据流量导向
应用于网络虚拟化的硬件加速器HWA除了可进行高速的流量调度,还需要研发一种技术机制,以使得软件能自主确定将数据流分配至哪些相应的DMA序列,为此研发了流量导向装置。
如图5所示,流量导向装置使得Lagopus(SDN软件交换机)可通过应用编程接口API与硬件加速器HWA通信来确定将数据流分配至哪些相应的DMA序列。可见,流量导向装置可用于提高系统性能。
图5 流量导向装置
总之,流量导向装置可计算出数据分组应如何被分配至多核CPU的某个/某些处理器单元,从而,数据流就无需被确定两次,相应的处理也就可被跳过。这就使得Lagopus(SDN软件交换机)具备足够多的时间去更为高效地处理小数据包。
(3)数据包镜像
在未来,需要实现更快地查找出发生网络故障问题的原因。这是由于,在将来实现了网络虚拟化技术之后,网络故障会变得更为复杂。
为此,业界也研发了可应用于硬件加速器HWA之中的数据包镜像技术。其特点为:可在不对软件造成任何负载的情况之下,随时对虚拟网络进行监测。
如图6所示,数据包镜像技术的实现原理为:对输入FPGA硬件加速器HWA的数据分组/包进行复制,并将其原样(未经修改)转发给相关的外部设备进行分。从而可及时判断、检测出网络故障问题发生的“苗头”,而同时又不会影响到正常的数据分组/包处理功能。
图6 数据包镜像技术的实现
4、系统试验与评估结果
NTT与Xilinx公司合作进行了其装备有FPGA硬件加速器HWA的SDN软件交换机系统原型样机的测试,并验证了硬件/软件联合设计所能获得的系统性能增益。相关测试采取了最新的FPGA设备与工具SDNet(Software Defined Specification Environment for Networking,用于组网的软件定义规范环境。其可进行分组数据包的处理)。对于分组数据包转发性能的评估结果如图7所示,所测得的功率消耗情况如图8所示。
图7 测试原型系统的数据包转发性能(其中“吞吐量”的单位是Gbit/s)
图8 40 Gbit/s线速下的系统功耗
图7中的数据表明:(1)无论是长包(比如1600字节)还是短包(比如50字节),部署了硬件加速器HWA后,转发性能均有所增强,包的长度不一,增强的程度也不一;(2)部署了硬件加速器HWA后,多核CPU的处理器单元数越大,在一定的包长(1000字节左右)范围之内,转发性能越好,且其性能改善的程度也与具体的包长大小相关;(3)部署了硬件加速器HWA后,当包长达到一定的大小时,系统吞吐量存在一个极限值,且多核CPU的处理器单元数不同,开始出现吞吐量极限值时的包长大小也不同;(4)部署了硬件加速器HWA后,定性看来,系统对长包的转发性能要优于短包。
此外还发现,当采取8核CPU(处理器单元达到最大数值)时,系统在处理长度大于384字节的分组数据包时,可获得高达40 Gbit/s的线速。而且,当数据包处理速率达到40 Gbit/s之时,整个通用型服务器的功耗为425瓦,但FPGA硬件加速器HWA的功耗于其中的占比还不到5%——仅为19瓦。这就意味着,实际上是可以以很小的功耗代价来获得理想中的高线速的。
测试中还发现,采取Lagopus(SDN软件交换机)对硬件加速器HWA的输入数据包进行复制(通过相应的应用编程接口API),不会对原型系统之中的首要数据包处理产生任何影响。
5、未来研发工作规划
如图7所示,原型系统对于小于384字节的短包的转发性能(吞吐量、线速)较低。为此,业界对该SDN软件交换机系统(内含硬件加速器HWA)的下一步研发目标是将其线速(吞吐量)提高至40 Gbit/s。
另外,为进一步提高系统的可靠性,业界将会对数据包镜像技术的实际使用进行测试,以进行网络监测并对网络功能进行分析,进而提高网络虚拟化的运营效率。
此外,业界还规划采取SDN软件交换机系统(内含硬件加速器HWA)原型系统的三大特性来实际部署NFV(网络功能虚拟化)应用,并研制可用于试用的相关系统。
以此方式,电信网络虚拟化技术的性能与可靠性将得到进一步的提高,并有望将硬件/软件联合设计作为网络虚拟化的基础技术,从而助力推动网络虚拟化技术在电信运营商基础网络之中的实际商用部署进程。