原文链接:https://blog.csdn.net/bc_vnetwork/article/details/51463518

1.NFV概述

NFV(网络功能虚拟化Network Function Virtualization, 有时候NFV也叫做VNF)由运营商的联盟提出,主要利用通用x86硬件平台和标准的IT虚拟化技术, 来做软硬件解耦合和功能抽象。 这样做可以解决运营商目前碰到的一些问题, 如: 专用设备成本高昂, 厂商锁定, 资源分配、部署、调度不够灵活。随着NFV的使用, 新业务可以快速开发和部署, 并能基于实际业务需求进行自动部署、弹性伸缩、故障隔离、并能大量节约成本和风险。

为了在云计算SDN网络中使用NFV, 需要引入NFV管理器, 用于配置、监视NFV以及管理NFV的生命周期, 整个过程需要符合ETSI MANO中所描述的整个NFV生命周期。

目前开源的NFV管理器有OpenStack的子项目Tacker以及ODL的Armoury插件, 本文着重讲一下OpenStack云平台下的组件Tacker项目。

2.Tacker概述

Tacker是一个在OpenStack内部孵化的项目, 他的作用是NVF管理器,用于管理NVF的生命周期。 Tacker的重点是配置VNF, 并监视他们。如果需要,还可重启和/或扩展(自动修复)NVF。整个进程贯穿ETSIMANO所描述的整个生命周期。

3.Tacker架构

下图所示为ETSIMANO所描述的VNF的整个生命周期:

ETSIMANO框架

Tacker由四大组件组成:即VNFD目录、VNF设置、VNF配置管理,以及VNF监控与自动修复。

以下是Tacker的每个子领域迄今为止所取得的主要成就。

VNFD目录:围绕如何呈现VNF(VNF描述符)的标准化努力如今已经聚焦在了TOSCA上。TOSCA(针对云应用的拓扑与编排规范)是OASIS协会下的一个技术委员会,主要致力于为全球信息社会推动开放标准的开发、整合与应用。TOSCA的NFV概要文件草案已经完成。该规范描述了VNF(VNFD)的属性,以及Tacker对VNFD目录的维护。

一旦VNF被规定使用TOSCA NFV模板,那么它们就能够进入Tacker VNF目录中。一旦进入,Tacker就可以通过编译TOSCA模板和通过翻译器翻译部分OpenStack Heat实现VNF的实例化。Tacker还侧重于VNF的配置和持续性监控,如果需要,自动修复可贯穿ETSI MANO所描述的整个生命周期。

VNF设置:通过上述的Heat模板,Tacker可以使用OpenStack Nova设置计算基础设施。OpenStack Nova的许多功能可以在计算设置程序过程中被使用。通过利用SR-IOV Passthrough、NUMA、CPU pinning和大页面分配等特定属性创建的一些功能,计算资源可以针对VNF进行优化。

VNF配置管理:Tacker将通过配置驱动推动VNF所需的特殊配置。配置管理被设计为可插入式框架,不同的VNF厂商可以为他们的VNF编写自己的配置驱动。

另一个方法是使用SDN控制器。目前已经就如何将SDN和NFV整合在一起展开了许多讨论。关于使用SDN控制器插件的Tacker,如何推动配置使用SDN控制器南向接口的特殊VNF,就是一个很好的例子。

VNF监控与自动修复:Tacker的一个关键职责是监视VNF的健康。通过出台一系列旨在指导OpenStack其他项目设计的规范,Tacker可以随时使用如icmp-ping和http-ping等可加载的监控驱动。它们还被规划与Ceilometer进行整合,如今VNF厂商已经能够编写自己的带有特殊监控属性的监控驱动。

VNF Manager (VNFM) 和 NFV Orchestrator 的功能各自是什么

VNFM的核心功能:

§ VNF 创建和终结(调用VNFD目录)

§ VNF设置(即placement,调用Heat)

§ VNF配置(用EMS)

§ VNF监控(健康,性能等)

§ VNF自动治愈回复和扩展伸缩

§ 支持各类简单的和复杂的VNF

NFVO的核心功能:

§ 网络服务(Network Service)的编排 (用一系列的VNFs和转发图Forwarding Graph,此处想象糖葫芦,一串儿VNFs)

§ 调用VNFM来做跨多个VIM的VNF安置(placement)

§ 资源检查和分配

§ 可以跨虚拟的(VNF)和物理的NFs

