近日,在第三届未来网络发展大会SDN/NFV技术与应用创新分论坛上,新华三解决方案部架构师孟丹女士发表了主题为《NFV资源池实现中的技术探讨》的主题演讲。

孟丹指出,新华三的NFV核心理念主要分为三个部分:标准、开放、整体交付。标准指的是新华三的方案符合ETSI架构、有编排层、生命周期管理层、云平台层,有NFVI,有VNF网元,有EMS;开放是指层之间是解耦的,网元可以跑在友商的服务器、云平台上,目前多家运营商已经做过解耦测试。整体交付是和单设备交付相对应的,现在交付的是端到端方案。

上图中的可管理是指对NFV网元进行配置管理、生命周期管理、扩缩容管理等控制动作,可呈现是可以端到端展示多层级的资源使用状况,同时还可以对方案中的实体网元一并管理及呈现。

基于上述理念,可构建灵活定义、快速部署、随需调整和高可靠的NFV解决方案。

NFV理念:从运营商到行业的渗透

孟丹表示,早期也有基于X86平台的路由器,但是它不是跑在虚拟化平台之上,也没有NFV关联的网元。后来NFV概念不断明确,形成了一个标准的体系架构。NFV并不局限于网元本身,还包括一套体系,从编排器到VNFM到VIM,从网元到NFVI,在行业领域也开始有了一些延伸,如数据中心方案中的vRouter/vFW/vLB,如uCPE(将X86/ARM CPU中剩余的计算资源管理起来,运行第三方IT APP或CT网元),甚至在园区出口都有可能在一定条件下用NFV网元实现灵活认证。除此之外,编排的概念也在跨场景中得到应用,如园数融合、DC和DCI融合,提供一个统一入口、端到端视图。

下面讨论NFV网元(CT)和VM(IT)的差异,这里的VM是指基于虚拟化平台运行的IT网元,比如你在数据中心云平台之上申请虚机,在其中运行你自己的应用软件。NFV网元和VM两者有相同点,也有不同点。两者最大的共同点都是基于虚拟化环境,受云平台管理,有生命周期管理。

再看不同点,一个是性能需求,一般的VM网元数据需求比较低,普通网卡就可以搞定。NFV网元包括控制类和转发类,控制类的性能要求比较低。而转发类的网元性能要求比较高,一般在5G的网元转发面会选择SRIOV,这就不属于X86的性能了。

第二个差异是网元形态,分为主机型和路由型,VM属于主机型,它基本上就是对外提供服务,一个IP就够了;NFV网元是路由型,它不仅要管自己对外的路由,同时还要管下面网元的发布,因为他本身就是一个CT网元的替代,这样就可以实现把流量牵引过来。

第三个就是NFV网元是支持CT网元特有的VLAN和QINQ的子接口,而IT网元不带VLAN。最后一个是架构,比如在数据中心用IT网元,最顶层就是云平台,云平台是一个总入口。NFV网元总入口不再是云平台,而是总的编排器NFVO,它会调VNMF,然后再调下面的数据,这个地方两者有不少差异。

借鉴IT:NFV资源池化提供统一服务

孟丹指出,NFV网元本身不能跨服务器,虚拟化层就不可能提供这种技术,甚至NFV网元还不能跨NUMA,跨NUMA的内存访问会损耗30%左右的性能。也就是说,单个NFV网元的性能是非常有限的,那怎么解决这个问题呢?这个时候就要借鉴IT资源池的概念,将若干NFV网元集中管理,形成NFV资源池,对外提供统一的服务。另外,运营商在网络重构时会建立多级DC,在部署时按照NFV流量特征和业务特征选择合适的DC承载,比如低延时,大流量的部署位置相对低点的DC,不太在乎延时的、小流量的部署在位置更高一点的DC。

借鉴IT:将数据库引入NFV资源池

NFV池化以后,作为CT网元的一种,必然要考虑可靠性,要考虑当一个NFV网元故障时如何如何保证业务不中断,保证用户体验不到资源池内的故障。这是非常必要的。IT的可靠性和CT不是一个水平的,服务器故障比较常见,一般容易接受,而作为网络的重要组成部分,CT可靠性要求非常高,看下运营商集采就有体会,稳定性测试是非常严格的。原先的CT实体设备是一个独立的、分散的网元,物理位置并不是集中的。而NFV池化物理上会部署在同一DC内NFV池是集中管控的,这时可以将IT资源池中的数据库技术引入进来。

有了数据库多个功能相同的NFV网元可以将数据保存在数据库中,当某一个NFV网元故障时,就能够从数据库中恢复出它的运行数据,保证会话不中断,用户不感知。那为什么不用虚机的热迁移技术呢?原因有两个,一是强依赖于共享存储,成本高,另一个是NFV在使用SRIOV时无法迁移(举例来说,PF直通模式,NFV网元迁移后,虚拟化层没有机制调用NFV网元中的PF驱动,迁移前后网卡的配置信息是不同的,如果不能重新初始化那网卡无法正常运行)。

