NFV技术的起源和概念

在移动互联网时代,运营商面临内外困局。就自身而言,采用的流量增长—网络扩容—收入增长的商业模型正在失效,庞大、僵化的电信基础网络,不能够满足用户的丰富需求;就竞争对手而言,互联网企业以天为计的业务迭代时间,能够很好地贴合用户需求,飞速发展的OTT业务,使运营商越来越趋向于管道工的角色。

随着云计算普及和x86服务器性能提高,各大运营商为了避免进一步成为哑管道的尴尬,由全球各大运营商牵头提出网络功能虚拟化技术(Network Function Virtualization,NFV)。NFV的思路是通过虚拟化技术降低成本,实现业务的灵活配置。对运营商来说,NFV是一次改变困局、实现跨越发展的难得机遇,一方面可以降低CAPEX和OPEX成本,降低整体的TCO;另一方面也可以加速新产品推出和业务创新。

所谓的网络功能虚拟化就是利用IT虚拟化技术将现有网络设备功能整合进标准x86服务器、存储和网络数通设备,以软件的形式实现网络功能,以此取代目前网络中私有、专有和封闭的网元设备。NFV网络功能示意图如下所示:

维基百科对NFV的定义是:NFV是一种网络架构概念,给予IT虚拟化技术将网络功能节点虚拟化为可以链接在一起提供通信服务的功能模块。

OpenStack基金会对NFV的定义是:通过软件和自动化替代专用网络设备来定义、创建和管理网络功能的新方式。

ETSI NFV标准化组织对NFV的定义是:NFV致力于改变网络运营商构建网络的方式,通过IT虚拟化技术将各种网元变成独立的应用,可以灵活部署在基于标准服务器、存储、交换机构建的统一平台上,实现在数据中心、网络节点和用户端等各个位置的部署与配置。

NFV并非只是简单地在设备中部署虚拟机,其重要特征在于引入虚拟化层之后,虚拟功能网元与硬件完全解耦,改变了电信领域软件、硬件绑定的设备提供模式。打破了传统电信设备的竖井式体系,其核心是网元的分层解耦和引入新的MANO管理体系实现全生命周期管理。

NFV的组织

NFV的工作开展涉及标准化和开源两条线,需要多组织的协作,促进NFV技术架构的成熟。其中,标准化线中3GPP SA5、TMF等组织负责NFV流程与接口的设计,ETSI NFV ISG以及ITU-T等组织负责NFV的需求和框架,并为流程和接口提供管理功能。而开源线中包括开源集成软件NFV开放平台项目(OPNFV,Open Platform for NFV)以及相应的开源组件(OpenStack,KVM,OVS等)。

标准化线条

  • ETSI:在2012年,由全球13家网络运营商(AT&T、BT、Century Link、中国移动、Colt、Deutsche、Telecom、KDDI、NTT、Orange、Telecom Italia、Telefonica、Telstra、Verizon)提出NFV的目标与行动计划,并主要负责NFV接口参考点定义、流程、需求和信元定义。
  • 3GPP:在2013年Rel-13中也开始关注NFV移动网络虚拟化的研究,其主要负责NFV技术在5G业务和市场的应用。
  • DMTF:2015年开始将自身研究与NFV工作结合,开始支持NFVD需求,支持VNF的管理和网络管理。
  • CCSA:国内主导NFV技术的组织,主要负责承载网、核心网、接入网等网络功能虚拟化技术研究,编排和接口功能需求以及虚拟化管理技术研究。

开源线条

  • OPNFV:2014年,由AT&T、NTT、中国移动、RedHat、爱立信等厂商发起OPNFV开源社区,目的是为NFV提供一个统一的开源基础平台,集成OpenStack、OpenDaylight、OVS、ceph等上游社区的成果,推动上游社区加速接纳NFV架构。
  • OPEN-O:2016年,由华为与Linux基金会、中国移动共同举办OPEN-O新闻发布会,携手中国电信、韩国电信、爱立信、因特尔、RedHat、F5等15家产业领导者发起全球首个统一SDN和NFV开源协同器OPEN-O,主要负责NFV的管理和编排方面的研究。

