当前位置: 首页 > 科技观察

NFV硬件加速,在进退两难中前行……

时间:2023-03-15 01:24:59 科技观察

最近由于工作需要,对NFV领域的硬件加速需求进行了调研分析。人员进行了一轮“面试”,结果却出乎意料的冷淡了些。就像这个冬天,寒潮来的多了一点。还是在2012年,我在研发的一个硬加速技术项目担任项目经理。当时这个项目不是针对NFV,而是针对当时3G网络的RNC产品。那一年,我们电信领域的盒子产品刚刚从vxWorks进入Linux时代。RNC的接口板和用户面板由MIPS多核转为X86。X86内嵌的一系列协处理器所带来的卓越性能一下子消失了,但是在MIPS/PowerPC没落和服务器市场X86的大背景下,转向X86是正确的,也是必须要做的。因此,利用各种方法来解决X86在某些方面性能不足的问题被提上日程。我的项目就是在这样的背景下运行的。当然,我们也确实用尽了各种办法,用FPGA和多核处理器Cavium/RMI做X86协处理器,把RNC的用户面业务处理下移到协处理器,甚至和大学合作。合作项目研究GPU在IP包转发领域的应用。该项目也取得了一定的预期,加速后性能提升了2倍以上。TDCP报告的时候,当时的BOSS说“2倍太少了,要加10倍”!在场的人都笑了,这笑声已经过去了很多年。业界对于NFV是否需要硬加速的争论从未停止过。主流观点有两种:一种是“坚决不”,理由相当简单粗暴:设备必须通用化,不能引入专用硬件,否则又会走回过去专用硬件盒的老路子;另一种观点是“NFV需要引入加速器”。著名的言论有Telefonica在2015年NFV世界大会上说的“NFV!=IT云计算”,还有一位资深人士说过,“想清楚的运营商都在考虑硬加速,想不清楚的只是需要通用硬件。”什么是对的,什么是错的?几年后,似乎没有真正的答案。连前几年雷雨交加的景象都没有了。不在一个层面,甚至有声音在质疑硬加速是不是虚假需求。硬件加速目前如此沉寂有几个原因:1.NFV市场还没有真正启动,性能压力不大。截至2017年10月底,全球共有508个NFV商用合同,其中约20%已交付并投入商用,其余处于项目交付阶段,即约100个全球NFV合约正式商用。在100个正式商业合同中,核心网的vEPC/vIMS是主要合同。按照每个项目百万级别的平均用户数来看,这个点的业务量和传统网络承载的流量相比只是表面的。在这种情况下,与客户一起努力加速确实是不够的。另一方面,转发网元vRouter/vBRAS对性能要求比较高,确实有很大的性能提升空间,但是转发网元只有个位数的契约。可能的商用合约只有200个,新建的vBRAS多为小流量大会话场景。因此,在目前的情况下,为客户提供硬件加速显然为时过早。2、老业务萎缩,新业务跟不上核心网。NFV/NFC的商业推广遥遥领先于其他产品。然而,运营商的语音业务持续萎缩。X86的AVX命令每核可达数百个语音通道,足以应付现在的业务量;VR/AR这几年没有突破,视频业务还没有真正起步,目前视频转码加速的优先级不高。此外,X86的处理能力不断提升,DPDK/OVS的IO能力和L2~L3转发能力不断提升,从而也解决了云核心网网元对转发性能的要求;AES/AVX指令的优化使得安全加解密、视频转码和压缩等加速要求可以通过X86本身得到很大程度的缓解。3、技术方案众多,没有统一的标准。当前的硬件加速方案可谓百家争鸣。每个球员都有自己的才能。根据不同的业务场景和自身优势,他们推出了各种硬件加速方案。主流的是FPGA加速(标准PCIeFPGA加速卡、NIC+FPGA加速卡、CPU嵌入式FPGA)、GPU加速卡、NetworkProcessor加速卡、IntelQuickAssist加速卡,以及人工智能领域的TPU、NPU。10+种加速硬件必须运行在各种CloudOS上,并被各种厂商的VNF调用。想象一下这是多么可怕!如果没有统一的标准来管理这些加速卡,没有统一的接口让上层网元调用,硬加速是不可能进行下去的。运营商终于从专用硬件盒转向通用COTS,结果给他们提供了一堆专用加速卡,客户不会接受。好在硬加速领域的标准和开源进展还算有序。ETSI已完成IFA1~4、硬加速信息模型、接口定义、用例定义的发布,并完成了Rel-1相关标准的制定,Rel-2也已经建立,进一步完善接口定义和资源管理;Openstack社区建立了由华为牵头的Cyborg项目,保持与ETSI相同的标准设计,并于今年8月发布了第一个带有硬件加速的。托管版本。有了标准和开源版本,接下来的事情或许就能顺理成章地推进。4、操作者的思维刚转了180度,又转了90度。思路是否正确?客户第一步肯定是NFV==COTS。大T对硬件加速非常谨慎。大多数客户根本不认可网络处理器的加速解决方案。NetworkProcessor虽然非常适合网络转发领域,但客户认为专用的硬件方案与目前的COTS不兼容;保守的客户甚至不认同FPGA解决方案。我很谨慎,认为FPGA的定制化程度太高,FPGA加速卡与NFVI、VNF深度耦合,这也与NFV领域分层解耦的思路相冲突。不是客户没有想清楚,而是想得太清楚了,以至于设备厂商提出的过时的方案没有得到客户的认可。客户转身90度并不容易。一定要有足够的说服力。不仅硬件加速方案要有竞争力,商业模式也要符合运营商当前的需求。5、硬件加速效益提升有限,竞争力不足。VDF一直对硬件加速非常谨慎。他们认为,硬件加速的综合效益并不明显。硬件加速卡的价格和运维成本远高于COTS。只有在COTS提升非常明显的时候才会考虑。业界分析了硬件加速不同应用场景的能效比,计算出硬件加速卡的CAPEX/TCO。粗略计算一下,只有60%以上的性能提升才是有价值的,而当硬件加速提升100%时,CAPEX节省15%,整体TCO节省只有区区9%,所以整体效益不明显。另一方面,硬件加速在商业化的时候也面临着很多难题,比如加速卡的兼容性,功耗/散热/尺寸是否兼容各种服务器,驱动是否兼容各种HostOS/管理程序/来宾操作系统;加速卡的集成安装部署也是一个问题。开箱后更换加速卡对客户来说可能是一场噩梦。还有一些技术问题还没有完全解决,比如加速卡的热迁移、加速卡的资源池化、加速卡的备份等,在这些真正的问题解决之前,硬加速还会继续向前推进尴尬。2015年Telefonica发言人说“NFV!=IT云计算”时,万万没想到IT云计算业务经过几年的增长,底层硬件不再是单纯的COTS和白牌,尤其是互联网巨头,他们不断在原有硬件基础上进行优化,引入各种加速卡。其中,微软公开了公有云Azure硬件加速方案,成为业界标杆。微软公有云加速方案经过几代演进,现在固定在Catapultv2,将数据中心网络分为三层:L0:连接24台主机,L1:构建960台主机的POD,L2:POD互联甚至,总共有25万台主机,每一级网络都会引入带宽收敛,但微软的网络可以做到:固定跳数,低延迟(跨L2延迟不超过23.5us)。微软在服务器网卡和TOR交换机之间放置了一层FPGA,提供两种加速模式:本地:所有网络流量都经过FPGA,可作为网络关联加速器和本地计算加速器;系统:每个FPGA可以与数据中心的其他FPGA直接通信,具有微秒级延迟,无需CPU干预。这种灵活性支持将FPGA组合到资源池中,以构建异构计算即服务(HCaaS)。通过这套系统,微软将必应搜索业务的吞吐量提高了一倍,延迟降低了29%;在人工智能CNN神经网络加速推理场景下,性能功耗比相比CPU提升100倍;在网络交换方面,由集成网卡和FPGA组成的网卡SmartNIC2.0支持40Gbps的加密性能。公有云硬加速的另一个成功案例是亚马逊提供的计算加速服务租售模式。2016年底,AWS推出FPGA加速服务F1,作为增强型EC2实例提供给第三方租用。主要场景为基因分析、金融分析、视频图像、大数据服务。Amazon通过将FPGA绑定到计算节点,为F1实例提供FPGA计算能力。销售模式与普通计算实例相同。您按小时为F1计算能力付费,无需签订长期合同或提前付款。亚马逊免费提供开发工具和开发指南。第三方开发者可以在亚马逊提供的工具平台上开发代码和创建镜像,然后加载到F1实例上。同时,他们还可以从AWSMarketplace购买开发好的FPGA应用包。您也可以在Marplace上出售您自己的应用程序包。微软Azure和亚马逊AWS硬加速的应用是两种典型的模式。微软用于加速Azure本身的性能,微软的搜索和人工智能分析都依赖于加速资源;而亚马逊则将硬加速作为一项服务对外销售,作为基础资源供亚马逊客户使用。这两种模式现在看来都是成功的,对电信NFV无疑具有借鉴意义,尤其是AWS模式,或许可以为NFV的硬加速找到第二条出路。如果说几年前“NFV!=IT公有云”,那是因为之前的公有云业务刚刚起步,并没有硬性要求使用专用硬件加速。随着近几年公有云的快速扩张和发展,原有的一些网络架构已经不足以满足当前的业务需求。互联网巨头们根据自己的业务需求,采用了最适合自己的技术。AlphaGo用来下棋的无论是微软的FPGA还是谷歌的TPU,目的都是一样的。使用最全面的成本优化解决方案。电信领域实时性高、流量大的场景比较多。未来NFV肯定会有和今天公有云一样的硬件加速需求。NFV硬加速可以从当前和未来两个层面考虑。目前硬加速的主要场景包括高吞吐量的报文转发、高实时性的媒体处理、耗时的安全加解密、复杂的算法等。在商业认知方面,包括英特尔在内的各家设备厂商都在寻找合适的方案来解决这些硬件加速需求。FPGA的通用性和可编程性在加解密、报文转发、甚至视频转码等几乎所有领域都占有最大的份额;GPU凭借其易用性和突出的并发计算能力,除了在视频转码之外,还在人工智能领域取得了很大的突破;而昔日的明星网络处理器已经逐渐没落,只能在消息转发领域有一些应用。最关键的问题是客户没有将网络处理器识别为加速卡,这种盒子时代创造的辉煌,在NFV/Cloud时代恐怕难以延续。未来电信网络对硬件加速的需求主要集中在CU分离、5G、MEC、人工智能等领域。CU分离后,对U面的性能要求更高,专用盒子的U面肯定会被运营商诟病。通用服务器+加速卡方案或成主流;Intel、中国电信和HPE,使用FPGA版增强网卡对CU分离的vBRAS进行测试,性能提升3倍,总功耗降低50%。5G网络必须提供难以想象的大带宽和低时延,单靠COTS性能难以满足,5GRAN、5GCORE和5G前传,都有非常大的性能提升需求;MEC场景受机房空间、散热、成本等因素限制,同时下沉应用会大大增加MEC节点的计算开销。使用综合性价比更高的硬件加速方案可能是唯一的选择;人工智能领域的硬加速已经在互联网公司大规模使用。无论是百度的FPGA版百度大脑,Google的TPU版AlphaGo,还是Tesla的GPU版无人驾驶,单靠通用CPU是无法满足计算需求的。要求,使用硬加速方案可以将能效比提高几十倍以上。电信领域的人工智能还在探索和研究中,但可以预见,当人工智能被引入自动化网络优化、故障分析预测等场景时,基于神经网络算法的海量数据处理、推理和学习将占据一席之地。大量的CPU和Memory资源,对于资源本就捉襟见肘的网络设备来说已经难以承受,引入专用人工智能芯片将是大概率事件。回过头来看,NFV硬加速推进乏力,一方面是因为NFV市场和视频等新业务增长缓慢,另一方面是硬加速本身的技术竞争力存在问题,包括标准滞后,产品化等一系列问题。各个设备厂商在推出硬件加速方案时,都与VNF、NFVI强绑定,客户当然不愿意接受。要改变这种局面,一方面要靠标准的约束,另一方面需要转变思维方式,寻找新的模式。游戏软件和显卡对性能有很强的依赖性,但游戏公司从来不自己做显卡。同样,VNF厂商为什么要自己做加速卡?FPGA就像GPU一样,硬件生产加工委托给华硕和微星。七彩虹、七彩虹等制造企业定义行业内的硬件接口和软件API,进而完善驱动生态。VNF就像只做应用的游戏公司,最多只能优化驱动,提高自己的VNF竞争力。另外AWS的模式也可以借鉴。VNF厂商为加速卡开发的应用程序和驱动程序可以在电信云市场上销售,而不仅仅是垂直端到端交付。当至尊宝坚持“爱一个人需要一个理由”时,菩提只能用“我在跟你学,你怎么这么认真”的方式为自己寻找出路,而这在当下的NFV领域已经难以加速。多么尴尬的相似。但我们充满信心,未来可能不是NFV做大了就需要硬加速,而是硬加速的大规模应用会反过来推动NFV的成功,就像谷歌的TPU一样,人类很幸运看到AlphaGo打败了柯洁。.作者简介:岳庆伦,就职于华为产品与解决方案部,研究SDN/NFV