本文部分内容来源于《现代网络技术:SDN,NFV,QoE、物联网和云计算:SDN,NFV,QoE,IoT,andcloud》
NFV基础设施
NFV体系结构的核心是资源与功能集合,也为称为NFV基础设施(NFVI)。NFVI包括以下三个域:
- 计算域:提供商用的大容量服务器和存储设备。
- 管理程序域:将计算域中的资源居中调配给软件设施中的虚拟机,从而提供对硬件的抽象。
- 基础设施网络域(IND):由所有通用大容量交换机构成的互连网络,能配置为提供基础设施网络服务。
容器接口
在讨论 NFVI(网络功能虚拟化基础设施)之前,首先介绍了容器接口的概念。容器接口指的是容器内各个模块之间的交互界面。在 NFV 中,容器接口的作用是使不同的虚拟化模块(如 VNF)能够在虚拟化环境中互相通信和协作。
ETSI(欧洲电信标准化协会)提供了 NFV 的标准。图中的架构展示了 NFV 系统的各个组成部分,以及它们之间的接口关系。图中详细描述了如何通过 NFVI 环境来支持虚拟化网络功能(VNF)的运行。NFVI 提供了虚拟化所需的计算、存储和网络资源,而 VNF 作为虚拟化的网络功能模块运行在这些资源上。
VNF 是网络功能虚拟化中的核心组成部分,代表了传统网络硬件功能的虚拟化版本,例如防火墙、负载均衡器等。这些网络功能在虚拟机或容器中运行,并通过特定的接口与 NFVI 和其他 VNF 进行通信。VNF 的功能和性能依赖于它与 NFVI 基础设施的连接和接口。
NFVI容器的部署
NFVI (Network Functions Virtualization Infrastructure),为虚拟网络功能(VNF)提供了支持平台。每个虚拟机(VM)可以承载一个 VNF,而一个 VNF 可能由多个 VNFC(虚拟网络功能组件)组成。VNFC 是一个 VNF 的子模块或组件,主要承担特定的网络功能。图示中显示了如何在同一计算节点上部署多个虚拟化组件。
计算节点(计算资源)承载多个 VNFC。每个 VNFC 可以是一个独立的虚拟化组件,执行特定的网络功能。它们通过 计算容器接口 进行管理和控制。在图 8-3a 中,展示了一个计算节点上有多个 VNFC 部署的情况。每个计算节点通过容器接口与其他组件连接,确保数据和控制信号的流动。
一个 VNF 可能由多个 VNFC 组成,并且这些 VNFC 可能分布在多个计算平台上。它们不一定都在同一台物理服务器上运行,可以通过虚拟化技术在不同的物理服务器或计算节点上进行分布式部署。
图 8-3b 中展示了一个 VNF 如何通过多个 VNFC 分布到不同的计算平台上。各个 VNFC 通过网络连接与其他组件和服务器进行交互,以确保整个 VNF 功能的正常运行。
NFVI域的逻辑结构
ISGNFV的标准文档展示出NFVI域的逻辑结构及其互连方式,而该结构中各个单元的具体实现细节则会以开源和私有的方式不断演化。NFVI域的逻辑结构提供了开发框架,并对主要组件之间的接口进行了标识,图8-4显示了该框架及各个接口。
计算域
计算域是支持 VNF 执行的关键基础设施。它不仅为 VNF 提供必要的计算、存储和网络资源,还确保 VNF 能够在虚拟化环境中高效运行。计算域的管理通常通过 VIM(虚拟化基础设施管理器) 完成,它负责计算资源的分配和调度。一个典型的计算域通常包括以下几个关键元素:
- CPU/内存:用于执行 VNF(虚拟网络功能)代码,提供必要的计算资源。
- 内部存储器:包括处理器内部的存储,通常是快速的、可用于 VNF 数据处理的存储,比如缓存或内存。
- 外部存储器及存储控制器:提供辅助存储设备,确保数据的持久化存储。这些设备用于存储 VNF 运行过程中产生的数据或持久性文件。
- 网络卡(NIC):用于与基础设施网络相连的物理接口。它为计算域提供与外部网络的通信能力。
- 控制和管理代理:负责管理计算域内部资源、监控 VNF 的状态,并与管理系统进行通信,以确保 VNF 的正常运行。
- eswitch:在计算平台中实现虚拟化功能,作为网络交换机,支持计算域中的虚拟机和 VNF 组件的网络连接。
- 计算/存储执行环境:提供计算或存储资源,供管理软件或 VNF 运行所需的执行环境。
在NFV等虚拟环境中,所有VNF网络流量都会通过管理程序域中的虚拟交换机,该虚拟交换机会调用位于虚拟 VNF软件和主机联网硬件之间的软件层,它会带来较大的性能衰退。eswitch的目的是绕过虚拟化软件而为VNF提供一个到网卡的直接内存访问(DMA)路径,因此,它在不产生额外处理器开销的前提下,它加快了分组的处理速度。
管理程序域
管理程序域是一个将硬件抽象出来,并实现诸如虚拟机开启和关闭、按某种策略执行、改变规模、实时迁移、高可用性等服务的软件环境。管理程序域主要包括以下单元:
-
计算 / 存储资源共享与管理:管理这些计算/存储资源,并为虚拟机提供这些虚拟资源的访问。
-
网络资源共享与管理:管理这些网络资源,并为虚拟机提供这些虚拟资源的访问。
-
虚拟机管理与 API:为单个VNFC实例提供执行环境。
-
控制与管理代理:提供到虚拟化基础设施管理器(VIM)的连接。
-
vswitch:在管理程序域实现的虚拟交换机功能,从功能上来说,它是构成基础设施网络域不可或缺的部分。
vswitch是由管理程序实现的以太网交换机,它将虚拟机的虚拟网卡和计算结点的网卡进行了互连。如果两个VNF位于相同的物理主机上,它们会通过相同的vswitch互连,而如果两个 VNF位于不同的物理主机上,它们之间的连接会通过第一个 vswtich 到达网卡,然后再连到外部交换机上。而这个外部交换机会将数据转发到目的主机的网卡上。最后,目的主机的网卡会将数据转发到它的内部vswitch上,并到达目的VNF。
基础设施网络域
基础设施网络域(IND)是 NFV 系统中的一个重要组成部分,承担着多个任务,具体包括:
- 为每个 VNF 提供通信信道:确保虚拟网络功能(VNF)之间可以互相通信。
- 为不同的 VNF 之间提供通信信道,保证它们能够在基础设施网络中顺利交互。
- 管理计算、存储和网络资源的调度和分配:基础设施网络域负责协调所有计算、存储和网络资源,确保虚拟化的 VNF 和其组件能够高效运行。
首先,需要了解虚拟网络(virtualnetwork)这一术语。在通常情况下,虚拟网络是更高的软件层对物理网络资源的抽象,虚拟网络技术使得网络运营商能够支持多个虚拟网络,而且这些虚拟网络之间是相互隔离的。
虚拟网络的用户不需要了解底层物理网络的细节,也不需要知道共享这些物理网络资源的其他虚拟网络的流量。两种创建虚拟网络的通用方法分别是:(1)基于协议的方法,该方法根据协议首部的字段来定义虚拟网络。(2)基于虚拟机的方法,在该方法中,管理程序创建一组虚拟机并构成一个虚拟网络。NFVI网络虚拟化结合了这两种方法。
根据虚拟网络是在二层(Layer2,L2)的局域网媒体访问控制(MAC)层还是在三层(Layer3,L3)的IP层进行定义,可以将基于协议的虚拟网络协议划分为两类。对于二层的虚拟网络,虚拟局域网通过MAC层首部的字段进行区分,比如MAC地址或虚拟局域网号。
举个数据中心的例子,所有连接到同一个以太网交换机的服务器和端系统都支持虚拟局域网。现在假设有一台IP路由器在数据中心中连接了两个不同的网段,如图8-5所示。正常情况下,IP路由器都会移除到达的以太网帧的MAC首部,并增加一个新的MAC首部,然后将其转发到下一个网络中。只要在路由器上增加额外的功能来支持二层虚拟网络,比如路由器能对离开的MAC帧重新插入虚拟局域网号,就能扩大二层虚拟网络的规模并跨越这个路由器。类似地,如果一个公司有两个通过路由器和专线互连的数据中心,那么路由器通过利用二层虚拟网络的功能就能扩大虚拟网络的规模。
三层虚拟网络利用了卫P首部中的一个或多个字段。一个典型的例子就是虚拟专用网virtual private network,VPN),它采用了IPsec技术。VPN中传输的分组会在P首部外封装一层新的首部,而且数据也会被加密,从而保证VPN的数据在因特网等第三方网络上传输时的隔离性和安全性。
ISG NFV将虚拟网络定义为NFVI上为一个或多个VNF提供网络连接的网络结构,因此,虚拟网络的概念超出了NFV基础设施的范畴,目前也尚未得到解决。在NFV中,虚拟网络就是 VNF 之间的网络。网络域文档提出了三种提供虚拟网络服务的方法:
- 基于基础设施的虚拟网络。
- 采用了虚拟覆盖网的分层虚拟网络。
- 采用了虚拟分区的分层虚拟网络。
一个具体的虚拟网络可以采用其中的某种方法实现,也可以采用多种方法相结合的方式实现。
基于基础设施的虚拟网络利用了NFVI计算与网络组件固有的联网功能,其中对地址空间进行分区以保证虚拟网络中的VNF组可以通过IP地址来定义。IND文档给出了以下几种基于三层基础设施虚拟网络的例子:
- 每个 VNF 都分配了唯一的I地址,并且这些地址不能与 NFVI中其他单元的地址重叠。
- 通过在每个计算结点的第三层转发功能中对访问控制列表进行管理,从而实现VNF到虚拟机的逻辑分离。
- VNF和物理设施之间的第三层转发可以根据位于计算结点上的第三层转发信息库来处理。
- 边界网关协议(BGP)等控制平面协议可以用于通告计算主机之间的VNF可达性。
其他两种方法称为分层的虚拟网络方法(layered virtual network approach),而这两种方法允许地址空间重叠,也就是说一个VNF可以使用相同的IP地址加人一个或多个虚拟网络中。IND(基础设施网络域)的虚拟化层实际上使用虚拟覆盖网或虚拟分区技术在底层的NFVI网络架构中创建了私有的拓扑。
基于虚拟覆盖网的虚拟网络(virtua overlay VN)使用了覆盖网络的概念。覆盖网络本质上是一层建立在其他网络之上的逻辑网络。可以认为覆盖网中的结点是通过虚拟链路或逻辑链路相连的,而每一条链路都对应着一条在底层网络可能由若干条物理链路组成的路径但是,覆盖网不具备控制两个覆盖网络结点之间路由选择的能力。
在NFV环境中,覆盖网是供VNF所使用的虚拟网络,底层网络则由基础设施网络资源构成。这些覆盖网通常由边界结点创建,而这些结点有双重身份,分别参与虚拟网络的构建和扮演基础设施网络资源的角色。相比之下,基础设施网络中的核心结点只参与基础设施网络,而且并不知道覆盖网的存在。前面介绍的二层和三层虚拟网络适用于这一类虚拟网络。
基于虚拟分区的虚拟网络则在端到端的基础上直接将虚拟机集成为基础设施网络,这里的虚拟机也称作虚拟网络分区。在基础设施网络的边界结点和核心结点之上同时有许多相互独立的虚拟拓扑,每个拓扑都对应着一个虚拟网络,这里的虚拟网络在端到端的基础上,由跨基础设施网络的虚拟网络转发表、逻辑链路以及控制平面构成。
虚拟网络功能
虚拟网络功能是传统网络功能的虚拟化实现。
NFV接口
VNF由一个或多个VNF组件(VNFC)组成,而这些VNFC会在内部连接到 VNF,这种内部结构对其他 VNF 以及 VNF 用户是不可见的。
- SWA-1:该接口实现了VNF与其他 VNF、PNF以及端结点之间的通信,需要注意的是,这个接口将VNF视作一个整体,而不是单独的VNFC。SWA-1接口是逻辑接口,它利用了SWA-5 接口所提供的网络连通性服务。
- SWA-2:该接口实现了VNF内VNFC之间的通信,它由厂商自己定义,因此不存在标准化的问题。该接口也可以利用SWA-5接口提供的网络连通性服务,但是如果某个VNF的两个VNFC位于相同的主机上,还可以采用其他技术来减少时延,增加吞吐量,这些在后面会具体介绍。
- SWA-3:该接口是到位于NFV管理与编排模块内的VNF管理器的接口,VNF管理器负责生命周期管理(包括创建、调整、终止等)。该接口通常利用IP以网络连接的方式实现。
- SWA-4:该接口用于单元管理器对VNF 的运行时管理。
- SWA-5:该接口描述了一个 VNF可部署实例的执行环境,每个 VNFC对应着一个与虚拟机相连的虚拟容器接口。
VNFC通信
前文提到,就拥有多个VNFC的VNF来说,其内部结构对外是不可知的,VNF以一个单独的功能系统在网络中呈现。但是,一个VNF或位于一台主机的多个VNF的VNFC内部连接需要由 VNF提供商具体实现,由NFVI提供底层支持,由VNF管理进行管理。VNF体系结构文档描述了一些体系结构设计模型,它们计划用于提供想要的性能和服务质量(quality of service,QoS),例如存储或计算资源的访问。这些设计模型一个最重要的方面就是VNFC间的通信。
上图描述了六种通信方式。
通过硬件交换机通信。在这种情况下,虚拟机支持VNFC绕过管理程序直接访问物理网卡,这种方式提高了位于不同物理主机的 VNFC 间通信的性能。
通过管理程序中的虚拟交换机来通信。这是位于相同位置VNFC之间的基本通信方法,但是这种方法无法保证某些 VNF所需的QoS或性能。
利用合适的且与CPU兼容的数据处理加速库和驱动。一个商用产品的例子是数据平面开发包(DPDK),它包含一组数据平面库和网卡控制器驱动,能够在英特尔架构的平台上实现快速分组处理。
通过部署在带有单根输入/输出虚拟化(SR-IOV)网卡中的内嵌交换机(eswitch)通信。SR-IOV是一种PCI-SIG规范,它定义了将一个设备分成多个PCI express请求者ID(虚拟功能)的方法,该方法允许输入/输出内存管理单元(MMU)区分不同的数据流,并应用内存和中断转换,从而使这些数据流能被传输到相应的虚拟机上,并防止那些非特权数据流影响其他虚拟机。
部署在带有SR-IOV的网卡中的内嵌交换机,同时VNFC中也部署了数据平面加速软件。
一组总线直接将两个有超高负载或超低时延需求的VNFC互连起来。这种方法在本质上采用的是一种输入/输出信道而非网卡来通信。
VNF扩展
VNF的一个重要特性是它的弹性,也即VNF具备扩大或缩小规模(scale up/down)以及扩展或缩小功能(scale out/in)的能力。每个VNF都有自己的弹性参数,具体包括无弹性、只能扩大/缩小规模、只能扩展/缩小功能、既能扩大/缩小规模也能扩展/缩小功能
NFV的管理和编排
NFV管理与编排(MANO)组件的主要功能是对NFV环境进行管理与编排。这项任务非常复杂,如果MANO还需要与现有的运维支持系统(OSS)以及业务支持系统(BSS)进行交互和协作,从而为由物理和虚拟元素构成的网络环境提供管理功能,MANO的工作将会变得更为复杂。
图8-8显示了NFV-MANO及其接口的基本结构,该结构由ETSIMANO文档定义。从图中可以看出,总共有五个管理模块,其中三个在NFV-MANO内部,另外两个分别是与VNF 关联的 EMS以及OSS/BSS,后两个模块不属于MANO,但是它们需要与MANO 交互信息从而对用户的网络环境进行全局性管理。
虚拟基础设施管理器
虚拟基础设施管理器(VIM, Virtualized Infrastructure Manager)负责管理和控制虚拟化资源的配置、调度和监控,以确保虚拟网络功能(VNF)能够在虚拟化基础设施(NFVI)上高效运行。
VNF 和资源管理: VIM 的一个核心功能是管理和控制与 VNF 相关的计算、存储和网络资源。它负责在 NFVI 中分配这些资源,以确保每个 VNF 的需求得到满足。VIM 负责将计算资源、存储空间和网络带宽等资源合理地分配给 VNF,从而支持它们的正常运行。
存储和网络资源管理: VIM 通过控制和管理虚拟存储设备和虚拟网络,确保数据流动顺畅,避免资源浪费。在虚拟环境中,VIM 必须处理虚拟机(VM)和其他资源组件之间的资源调度和分配。
VIM 负责根据 NFV 环境中的需求动态调度资源。例如,当一个 VNF 需要更多计算资源时,VIM 可以从虚拟化基础设施中分配额外的 CPU、内存等资源。VIM 还负责管理虚拟机的生命周期,包括虚拟机的创建、迁移、停止等操作。此外,VIM 还需要监控虚拟资源的健康状况,确保它们能够有效地支持 VNF 的运行。同时负责管理虚拟网络的拓扑结构和流量路由,确保虚拟化网络环境中不同 VNF 之间能够顺利通信。
虚拟网络功能管理器
虚拟网络功能管理器(VNFM, Virtual Network Function Manager)负责 VNF 的实例化,包括 VNF 模块所需的配置(如初始化 IP 地址的配置等)。当一个新的 VNF 被创建时,VNFM 需要进行资源的配置,确保 VNF 可以在虚拟化平台中成功运行。
随着网络功能的发展和需求变化,VNFM 需要定期执行 VNF 实例的更新与升级,确保系统能够支持最新的软件版本和功能。根据网络流量或资源需求,VNFM 需要管理 VNF 的 扩展和缩小,以确保 VNF 功能的灵活性和动态调整,优化资源使用。当 VNF 实例出现故障时,VNFM 负责 自动恢复和修复,确保服务不中断,并尽快恢复 VNF 的正常运行状态。
NFV编排器
NFV 编排器(NFVO, Network Functions Virtualization Orchestrator)主要负责资源和网络服务的编排与管理。
它的核心作用是根据不同的网络需求协调资源和 VNF。NFVO 的工作是通过与 VIM 的接口进行 API 交互来完成的,而不是直接与 NFVI 资源进行通信。
具体来说,NFVO 的任务包括:
- 资源的协调与调度:在不同的 VIM 和 NFVI 资源之间协调,以确保虚拟化网络功能(VNF)能够顺利运行。
- VNF 的管理:通过与 VNFM(虚拟网络功能管理器)协作,管理 VNF 的生命周期,包括创建、扩展、监控等操作。
NFVO 还负责在 VNF 之间创建 端到端服务,即将多个 VNF 组合成一个完整的网络服务。这个过程通过 NFVO 与各个 VNFM 之间的协调来实现。比如,在不同的供应商之间或不同的物理地点之间,NFVO 可以协调 VNF,创建跨厂商或跨网络的服务链路。
示例:比如一个基站的 VNF 需要与另一个厂商的 VNF 进行连接,NFVO 会协调这些 VNF 之间的连接,确保它们能够按照预定的方式进行通信。
仓库
与NFVO相关的是四种信息仓库,这些信息主要用于管理与编排功能。
- 网络服务目录:可用网络服务列表。网络服务目录中存储了可供将来使用的可部署模板,这些模板与 VNF相关,并描述了它们之间虚拟链路的连通性。
- VNF目录:包括所有可用VNF描述符的数据库。VNF描述符(VNFD)描述了VNF的部署和操作行为需求,VNFM在VNF实例化过程中和VNF实例的生命周期管理中会用到它。VNFD提供的信息也可以被VNFO用于管理与编排网络服务以及NFVI的虚拟资源。
- NFV实例:包含网络服务实例和相关VNF实例细节的列表。
- NFVI资源:用于创建NFV服务的VNFI资源列表。
单元管理
单元管理主要负责VNF的故障、配置、计费、性能和安全(FCAPS)管理,这些管理功能同样也是 VNFM的职责。但是相对于VNFM来说,单元管理能够通过与 VNF之间的私有接口来完成这项管理工作。然而,单元管理需要确保它能通过开放的参照点(VeEm-Vnfm)与 VNFM 交互信息。单元管理可能需要感知虚拟化,并与 VNFM协作从而完成这些功能,而这些功能需要交互与 VNF 相关的 VNFI资源信息。
NFV用例
ISG NFV已经部署了一些具有代表性的服务模型和高层用例,这些模型和用例可以通过NFV来解决。这些用例的目的主要是为了推动相关标准和产品的进一步发展,以实现全网级的实现。用例文档标记和描述了第一类服务模型和高层用例,这些模型和用例在NFVISG成员公司的观点来看代表重要的服务模型和NFV应用的初始领域,跨越了NFVISG已解决的技术挑战。
SDN和NFV
SDN和NFV之间的关系可以看作为SDN功能是NFV的推动者。NFV的一大难题是如何更好地让用户配置网络,从而使得运行在服务器上的VNF能连接到网络的合适位置,与其他 VNF之间保持合适的连通性,并得到想要的服务质量。有了SDN,用户和编排软件就能动态配置网络以及 VNF的分发和互联。如果没有SDN,NFV就不得不采用更多人工干预的方式,特别是当超出NFVI范畴的资源也是整个环境一部分的时候。