NFV的技术基础

NFV的目标是降低运营商成本的同事提供服务的灵活性和资源的利用率。近几年,标准服务器技术、虚拟化技术、云计算、SDN、开源项目的发展都推动了NFV技术产生和应用。

1、标准服务器

移动通信网络是一个“标准先行”的网络。在传统网络下,由于所有的网络流程、协议信元都经过深入讨论形成标准之后,各设备厂商才设计产品、实现功能。因此,不同的硬件根据实现的功能不同其设计标准、布局和元器件选择等均不相同,不同硬件之间无法兼容替换。同时,由于移动通信协议是固定的,厂商产品所处理的内容不会超过协议定义的范围,一般采用专有芯片来处理完成。因此,这类硬件无法承担较复杂的计算任务,虽然性能优越,但部署成本较高。如下图所示两种专有硬件设计:

在网络功能虚拟化技术中,行业标准服务器的使用是一个关键,不仅软硬件兼容可替换,且供应商市场充分竞争。近几年,x86、ARM架构的快速发展,使得服务器平台多CPU、多核、多线程技术非常成熟。同时,随着SR-I 大专栏  2019-04-18-NFV基础概念OV网卡的广泛应用,DPDK技术的开源化,使得通用芯片的计算能力,通用网卡的转发能力也越来越强(已经达到40Gbit/s等)。

2、虚拟化技术

在计算机科学中,虚拟化技术是一种资源管理技术,将物理资源抽象,提供给用户使用,打破物理资源的实现方式、地理位置、封装等限制。不仅提高了资源的最优化利用,而且还可实现资源的负载均衡、节能减排和自愈等功能。主要涉及计算虚拟化、存储虚拟化和网络虚拟化三大领域虚拟化技术。

在虚拟化技术实现中,Hypervisor是所有虚拟化技术实现的核心,它是运行基础服务器和操作系统之间的中间层软件,如VMware的ESX。通过它,多个操作系统和应用程序可以共享硬件资源,协调和管理服务器上所有物理设备和虚拟机,因此,也称为虚拟机监视器VMM(Virttual Machine Monitor)。主流的Hypervisor有VMware vSphere、Hyper-V、XenServer、PowerVM、KVM、FusionCompute等。

3、云计算

目前,云计算没有一个统一的定义。维基百科的定义是:云计算是一种基于互联网的计算方式,通过这种方式,共享软硬件资源和信息可以按需提供为计算机和其它设备。云计算的核心思想是将大量用网络连接的计算资源统一管理和调度,构成一个计算资源池向用户按需服务。提供资源的网络就称为“云”。

云计算提供三种服务模式,分为基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。网络功能虚拟化NFV主要用于电信网络领域,因此也被称为电信网络云化实现,简称电信云。既然是“云”,那就必然离不开云计算的三种服务模式。在NFV的网路架构中,VIM/NFVI是真正的与“云”有关联的部分,其对应云计算三种服务模式的IaaS。而NFV的VNFM和NFVO部分其本质只是“云”上的APP应用。

云计算部分详见《云计算的技术架构》。

提到云计算必然要提及OpenStack,这一个开源云操作系统从诞生起,社区活跃度就非常高。目前,除了Amazon、微软外,几乎所有的私有云和公有云解决方案都是基于开源OpenStack的改造和增强版。那么NFV,也就是电信云的VIM+NFVI是否也可以采用OpenStack?从NFV的技术特点和应用场景来看,其对OpenStack有三点基本诉求:

1、业务面的高性能要求:涉及虚拟机性能和网络转发性能两个方面。

2、高可用和高可靠性要求:涉及控制平面、业务平面和存储平面三个方面。

3、易运维要求:涉及云化电信网络统一管理、统一调度、自动化运维等方面。

