All Programmable SDN交换机加速网络功能虚拟化(1)
 
- UID
- 852722
|

All Programmable SDN交换机加速网络功能虚拟化(1)
基于赛灵思FPGA的可编程COTS NIC可将NFV软件应用性能提升50倍。
向网络功能虚拟化(NFV)和软件定义网络(SDN)的转变代表了近20年来最具变革性的架构网络发展趋势。由于NFV和SDN承诺系统开放性和网络中立性,因此有望给未来的通信网络和业务的成形造成深远影响。
我们Ethernity Networks公司正在利用赛灵思器件,率先向市场推出真正开放的、高度可编程的SDN和NFV解决方案。让我们来看一下Ethernity公司在首次探索NFV和SDN的前景和要求之后,是如何打造其解决方案的。
硬件和NFV/SDN变革遍地开花
过去几十年间的网络基础架构业务在很大程度上可谓是大型机业务模式的延续,在这种模式下,屈指可数的几家大型公司提供专有局端基础设备,而这些设备又运行专有的软件,这样构建的全部意图都是为了不与竞争对手的系统进行通信。在大多数情况下,基础架构厂商为其客户的每个网络节点都创建定制硬件,并将每个节点都构建成最低可编程性和可升级性节点,以确保那些希望对网络进行扩展或升级的客户会从同一厂商旗下购买下一代设备;或者让客户完全无法选择从其他公司购买全新网络,最终只能重蹈覆辙。
在过去五年中,来自运营商、学术机构以及厂商的新贵一直在呼吁,即通过最大化硬件与软件的可编程性来过渡到无处不在的硬件、网络中立、开放系统以及软件兼容性。NFV和SDN是这一发展趋势的先锋,为这一不断成长且一定会成功的革命高举旗帜。
凭借NFV,公司可通过软件在商用的通用硬件平台上运行各种网络功能,这与在昂贵的定制专有硬件上运行每项特定网络任务截然不同。将这些无处不在的开放式平台的可编程性最大化,使公司能够在数据中心甚至更小的网络节点中运行众多之前由特定硬件设备执行的任务。NFV允许运营商根据需要只将给定服务的新网络软件上传到商用硬件资源,从而可以进一步减少创建新的网络服务所需的时间。运营商因此可以轻松扩展网络并为其公司选择同类最佳功能,而不用被迫购买和使用软件灵活性有限的新型专有硬件。
NFV是有效的,因为网络中的很多节点都具有一般性的功能要求。具备一般性要求的节点包括交换机和路由器、数百万流分类、访问控制列表(ACL)、状态流感知、深度数据包检测 (DPI)、隧道网关、流量分析、性能监控、分段、安全性、虚拟路由器和交换机。但NFV自身也面临诸多挑战。预计因特网和数据中心流量在未来几年内将呈指数级增长,因此网络局端基础设备必须能够应对流量的巨大增长。仅依靠软件可编程性并不足以使通用硬件能够随着带宽需求的增长而进行轻松扩展。无处不在的硬件需经过重新编程来优化总体系统性能。这允许厂商和运营商以“更智能,而不是更辛苦的工作”方式来利用NFV和SDV,从满足运营商的最终客户(即消费者)不断提高的网络要求。真正的软/硬件可编程基础架构才是真正实现NFV和SDN的愿景的唯一方式。
SDN同时在物理与虚拟设备中的网络控制层与底层数据转发层之间使用基于标准的软件抽象,这消除了传统分布式网络基础架构复杂且静态的本质,是一种现代的联网方法。在过去五年中,行业制定了一项标准数据层抽象协议OpenFlow,其提供的新颖实用方法可以借助基于集中软件的控制器来配置网络架构。
具有集中软件配置的开放式SDN平台通过可编程性和自动化显著提升了网络敏捷性,同时大幅降低了网络运营成本。OpenFlow等业界标准数据层抽象协议使提供商可以自由使用任何类型和品牌的数据层设备,因为所有底层网络硬件均可通过一种通用抽象协议来进行寻址。重要的是,OpenFlow便于使用“裸机交换机”,同时避免传统厂商的套牢,使运营商同样能够自由选择目前可在IT基础设施的其他领域(如服务器)中轻松找到的网络。
由于SDN还处于起步阶段,因此标准仍在不断演进。这意味着设备厂商和运营商需要防范风险,并利用FPGA的硬件及软件的可编程性,以最大的灵活性对SDN设备进行设计和操作。目前上市的基于FPGA的SDN设备即使对于大规模部署也相当实惠。基于FPGA的SDN设备具有高度的高硬件与软件灵活性并且尽可能符合OpenFlow协议要求。
性能加速需求
或许,对NFV和SDN而言,要超越开放性最关键的要求就是高性能。尽管NFV硬件看起来比专有系统更便宜,但NFV架构需要保持极富竞争力的大数据量,满足下一代网络的复杂处理要求并不断提升能效。
实际上,NFV基础设施小组规范(Infrastructure Group Specification)包含一个特殊部分,其描述了对加速功能的需求,以提升网络性能。此规范描述了处理器组件如何将某些功能转移到网卡 (NIC) 以支持某些加速功能,包括TCP分段、互联网协议(IP)分片、DPI、数百万条目的过滤、加密、性能监控/计数、协议互通与OAM以及其他加速功能。
驱动这种加速的主要引擎是NIC,其配备了物理以太网接口,供服务器连接到网络。如图1中所示,当某个数据包通过10GE、40GE或100GE端口到达NIC时,根据标签信息(如IP、MAC或VLAN)将数据包放置在虚拟端口 (VP) 或代表特定虚拟机(VM)的队列中。随后位于服务器上的合适的虚拟机直接对数据包进行DMA访问以进行处理。每个虚拟网络功能(VNF)都在不同虚拟机上运行,并且某些网络功能需要使用多个甚至数十个虚拟机。
OpenFlow控制硬件加速功能,比如NIC上的硬件加速功能可以视为是SDN交换机的扩展。可在多个虚拟机和/或内核上通过部署多个VNF来为众多功能处理NFV性能。这为NFV带来了两大性能挑战。第一项挑战在于“vSwitch”,这通常是一个软件,用来处理以太网NIC与虚拟机之间的网络流量。第二项性能挑战在于均衡在多个VM之间输入的40/100GE数据。添加IP分片、TCP分段、加密或其他专用硬件功能时,NFV软件需要辅助以满足性能需求并降低功耗。理想情况下,其外形应该比较紧凑,以减少存放网络设备所需要的板级空间。
为处理NFV挑战和各种网络功能,用于NFV和SDN的NIC卡必须性能极高,而且尽可能灵活。多家芯片厂商都试图成为第一家上市NFV硬件的厂家,他们已经提议构建针对NIC卡的平台,它们各自都具有不同程度的可编程性。Intel目前是主要的NIC组件提供商,配有用于加速数据包处理的DPDK包。EZchip提供了运行Linux并可用C语言编程的NPS多线程CPU。Marvell为其Xelerated处理器提供了两个完整的数据层软件套件以用于城域以太网和统一光纤应用接入(Unified Fiber Access Application),这两个套件由运行在NPU上的应用程序包和运行在主机CPU上的控制层API组成。Cavium已经为其Octeon产品系列选择了更通用的软件开发套件。Broadcom、Intel和Marvel L2/L3交换机主要用于搜索和vSwitch负载转移。同时,Netronome的新款Flow-NIC配备了能在该公司的专用网络处理器硬件上运行的软件。
尽管所有这些产品都声称是开放式 NFV方法,但实则不然。所有这些方法都涉及到苛刻并且可以说是限制过多的硬件实现方案,这些实现方案仅具备软件可编程,并且在SoC或标准处理器方面再次依赖于苛刻且专有的硬件实现方案。
用于NFV性能加速的ALL PROGRAMMABLE ETHERNITY NIC
要加强可编程性同时还要大幅提高性能,很多公司都在研究一种能将现有CPU与FPGA结合使用的组合方法。在过去两年中,很多数据中心运营商(尤其是Microsoft公司)发布了论文来阐述他们通过混合架构所实现的性能大幅提升。Microsoft发布的名为“Catapult Project”的白皮书指出,在功耗仅增加了10%的情况下,性能提高了95%。Intel指出,在数据中心NIC中将FPGA与CPU组合所产生的效能是其花费167亿美元收购第二大FPGA厂商Altera公司的主要原因。
同样,CPU与FPGA组合方法也适用于在虚拟机上运行虚拟联网功能的NFV。在这种方法中,FPGA用作完全可编程NIC,经扩展可用来加速在服务器的CPU/VM上运行的虚拟网络功能。
但是完全基于FPGA的NIC卡是NFV的理想COTS硬件架构。多家FPGA固件厂商都可以提供固件,以提高在FPGA NIC上运行的NFV的性能。并且FPGA公司最近开发了C语言编译器技术(如赛灵思的SDAccel和SDSoC开发环境)以实现OpenCL和C++设计输入和编程加速,从而进一步向更多用户推广NFV设备设计。
为加速NFV性能,NFV解决方案提供商增加了VM的数量,目的是在多个VM上分配VNF。在操作多个VM时,出现了新的挑战,这与均衡虚拟机间的流量负载同时还要支持 IP分片有关。此外,在支持VM之间的交换以及VM与NIC之间的交换方面也存在挑战。纯软件vSwitch元件根本不具备足以解决这些挑战的性能。另外,还必须要保持VM的完整性,以便VM能够适当存储特定的突发数据包并且不会无序交付数据包。
Ethernity的ENET FPGA专用于解决NFV的性能问题,其配备了虚拟交换机/路由器实现方案,使系统能够根据L2、L3和L4标签来加速vSwitch交换数据的功能,同时保持为每个VM分配一个专用虚拟端口。如果某个特定VM不可用,ENET则可以将流量保存100ms之久;而一旦可用,ENET将通过DMA将数据传输给VM。我们的ENET安装了标准CFM数据包生成器和数据包分析器,可提供延迟测量功能,从而可以测量VM的可用性和运行健康状况,并且指示 ENET的状态负载均衡器(关于每个VM在负载分配方面的可用性)。数据包重新排序引擎可以在某些情况下保持帧的顺序,例如,如果某个数据包出现无序移动,这可能导致对一项功能使用多个VM。
图2描述了VM负载均衡ENET解决方案的方框图。
在图2中,分类模块执行L2、L3和L4字段的层级分类,以保持支持长时间活动TCP(telnet、FTP等不会立即关闭)的连接和流的路由。负载均衡器必须确保该连接上携带的多个数据包不会将负载均衡到其他可用的服务主机。ENET包括老化机制功能,以删除不活动的流。 |
|
|
|
|
|