2.2.1 NFV

本节首先总结了传统网络设备软硬件耦合的缺陷,其次介绍了软硬件耦合向NFV的演进过程,最后介绍了NFV架构和NFV平台。

1.NFV简介

传统网络的网络设备(如基带处理设备、路由交换机、负载均衡设备等)通常基于专用硬件实现,网络功能与专用硬件耦合度较高。未来用户需求将更加多样化和差异化,网络需要根据不同的用户需求,如时延、可靠性等,提供不同的网络性能,而传统网络功能与专用硬件紧耦合的特点造成了诸多限制,主要包括以下几个方面。

(1)功能迭代更新慢

将新功能引入网络设备时,需重新设计实现相关网元,然后通过命令行、网管系统等方式手动地更新网络功能模块,这些方式难度高、耗时长,难以适配快速变化的功能需求[20]

(2)业务拓展受硬件制约

网络设备在部署之初即分配了固定的硬件资源,网络设备所能承载的业务量受限于部署的硬件资源大小。当业务量超过一定规模(例如,交换机存储的路由路径或标签的数量超过了存储资源的上限)后,仅能通过人工更换硬件资源(如CPU、硬盘)的方式保障业务的服务质量,可能导致短期内网络设备无法快速响应业务需求。

(3)硬件资源的过量配置

由于业务存在明显的时空差异,网络难以预测业务需求[21]。因此,通常情况下,在网络建成之初,需要过量配置硬件资源,保证网络所能支撑的业务量超过业务量峰值。当业务量较低时,过量的硬件资源配置将导致硬件资源浪费,提高了网络运营的成本。

(4)封闭的网络生态

网络设备在完全标准化前,各个厂商通常采用独有的网络功能设计实现方法。例如,不同厂商的网络设备接口采用不同的数据传输协议,导致不同厂商的网络设备封闭程度高,相互之间不具备互操作性[20]

可见,传统软硬件紧耦合的网络设备和功能限制了网络可扩展性,增加了网络部署成本,降低了网络运维效率,亟须发展新的技术以消除上述局限性。

近年来,NFV技术快速发展。NFV可以实现软件与硬件的解耦,将具备特定网络功能的软件搭载在通用硬件上,便于网络的功能升级,降低部署成本,提高运维效率。根据欧洲电信标准组织(European Telecommunications Standards Institute, ETSI)的定义,NFV旨在使用通用的、标准的高性能服务器、交换机和存储设备构建网络节点,使网络功能可以基于软件实现部署和升级,无须更换新的网络设备,从而改变网络演进的方式[22]

相比于传统的网络功能与硬件设备紧耦合的方式,NFV能够在通用的硬件资源上实现多样化的网络功能,实现了软件功能与硬件设备的解耦,使得网络设备开发商可以将更多的精力放在软件功能的开发上,无须过多关注软件和硬件的耦合,为网络功能的灵活扩展提供了便利。

网络采用NFV可以实现开放系统互连(Open System Interconnection,OSI)模型中各层的网络功能,例如,NFV 可用于实现用户服务功能(如防火墙、流量检查、入侵检测等)、虚拟化核心网关功能(如防火墙、性能增强代理、调度、网络地址转换、媒体转码等)和无线前端功能(如调制和编码)等[23]。但对于运行速度、能耗效率要求较高的网络功能,FPGA 等专用硬件相比于 NFV更有优势。

2.NFV架构

为了将NFV标准化,ETSI定义了统一的NFV架构,NFV架构主要包含网络功能虚拟化设施(Network Function Virtualization Infrastructure,NFVI)、虚拟化网络功能(Virtualized Network Function,VNF)和管理与编排(Management and Orchestration,MANO)3个部分[24]。ETSI定义的NFV架构如图2-1所示。

其中,NFVI 由硬件(如计算硬件、存储硬件和网络硬件)资源以及对硬件资源进行抽象和虚拟化的虚拟化层(如管理程序(Hypervisor)等)组成,负责将硬件资源转化为 VNF 所必需的虚拟资源(如虚拟计算、虚拟存储和虚拟网络)。

VNF能够在NFVI上运行,并且完全基于软件部署,而不依赖硬件。VNF是对网络功能的虚拟化实现,并且可以根据需要对其进行解构和聚合,例如,将一个VNF拆分成多个子VNF,或者将多个子VNF聚合为一个VNF。此外,VNF管理系统可以管理和控制多个VNF,从而形成一个软硬件解耦的网络节点。

MANO主要负责NFVI和VNF的编排和生命周期管理,并与运营商的业务和运营支撑系统进行交互,以帮助运营商维护虚拟化资源。

图2-1 ETSI定义的NFV架构

3.NFV平台

参考ETSI定义的NFV架构,业界开发了VMware、基于内核的虚拟机(KVM)等基于虚拟机的NFV平台,以及基于Docker的轻量化NFV平台等,并广泛应用于实际网络的功能部署。

(1)基于虚拟机的NFV平台

基于虚拟机的NFV平台使用虚拟化层(如Hypervisor)管理虚拟机,每个虚拟机都有自己的操作系统、应用程序和支撑文件。为了保证不同网络功能之间的隔离, NFV平台每运行1个网络功能都需要启动1台虚拟机,不同的网络功能在不同的虚拟机中运行[25]。然而,NFV平台的每台虚拟机都需要配备操作系统,即便网络功能只占用1 MB的内存空间,虚拟机也需要为网络功能配置数百MB的内存空间来用于操作系统的安装[26]。因此,基于虚拟机的 NFV 平台通常需要消耗大量的计算、存储资源,难以用于网络资源受限的场景。

(2)基于Docker的NFV平台

考虑虚拟机对计算、存储的过度占用主要源于操作系统级的资源隔离方式,虚拟化引擎Docker提供了进程级的资源隔离方案,通过减少操作系统的资源占用来实现虚拟化平台的轻量化[27]

容器、镜像和镜像仓库是 Docker 的关键构成元素,同时也是实现进程级隔离的基础。容器是网络功能运行的环境,容器之间相互隔离,通过在不同的容器中部署不同的网络功能可以实现网络功能之间的隔离。区别于每台虚拟机都需要单独配置操作系统,不同的容器可以共享宿主机的操作系统,从而减少操作系统带来的额外的计算资源消耗。例如,能支持数十个虚拟机的宿主机,在相同的资源条件下可支持数百个容器。镜像是一组只读文件,提供容器创建、运行、管理及维护所需的程序、库、资源以及配置参数。在创建完成后,镜像不可根据容器的需求进行修改,因此,Docker在云端创建的镜像仓库,用来集中存放用于不同网络(如核心网、接入网)的镜像文件。用户可以根据本地需求从云端下载对应的镜像文件,也可以将本地创建的镜像文件上传到镜像仓库中进行保存,以供自己或他人下载并使用。作为容器创建的模板,一个镜像上可以创建多个容器实例。通常一个镜像文件的大小只有数十MB,便于在网络节点上存储和传输[26]。虚拟机与Docker的对比如图2-2所示。

图2-2 虚拟机与Docker的对比

作为一种轻量化的虚拟化平台解决方案,Docker的优势在于采用了进程级的资源隔离,减少了操作系统对计算资源、存储资源的占用,在相同的硬件能力下可以运行更多的网络功能实例,提高了网络节点资源的利用率。同时,由于不需要额外启动操作系统,Docker的启动速度可以达到秒级,相较于虚拟机分钟级的启动速度有了明显的提升。此外,Docker支持对镜像文件和基于镜像文件创建的多组容器进行打包,以便将其迁移到其他网络节点进行部署。