为此,为了适用NFV,OpenStack需要在业务平面进行相应增强,具体如下图所示:

上述增强技术主要涉及VIM层面和OpenStack+KVM的场景,主要改变在Nova和Neutron中,本质上是对虚拟化性能优化技术的充分利用。

4、SDN

网络设备一般由控制平面和数据平面组成。控制平面为数据平面制定转发策略,规划转发路径,如路由协议、网关协议等。数据平面则是执行控制平面策略的实体,包括数据的封装/解封装、查找转发表等。目前,设备的控制面和转发面都是由设备厂商自行设计和开发,不同厂家实现的方式不尽相同。并且,软件化的网络控制面功能被固化在设备中,使设备使用者没有任何控制网络的能力。这种控制平面和数据平面紧耦合的方式带来了网络管理复杂、网络测试繁杂、网络功能上线周期漫长等问题。因而,软件定义网络应运而生。

SDN技术是软件定义网络,本质是把网络软件化,提高网络可编程能力和易修改性。SDN没有改变网络的功能,而是重构了网络的架构。SDN的价值在于:网络业务自动化和网络自治,更快部署网络业务实例。更快在网络中增加新业务,大量需求仅需要升级控制器软件就可以实现。同时,简化了网络协议,大量网络业务协议逐渐消失,用户的策略处理集中在控制器实现。通过集中控制,对网络资源进行统筹调度和深度挖掘,提高网络资源利用率,接入更多业务,从垂直整合走向水平整合,使得芯片、设备、控制器各层可以独立分层充分竞争。

NFV没有改变设备的功能,而是改变了设备的形态。NFV的本质是把专用硬件设备变成一个通用软件设备,共享硬件基础设施。NFV的价值在于:软件设备的发行安装速度远比硬件设备快,容量伸缩更快,避免硬件采购安装的长周期,可按需实时扩容。实现新需求新业务更快,避免了硬件的冗长开发周期。同时,简化了设备形态,统一了底层硬件资源,都是服务器和交换机。采用通用服务器作为和交换机作为基础设施,大大降低设备成本。水平整合改变了原来的竞争格局,各个层次可以分层竞争。

SDN与NFV有什么关系?NFV的软件设备(统称VNF)快速部署以及VNF之间网络快速建立,需要支持网络自动化和虚拟化能力,这需要SDN网络提供支持。在SDN网络情况下的一些网络诉求,比如能够快速提供虚拟网络,快速部署增值业务处理设备和网络设备等这些快速业务上线需求,需要NFV的软件网络设备(FW、vRouter)才能达成目的。

所以,SDN是面向网络的,SDN没有改变网络的功能,而是重构了网络的架构。NFV是面向设备的,NFV没有改变设备的功能,而是改变设备的形态。