除了故障热切换,当不同NFV间流量不均衡时,也可以依靠数据库技术在NFV间进行流量调配,比如我们发现某个网元CPU使用率或者用户数已经达到阈值了,而另一个NFV网元比较空闲,这时可以依靠数据库技术把部分用户数据在NFV之间迁移,并且这种调配也是用户无感知的。也就是说,数据库技术在NFV池化中是非常有用的。

借鉴IT:NFV资源池弹性扩缩容

不管是虚机还是容器,弹性扩缩容是一个非常典型的特性,这是虚拟化一个非常明显的优势。流量潮汐是因为设备所处的地理环境是不同而带来的,有的地区是办公楼集中的,白天流量大,夜晚流量减少,有的是生活区,反过来,白天流量小,晚上开始流量增大。用NFV资源池来按需应对就非常有效。先定好弹性策略,流量下降到一定程度就先将剩余用户集中到少量NFV网元上(当然这个过程也是借助数据库的),再缩减NFV网元数目。

这样的好处在于能够降低供电需求,降低散热压力。不过在实际现网中是否使用还是一个值得讨论的问题,网络弹性实际上也意味着不可控,而原来的运营商网络是一个非常明确的系统,但不管怎样,弹性扩缩容提供了一种技术上的可能。

IT资源池中的概念是否要引入到CT?

这部分主要分为三块内容

思考1:NFV资源池部署LB必要性探讨

上图增加了LB负载均衡组件,它的作用是对外屏蔽资源池内部结构。所有外部网络设备只看到LB,并不知道LB后面有多少NFV网元在进行实际的业务处理。

但这里有个问题需要思考一下。CT网元和IT网元是不同的,那么对LB的需求也是不同的。前文提到,NFV转发类网元的性能要求很高,而作为对外统一入出口的LB,其承载的性能压力将是所有NFV南北向流量之和,这远远不是IT资源池中LB所能匹配的。另外,LB作为关键路径,可靠性要求非常高,而为了提供对外统一接口,LB通常采用主备方式部署,如果出现故障,整个NFV资源池都无法再对外提供服务了。

那有没有变通的方式呢?NFV标准架构里最上层是编排器,负责业务的编排,如果能够扩大编排器的范围,将外部网络设备也纳入管控范围,实现端到端管理,那么编排器就有一个全局的视角,在一定程度上可以实现一定粒度的LB。比如编排器直接在配置时对外部网络设备按接口+业务类型直接分配不同的NFV网元,这也实现了负载均衡,只不过是一种静态的、预先规划的负载均衡。这种静态的,再结合NFV间流量调优,也能满足一定场景的需求。

思考2:NFV网元容器化部署必要性探讨

现在云平台不仅提供虚机服务,还可以提供容器服务,给用户更多的选择。那么容器是否适用于NFV网元呢?容器特点之一是轻载,因为它没有操作系统,所以在容器数目负载多的时候,这一部分就可以减少很多服务器的压力。但CT网元和IT网元不一样,同样服务器配置下,NFV网元数目非常少,比IT低一个数量级,尤其转发类NFV网元可能一种CPU只跑一个网元,所以轻载就可能没有那么强的必要性。

容器特点之二是部署速度快,因为它的启动就是直接秒级作用的,非常快。但NFV网元一般启动后就不会关闭,是持续运行的状态,故障倒换时也是预先拉起网元,所以启动时间起到的作用也并不关键。容器最明显的特点就是安全性低,毕竟多容器都是共享同一个HostOS,其中一个容器崩溃如果影响到内核,那么其它容器也必然受到影响,而NFV网元对安全性、隔离性要求是非常高的。

所以是否进行容器化部署还需要探讨,或者采用折衷的方案用虚机+容器来承载NFV网元。

思考3:NFV资源池对云平台的需求

上图中的数据中心方案里,顶层为云平台,用户在云平台上操作,创建网络、子网、端口、Router/VPN/FW/LB,总入口在云平台,VM的生命周期(创建删除)都是由云平台发起的,所以openstack是一个非常完整全面的复杂系统。而在NFV架构里,总入口是编排器,它了解业务,决定NFV生命周期的时机,云平台只是提供北向接口被动响应请求。

孟丹表示,云平台在NFV架构里的地位已经被弱化了,是否相应云平台的功能也不用要求太多?这个问题的提出也是对实际部署问题思考后的结果,每次落地时管理服务器数目的缩减都非常让人头疼,毕竟前期NFV资源池规模小,管理服务器有时候显得太重了,甚至曾经想过能不能VNFM直接对虚拟化层,把云平台这层省略掉,但这样解耦会有问题,所以目前也没有一个可行的方法。