§ 用SDN controller 或SFCAPI来实现 VNF Forwarding Graph

§ 来看看 NFVO 和 VNFM 的好处有什么(这里主要面向运营商/服务商):

§ 防止设备厂商锁定(运营商多年的梦想),运营商可以灵活部署从多个厂商提供的VNF。

§ NFV orchestration 编排的流程基本是与具体 VNF 独立无关的 (VNF agnostic)

§ VNF (厂商)具体的差异化可以通过业界标准化的 plugin插件和驱动来实现

Tacker架构

Tacker未来还将新增sfc driver以实现VNFForwarding Graph, 即业务链。

4.Tacker工作流程

以下为Tacker工作流程:

Tacker工作流程

第一步:Tacker根据BSS/OSS需求从服务目录选出相应的服务项目,如vRouter。

第二步:Tacker把具体的 VNFD推送给 OpenStack Heat 来生成VDU (Virtual Deployment Unit,对应含VNF要求的 VM部署单元)。

第三步:用Heat来启动生成具体的VM实例,如图下方的 VNF FWaaS,VNF vRouter等。

第四步: (在图中部)用 Mgmt Driver (管理驱动)来配置 VMs,通常会通过厂商EMS(如大家看到的 "Vendor Y Manager"),或者是SSH这样的简单手段。

第五步:SFC(Service Function Chain 服务功能链)的执行实现。这里例子用的是ODL 控制器,配合IETF的NSH(Network Service Header,网络服务包头)来实现服务链的执行。 NSH通过描述数据面的Header来沿着网络服务路径(Service Path)承载网络服务信息,意在实现与传输独立的“服务面”(Service Plane),可以与VXLAN,MPLS, UDP等传输封装协议配合。在NSH当前开源实现中可以支持OVS数据面(VXLAN)和ODL的控制面。细节这里不展开了,大家可以关注IETF NSH标准和ODL,OVS相关内容。

第六步: 监控VNF健康/可用性availability状况,出现问题是自动治愈回复(重新生成VNF,保证业务连续性)。

从上面的流程我们可以看到, tacker还依赖于OpenStack Heat编排组件。

5.Tacker主要功能

下面总结下Tacker的主要功能features:

l  贯穿 VNF 完整生命周期的工作流程管理

l  依照MANO框架的API

l  可调用(loadable)的健康监控及治愈恢复能力框架

l  参数化的(parameterized)TOSCAVNFD 模板

l  VNF 用户数据注入(injection) 能力 (通过具体的plug-in drivers)

l  VNF 初始化和更新配置注入

通过Tacker,大家其实希望能构建一个基于业界标准的开源开放NFV Orchestration 社区。

6.Tacker Roadmap及未来方向

Tacker 的roadmap和未来规划在OpenStackMitaka 版本和更远未来实现的重要功能区:

l  多 VIM支持(除完整云平台之外,VIM也有可能是Hypervisor层级的管理模块(如基于KVM),以适应运营商一些轻量级的需求,如小型vCPE等)

l  VNF的高级设置(advanced placement): 利用CPU pinning,NUMA优化,SR-IOV和PCIpass-through等VNF性能优化技术

l  VNF 扩展scaling:这里提下,现在运营商对自动扩展并不热衷,大多还要求有手动控制,自动会是未来功能,这里主要从scale out开始。

l  在VM之外的编排能力:之前提到过除了VNF,还有PNF需要管理编排,就是大家现在都提的 P+V,投资保护,成本,利旧,迁移演进,都是实在的价值....

l  另外还有基于Container 的NF (如Docker... )。