2019-04-18-NFV基础概念的更多相关文章

  1. 2019.04.13 python基础

    第一节    主要讲python背景  没什么要注意的  了解记住概念就好 python官网  python.org  自带shell  可以运行python代码 在IDLE中怎么运行代码 新建文本  ...

  2. 2019.04.16 python基础50

    第五十一节  pycharm安装 https://www.jetbrains.com/pycharm/download/#section=windows 这是另一个叫jetbrains公司开发的 默认 ...

  3. 2019.04.18 第六次训练 【2018-2019 ACM-ICPC, NEERC, Southern Subregional Contest, Qualification Stage】

    题目链接: https://codeforces.com/gym/101911 又补了set的一个知识点,erase(it)之后it这个地址就不存在了,再引用的话就会RE A: ✅ B:  ✅ C: ...

  4. 2019.04.18 读书笔记 深入string

    整个.net中,最特殊的就是string类型了,它有着引用类型的特性,又有着值类型的操作方式,最特殊的是,它还有字符串池,一个字符串只会有一个实例(等下就推翻!). 鉴于之前的<==与Equal ...

  5. linux设备驱动归纳总结(二):模块的相关基础概念【转】

    本文转载自:http://blog.chinaunix.net/uid-25014876-id-59415.html linux设备驱动归纳总结(二):模块的相关基础概念 系统平台:Ubuntu 10 ...

  6. Docker:学习笔记(1)——基础概念

    Docker:学习笔记(1)——基础概念 Docker是什么 软件开发后,我们需要在测试电脑.客户电脑.服务器安装运行,用户计算机的环境各不相同,所以需要进行各自的环境配置,耗时耗力.为了解决这个问题 ...

  7. 【Linux开发】linux设备驱动归纳总结(二):模块的相关基础概念

    linux设备驱动归纳总结(二):模块的相关基础概念 系统平台:Ubuntu 10.04 开发平台:S3C2440开发板 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...

  8. 计算机系统4-> 计组与体系结构1 | 基础概念介绍

    在大二上学期学习数字逻辑的过程中,我对计算机如何运作产生了兴趣,因此开了这个系列来记录自己在这方面的学习过程,此前三篇分别是: 计算机系统->Hello World的一生 | 程序如何运行,从大 ...

  9. ELK&ElasticSearch5.1基础概念及配置文件详解【转】

    1. 配置文件 elasticsearch/elasticsearch.yml 主配置文件 elasticsearch/jvm.options jvm参数配置文件 elasticsearch/log4 ...

  10. Docker 基础概念科普 和 常用操作介绍

    Docker 基础概念 Docker是什么?         Docker的思想来自于集装箱,集装箱解决了:在一艘大船上,可以把货物规整的摆放起来.并且各种各样的货物被集装箱标准化了,集装箱和集装箱之 ...

随机推荐

  1. c#学习笔记01——引用&类

    数据类型 值类型 bool 布尔值 True 或 False False byte 8 位无符号整数 0 到 255 0 char 16 位 Unicode 字符 U +0000 到 U +ffff ...

  2. 在后端C#中 call web api

    我们要想使用web api, 需要首先在azure 中创建application. (如何创建application可以参考我的另一篇blog 从O365中获取users到D365中 ) Get 我们 ...

  3. 元组(tuple)的用途(基础)

    >>>a = 123,456,'jia',['jia','xiang'] >>>a (123, 456, 'jia', ['jia', 'xiang']) 这个带括 ...

  4. Django中间件-跨站请求伪造-django请求生命周期-Auth模块-seettings实现可插拔配置(设计思想)

    Django中间件 一.什么是中间件 django中间件就是类似于django的保安;请求来的时候需要先经过中间件,才能到达django后端(url,views,models,templates), ...

  5. Codeforces 1288A - Deadline

    题目大意: Adilbek有一个特殊项目,他需要运行这个项目得到结果. 但是这个项目直接运行需要消耗d天时间. 他也可以选择优化程序以减少程序运行消耗时间. 假设他用了x天优化程序,那么最后运行程序只 ...

  6. [LC] 350. Intersection of Two Arrays II

    Given two arrays, write a function to compute their intersection. Example 1: Input: nums1 = [1,2,2,1 ...

  7. 吴裕雄--天生自然python学习笔记:python 用 Open CV抓取摄像头视频图像

    Open CV 除了可以读取.显示静态图片外 , 还可 以加载及播放动态影片, 以 及 读取内置或外接摄像头的图像信息 . 很多笔记本电脑都具有摄像头 , OpenCV 可通过 VideoC aptu ...

  8. LeetCode No.127,128,129

    No.127 LadderLength 单词接龙 题目 给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度.转换需遵 ...

  9. sql语句查询去除重复语句的结果集

    返回operation表中time列的唯一值 语句1 select  time  from  operation   group  by  time   having count(time) > ...

  10. Python的lambda学习

    lambda可以简化简单循环,如下: def fc1(x): return x + 10 print "fc1(23) = ", fc1(23) y = lambda x: x+1 ...