OpenStack环境中的NFV实践
原文链接:http://www.99cloud.net/html/2016/jiuzhouyuanchuang_1103/250.html
在开始实践之前我们首先需要了解一些NFV概念和术语。
NFV 和NFV MANO架构的概念
NFV(Network Function Virtualization)
引用维基百科的定义:Network functions virtualization (NFV) is a network architecture concept that uses the technologies of IT virtualization to virtualize entire classes of network node functions into building blocks that may connect, or chain together, to create communication services.
网络功能虚拟化(NFV)是一种网络架构概念,其使用IT虚拟化技术将整个类别的网络节点功能虚拟化为可连接或链接在一起以创建通信服务的构建块。
NFV MANO(NFV Management and Orchestration)
NFV MANO是ETSI(European Telecommunications Standards Institute)定义的一个NFV架构。
NFV MANO架构主要包括三个部分:
•NFV Orchestrator(NFV编排器)
•VNF Manager(VNF管理器)
•Virtualized Infrastructure Manager (虚拟基础设施管理器)
下面是NFV MANO架构图
NFV MANO 是图上天蓝色框内的部分,其中三个主要功能块NFVO,VNFM,VIM互相连接,因为这是一个设计架构图,把连接称为reference point,在具体实现中这些连接就是功能块之间的API接口。
图上左边的部分从下往上看,最下面是NFVI,往上是VNF实例,再往上连接着网络运营商传统的EMS(Element Management System)网元管理系统和OSS/BSS(Operations support system/business support system)运营支撑系统/业务支撑系统,可以看到MANO架构中的VNFM和NFVO也分别和这两个系统有接口。
下面是图上一些模块的解释
NFVI(NFV Infrastructure)
NFVI包括NFV底层物理的服务器,存储,网络设备,以及虚拟化后的虚拟机,虚拟存储,虚拟网络资源。
VNFD(VNF Descriptor)
VNFD就是一个VNF的部署模板,包含了一个VNF自身的所有信息。图上的VNF Catalog,就是所有VNFD的目录。
VIM(Virtualized Infrastructure Manager)
VIM通常是一个云平台,管理一个域下的NFVI,在一个NFV架构下可能有多个NFVI,每个NFVI都有一个对应的VIM来管理。在我们的环境中,VIM的实现就是OpenStack。
VNFM(VNF Manager)
VNFM主要管理VNF的生命周期,负责包括调用VIM,根据VNFD(VNF Descriptor)创建,维护,终结VNF,VNF监控,VNF的self-healing,扩容缩容。VNFM可能有多个。
NFVO(NFV Orchestrator)
我们知道可能有多个VIM管理多个域的NFVI,也可能有多个NFVM分别管理它们的VNF。所以在上层还需要一个能协调管理这些资源和服务的东西,就是NFVO。
对于NFVI的资源,NFVO需要与多个VIM的接口交互,协调,认证,分配,释放这些资源。对于VNF的服务,NFVO需要:
1、与多个VNFM的接口交互,分别创建这些VNF。
2、创建完VNF后,还要管理VNF的拓扑,对这些VNF进行编排,也就是实现VNFFG(VNF Forwarding Graph),也就是SFC(Service Function Chain)。
OpenStack环境中的NFV实践
看过了上面这些概念,应该会对NFV的架构有一些了解,接下来就通过在OpenStack环境中的一个实验来体验一下NFV的这些概念和设计应该如何实现。
后文会有一个演示视频,用OpenStack作为VIM,用Heat作为VNFM,Heat的template作为VNFD,用shell脚本调用Heat,创建一个租户内的防火墙。
演示的防火墙的镜像使用了Hillstone云界虚拟防火墙,云界是Hillstone在OpenStack云环境下的网络安全解决方案,可以给租户网络提供高可用的路由,VPN,QoS,端口映射,入侵检测,病毒防护等功能。
Heat是什么
Heat是OpenStack的编排项目,目标是在OpenStack云上编排应用,管理应用和基础设施的整个生命周期。
Heat用模板文件来描述应用的基础设施(比如虚拟机,网络,云硬盘等)。
网络拓扑
虚拟防火墙在OpenStack中的网络拓扑图:
手动在租户中部署虚拟防火墙,需要做:
1、上传镜像
2、创建网络:防火墙的管理网络,HA网络,外部网络,内部网络
3、启动两个防火墙实例
4、关闭各个端口的安全组
5、用防火墙的管理接口配置HA,接口地址,安全规则,SNAT,DNAT等业务
可以看到手动部署这样一个环境的工作量其实不小,所以需要Heat。
用Heat编排虚拟防火墙
有了Heat,我们只需要写好VNF的模板,用模板创建Heat stack,就可以一键创建防火墙的整个拓扑。
这次演示会创建两个stack:
1、hillstone stack,负责创建防火墙的网络,端口,虚拟机。
2、rest_client stack,会首先创建一个centos7虚拟机作为客户端向防火墙发送restful请求配置防火墙,然后在内部网络上创建一个cirros虚拟机在最后用来验证防火墙功能。
详细的流程可以参考下图:
1、创建hillstone stack,包括网络,端口,两个防火墙虚拟机
2、hillstone stack创建完成后,输出两个hillstone虚拟机的ip地址
3、通过shell脚本的方式,读取第一个stack的output,并以此为参数创建rest_client stack,这个stack会在防火墙管理网络上创建一个centos7虚拟机并传入userdata脚本,同时在内网创建一个cirros虚拟机(cirros的网关设在防火墙上)
4、rest_client启动后会运行userdata脚本,向两个防火墙发送请求,进行初始化配置
5、最后,手动登录cirros虚拟机ping外网,进行HA切换,验证防火墙功能
演示视频
下面是演示的视频:
和MANO架构的距离
要实现MANO架构还需要做:
•开放的API接口
•多VIM支持
•VNFM:兼容不同类型的VNF,VNF监控,self-healing,auto-scaling,标准化的VNF模板
•NFVO:多VIM资源的协调,VNF的编排,VNFFG/SFC
•……………
可以看到要做好这个不是一个小工程,在NFV/SDN被OpenStack开发者和用户密切关注的背景下, OpenStack社区项目tacker应运而生。
Tacker是OpenStack的NFV编排项目,主要目标是实现MANO架构,可以说是未来NFV的一个方向,很有潜力的一个项目,我们公司的大师兄龚永生也在tacker上有一定投入,是tacker项目的core。
总结
上文描述了NFV MANO架构的一些概念和一个简单的演示,后续我会探索tacker,尝试把hillstone云界作为VNF放到tacker中,希望读者看完本文能有所收获。
OpenStack环境中的NFV实践的更多相关文章
- 在openstack环境中安装rackspace private cloud --1 环境准备
在一个openstack环境中安装rackspace private cloud, 环境准备: 在good-net网络中创建3个虚拟机vm Network Detail: good-net Netwo ...
- Docker在云环境中的应用实践初探:优势、局限性与效能评测
作者 商之狄 发布于 2014年11月10日 本文依据笔者所在团队的一些近期开发和应用的实践,整理出一些有意义的信息,拿出来和社区分享.其中既包括在云端应用Docker与相关技术的讨论,同时也有实施过 ...
- Dubbo Mesh 在闲鱼生产环境中的落地实践
本文作者至简曾在 2018 QCon 上海站以<Service Mesh 的本质.价值和应用探索>为题做了一次分享,其中谈到了 Dubbo Mesh 的整体发展思路是“借力开源.反哺开源” ...
- 管理openstack多region介绍与实践
转:http://www.cnblogs.com/zhoumingang/p/5514853.html 概念介绍 所谓openstack多region,就是多套openstack共享一个keyston ...
- openstack多region介绍与实践---转
概念介绍 所谓openstack多region,就是多套openstack共享一个keystone和horizon.每个区域一套openstack环境,可以分布在不同的地理位置,只要网络可达就行.个人 ...
- openstack多region介绍与实践
版权声明:本文为原创文章,转载请注明出处. 概念介绍 所谓openstack多region,就是多套openstack共享一个keystone和horizon.每个区域一套openstack环境,可以 ...
- 四种方案:将OpenStack私有云部署到Hadoop MapReduce环境中
摘要:OpenStack与Hadoop被誉为继Linux之后最有可能获得巨大成功的开源项目.这二者如何结合成为更猛的新方案?业内给出两种答案:Hadoop跑在OpenStack上或OpenStack部 ...
- React 与 Redux 在生产环境中的实践总结
React 与 Redux 在生产环境中的实践总结 前段时间使用 React 与 Redux 重构了我们360netlab 的 开放数据平台.现将其中一些技术实践经验总结如下: Universal 渲 ...
- 安装配置好openstack环境的虚拟机,须要改动ip时,在数据库中同步改动ip的方法
感谢朋友支持本博客,欢迎共同探讨交流,因为能力和时间有限,错误之处在所难免,欢迎指正. 假设转载,请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...
随机推荐
- android 学习 之 布局(下)LinearLayout,RelativeLayout,TableLayout,FrameLayout
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=&q ...
- LDa 通俗理解
LDA理解以及源码分析(一) http://blog.csdn.net/pirage/article/details/50239125 LDA在主题建模中的应用,需要知道以下几点: 文档集中的word ...
- Varint 数值压缩
[Varint 数值压缩] Varint 是一种紧凑的表示数字的方法.它用一个或多个字节来表示一个数字,值越小的数字使用越少的字节数.这能减少用来表示数字的字节数.比如对于 int32 类型的数字,一 ...
- Hadoop Streaming:aggregate
[Hadoop Streaming:aggregate] 1.实例1 测试文件test.txt mapper程序: 运行: $hadoop streaming -input /app/test.txt ...
- 解决Springboot集成ActivitiModel提示输入用户名密码的问题
一.原因分析 先要知道两点 - SpringBoot会根据引入的Jar包而自动配置相应的功能. - ActivitiModeler中引用了Spring Security的Jar.(是一个安全或者说权限 ...
- MVC知识记录
1.完整深入分析 MVC请求机制:http://blog.jobbole.com/85033/ 2.MVC入门:http://www.aizhengli.com/givecase-aspnet-5-m ...
- C语言压缩/解压缩
一.简介 Lzlib 压缩库提供了在内存中的 LZMA 压缩和解压算法功能,包括对数据进行完整性检查.压缩格式是 lzip 参考: http://blog.csdn.net/damenhanter/a ...
- UX设计案例研究:建立更好的用户体验(重新设计Air Peace Airline网站)
以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具. 坐飞机旅行总是能给人带来很棒的体验,但我认为应该考虑预订航班时给用户带来的压力.在如今的数字世界,我 ...
- abp AutoMap Custom Mapping
[DependsOn(typeof(AbpAutoMapperModule))] public class MyModule : AbpModule { public override void Pr ...
- java类的泛型DAO
@Transactional public abstract class DAOSupport<T> implements DAO<T> { protected Class&l ...