前文我们讨论了在云数据中心发展中起着重要作用的SDN技术,还有一种技术常常一块出现,那就是NFV技术,即网络功能虚拟化(英语:Network Functions Virtualization,缩为 NFV),这是一种对于网络架构(network architecture)的概念,利用虚拟化技术,将网络节点阶层的功能,分割成几个功能区块,分别以软件方式实作,不再局限于硬件架构。今天我们就介绍下要实现NFV技术的两个关键问题,它们分别是与硬件相关的通用服务器性能问题、与软件相关的服务链问题。
1、通用服务器性能
通过在云数据中心中引入NFV技术,可以将路由器、防火墙、负载均衡器等任何类型的网络功能运行在共享的通用服务器上,并将它们按需划分为虚拟机软件实例。这样做的好处是可以有效地降低投资成本(capital expenditure,CAPEX)和维护成本(operating expense,OPEX),并缩短业务部署与上线时间。但同时一定要面对一个较为棘手的问题,即通用服务器能否完全代替旧有专用硬件网络设备。
ASIC、NP、CPU 3类芯片构建了IT架构的基础。ASIC和NP基于pipeline模式的传统做法,对网络报文的转发和处理可以达到很高的性能,但业务固化,应用灵活加载的能力欠缺。新IT融合架构的本质在于“面向应用”,因此以x86架构为代表的CPU通用架构异军突起,得到了广泛的关注。CPU在计算能力上优势明显,适合处理L4~L7层业务,但短板是没有专用的数据面操作系统,导致I/O转发能力弱。
而英特尔公司推出的DPDK(data plane development kit,数据平面开发套件)技术可以有效弥补这一短板,它主要用于快速的分组处理,可以显著提升数据分组处理性能,按照英特尔最新发布的实验室测试数据,基于DPDK的数据平面转发能力已经可以达到220 Gbit/s。虽然离规模商用仍然尚待时日,但已经让业界看到了摩尔定律在NFV领域再续辉煌的潜力。另外,由于英特尔开放了DPDK源代码,使得广大网络厂商均可以利用DPDK技术来提高网络设备的转发性能。通过上述技术使得通用服务器可以完全替代专用硬件网络设备,甚至提供更高性能的网络应用,这为NFV走出实验室,大规模商用奠定了坚实的基础。
2、服务链(service chain)
随着云业务的交付,尤其是面向多租户的环境,网络业务越来越复杂化。数据报文在网络中传递时,需要经过各种各样的业务节点,才能保证网络能够按照设计要求,提供给用户安全、快速、稳定的网络服务。这些业务节点(service node),典型的有防火墙、负载均衡、入侵检测等。通常,网络流量需要按照业务逻辑所要求的既定顺序,穿过这些业务点,这就是所谓的服务链。为了实现各种业务逻辑,服务链需要可编程实现灵活组合。而随着SDN以及NFV的不断推进,服务链变得更加重要。传统的网络用专业硬件承载单独功能,再将其部署在物理网络中,作为一种固化的网络拓扑。随着业务编排和服务链的引入,网络可以被抽象。运营商可以面向业务流定义所需要的网络功能以及业务流处理方式。
通过SDN控制器,把多个NFV软件化的业务功能模块链接在一起运作,实现业务的灵活调度,服务链是多业务整合的关键,也为个性化应用的平台开发打下基础。服务链中的各角色:业务节点(service function)、流分类节点(classification)、控制平面(control plane)、代理节点(proxy node)协同完成业务定义。
NFV和SDN都是为了满足新的应用需求提出的下一代网络技术。总体而言,它们各有侧重,分别从不同的角度去解决不同的网络问题,同时它们又有着非常密切的关系。虽然两者都能够改进网络的整体可管理性,但是它们的目标和方式有所差异。SDN通过将控制平面和数据平面分离来实现集中的网络控制,而源自运营商需求的NFV技术则是通过软硬件分离,实现网络功能虚拟化,其关注的重点是优化网络服务本身。这两种技术看起来属于不同维度,却具有很强的互补性,利用SDN技术在流量路由方面所提供的灵活性,结合NFV的架构,可以更好地提升网络的效率,提高网络整体的敏捷性。