最后,孟丹指出在做NFV资源池的这个方案中,对待IT技术的态度应该是选择性借鉴的,基于低可靠的IT硬件来构建高可靠的CT网络,让方案更合理、更可靠、更有意义。

新华三孟丹:NFV资源池实现中的技术探讨的更多相关文章

  1. 新华三Gen10服务器ilo5中刷新bios固件

    新华三Gen10服务器ilo5中刷新bios固件. 当前bios1.42 已经是最新了. 固件下载后解压缩. 选择刷新固件. 点击浏览.flash文件. 点击flash 点击ok确认 开始上传 刷新进 ...

  2. coreseek实战(三):全文搜索在php中应用(使用api接口)

    coreseek实战(三):全文搜索在php中应用(使用api接口) 这一篇文章开始学习在php页面中通过api接口,使用coreseek全文搜索. 第一步:综合一下前两篇文章,coreseek实战( ...

  3. 三张图彻底了解Java中字符串的不变性

    转载: 三张图彻底了解Java中字符串的不变性 定义一个字符串 String s = "abcd"; s中保存了string对象的引用.下面的箭头可以理解为"存储他的引用 ...

  4. 从视频文件中读入数据-->将数据转换为灰度图-->对图像做canny边缘检测-->将这三个结构显示在一个图像中

    //从视频文件中读入数据-->将数据转换为灰度图-->对图像做canny边缘检测-->将这三个结构显示在一个图像中 //作者:sandy //时间:2015-10-10 #inclu ...

  5. JVM 字节码(三)异常在字节码中的处理(catch 和 throws)

    JVM 字节码(三)异常在字节码中的处理(catch 和 throws) 在 ClassFile 中到底是如何处理异常的呢? 一.代码块异常 catch catch 中的异常代码块在异常是如何处理的呢 ...

  6. 【三分钟视频教程】iOS开发中 Xcode 报 apple-o linker 错误的#解决方案#

      [三分钟视频教程]iOS开发中 Xcode 报 apple-o linker 错误的#解决方案#   同样的道理,指向同一库文件的代码语句如果重复书写,即使重复书写所在的文件名字不同,同样会造成这 ...

  7. Linux Kernel系列三:Kernel编译和链接中的linker script语法详解

    先要讲讲这个问题是怎么来的.(咱们在分析一个技术的时候,先要考虑它是想解决什么问题,或者学习新知识的时候,要清楚这个知识的目的是什么). 我在编译内核的时候,发现arch/arm/kernel目录下有 ...

  8. 三个方法教会你win7中IIS7配置php环境

    三个方法教会你win7中IIS7配置php环境.今天静下心来研究了下在win7中使用IIS7配置php环境,其实很简单!跟下面方法做之前,请先确定你的电脑中未安装其它相关环境程序及服务,之前安装过ap ...

  9. 剑指Offer(三十五):数组中的逆序对

    剑指Offer(三十五):数组中的逆序对 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn.net/bai ...

随机推荐

  1. vue-highlightjs的使用小结

    万能的github真主,让我们强大!在vue的项目中想使用highlight.js这样的代码高亮?有人帮助我们实现了vue-highlightjs 安装 yarn add highlight.js - ...

  2. 【mysql】The server quit without updating PID file

      groupadd mysql useradd -r -g mysql mysql cd /usr/local/mysql chown -R mysql:mysql . scripts/mysql_ ...

  3. writing a usb driver(在国外的网站上复制下来的)

    Writing a Simple USB Driver   From Issue #120April 2004 Apr 01, 2004  By Greg Kroah-Hartman  in Soft ...

  4. hdu 5533

    Dancing Stars on Me Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Ot ...

  5. Post页面爬取失败__编码问题

    python3爬取Post页面时, 报以下错误 "POST data should be bytes or an iterable of bytes. It cannot be of typ ...

  6. HDU 1561 The more, The Better(树形背包)

    The more, The Better Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  7. Flask_单例模式

    在flask实现单例模式的方法有多种: 这里我们列举五种,行吗? 第一种: 国际惯例:基于文件导入 第二种: 基于类的单例模式: 它又分两种: 一种加锁,一种不加锁. 不加锁的话,可以并发,但是我们的 ...

  8. python-高级编程-01

    [1] 列表推导 问题 我们需要一个[2,4,6,8] 这样的列表 传统写法 res = [] for i in range(10): if i %2 == 0:res.append(i) print ...

  9. 从几率到logisitic函数

    odds 几率,又称事件的优势比.几率和概率的关系如下: o=p1−pp=o1+o Logistic 回归模型的因变量只有 1/0 两种取值.假设在 p 个独立自变量 x1,x2,…,xp 作用下,记 ...

  10. [整理]Linux下的源码安装步骤及其功能解释

    源码的安装一般由3个步骤组成:配置(./configure).编译(make).安装(make install). 这时最常用的命令就是这三个--./configure && make ...