开源NFV管理器 - OpenStack Tacker介绍 NFV和Tacker介绍和主要功能的更多相关文章

  1. 跨平台开源密码管理器 KeePassXC

    简介 KeePassXC 是一个开源的跨平台密码管理器.基于 KeePass 二次开发. KeePassXC 可以安全地在本地存储您的密码,配合浏览器插件KeePassXC-Browser可辅助登录. ...

  2. [Big Data - Suro] Netflix开源数据流管理器Suro

    Netflix近日开源了一个叫做Suro的工具,公司可以利用它来做数据源主机到目标主机的实时定向.它不只在Netflix的数据管道上扮演重要角色,大规模下的应用场景同样令人印象深刻. Netflix各 ...

  3. 【转】npm包管理器那些事

    原文链接:http://www.cnblogs.com/shuoer/p/7782125.html npm包管理器那些事! 今天和朋友针对npm包全局安装和本地项目安装这个梗展开的激烈的讨论,故此做一 ...

  4. Swing——布局管理器

    前言 在编写图形界面时,总是需要考虑的就是组件放在哪里,组件怎么大才合适.在Swing中就有现成的布局管理器帮我们做这些事情,我们不必写代码去一一安排.下面将介绍什么是布局管理器.Swing中常用布局 ...

  5. 在中间层 .NET 应用程序中通过授权管理器使用基于角色的安全

    基于角色的安全是从 Windows NT 的第一个版本开始在 Windows 平台上发展而来的.使用角色,操作系统可以通过检查称为 BUILTIN\Administrators 的组的安全上下文做出一 ...

  6. python3 爬虫五大模块之二:URL管理器

    Python的爬虫框架主要可以分为以下五个部分: 爬虫调度器:用于各个模块之间的通信,可以理解为爬虫的入口与核心(main函数),爬虫的执行策略在此模块进行定义: URL管理器:负责URL的管理,包括 ...

  7. 通过Tacker将NFV引入OpenStack

    14年的这个时候,我们还在OpenStack社区中为NFV是否属于OpenStack而争论不休.如今这一争议已经被解决了.OpenStack已经成为NFV讨论中的重要部分,正如下面的ETSI MANO ...

  8. 如何用Tacker将NFV带入OpenStack?

    最初社区里很多人争论过NFV是否属于OpenStack,而后来可以确定的是OpenStack的确占据了NFV会话中的很大一部分,并且形象地反映在了下面的ETSI MANO概念架构图中,OpenStac ...

  9. Swift 正式开源, 包括 Swift 核心库和包管理器

    Swift 正式开源!Swift 团队很高兴宣布 Swift 开始开源新篇章.自从苹果发布 Swfit 编程语言,就成为了历史上发展最快的编程语言之一.Swift 通过设计使得软件编写更加快速更加安全 ...

随机推荐

  1. ASP.NET中的几种弹出框提示基本实现方法

    我们在.NET程序的开发过程中,常常需要和用户进行信息交互,比如执行某项操作是否成功,“确定”还是“取消”,以及选择“确定”或“取消”后是否需要跳转到某个页面等,下面是本人对常用对话框使用的小结,希望 ...

  2. 提交iframe页面中的表单

    function getIframeDoc(id){             var doc;            if (document.all){//IE                 do ...

  3. Mysql 索引优化 - 1

    单表  范围查询 后面的索引会失效 双表  左右连接建立索引互相使用 三表   用小结果集驱动大表结果, 先优化括号里面的SQL, 保证JOIN被驱动的表上ON字段有索引 索引失效(常见原因) 全职匹 ...

  4. C语言实现 读取写入ini文件实现(转)

    #include <stdio.h> #include <string.h> /* * 函数名: GetIniKeyString * 入口参数: title * 配置文件中一组 ...

  5. css 积累1

    1.position 取值. 通常的回答是 static.relative.absolute 和 fixed .当然,还有一个极少人了解的 sticky .其实,除此之外, CSS 属性通常还可以设置 ...

  6. 规则引擎以及blaze 规则库的集成初探之二——JSR94 的规则引擎API和实现

    http://jefferson.iteye.com/blog/67839 规则引擎以及blaze 规则库的集成初探之二——JSR94 的规则引擎API和实现

  7. Redis开发、管理实战

    一.数据类型 String : 字符类型 Hash: 字典类型 List: 列表 Set: 集合 Sorted set: 有序集合 二.全局Key操作 KEYS * 查看KEY支持通配符 DEL 删除 ...

  8. WSTMart开发文档

    WSTMart开发文档页面   PC版   开源版 授权版   序言   WSTMart安装协议   WSTMart电商系统安装   商城前台安装操作指南   用户中心指南   商家中心操作指南   ...

  9. C语言时间处理

    一.简介 时间处理在编程中经常遇到,包括程序的运行时间和显示时间等.在标准C中, 日期和时间的处理包含在 time.h 的头文件中,需要使用日期和时间相关的类型的函数的话, 需要导入time.h. 二 ...

  10. PHP逻辑运算符中的and和&&以及or和||是有区别的

    下图是PHP的逻辑运算符: 看图中and和&&都是“与”,而or和||都是“或”,初开起来没有区别,但实际上这里面有一个优先级别的区别,即: &&和||的优先级别要高于 ...