设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 982|回复: 5
收起左侧

OpenStack基础内容分享

[复制链接]
发表于 2017-12-18 17:35:42 | 显示全部楼层 |阅读模式
01
基础
我们经常听到某某厂商说他们的云是基于OpenStack,然后进行二层开发和安全加固!那么OpenStack是什么呢?不像云计算定义有很多,它是有它的标准定义:OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。
Open即开放、开源之意,国际国内大厂纷纷加入,表现,Stack堆栈,即意味着OpenStack是松耦合的,所服务件都可以按需解耦。
02
服务与组件
1.服务:OpenStack包含了网络、虚拟化、操作系统等的各个方面,像Cinder、Nova、Neutron、Swift等都是服务,可以理解为解耦后的具体的服务项目单元。
2.组件:组件是由单个服务向下分解得到的,为了实现服务而实际组成的部分。如Nova服务,它就包括nova-api,nova-compute、rabbit-mq server等组件。
3.常见的服务及作用:
之前文章给大家罗列过一次,其中Cinder、Nova、Neutron为3个关键的服务。
服务名称
服务
描述
Horizon
仪表板
用于管理云的图形化用户界面
Keystone
身份识别
认证、授权和 OpenStack 服务信息
Nova
计算
建立、管理和终止虚拟机
Cinder
块存储
磁盘卷(比实例更持久)和实例快照
Swift
对象存储
共享的、复制的和冗余的存储,用于存储图片、文件和其他可通过超文本传输协议(Hypertext Transfer Protocol,HTTP)访问的媒体文件
Neutron
网络
提供安全的租户网络
Glance
镜像
提供虚拟机镜像和快照的存储与访问
Heat
编排
通过模板编排计算机、网络和其他资源组
Designate
DNS
创建域并在 DNS 基础设施中记录
Ceilometer
计量
监控整个云的资源使用情况
Trove
数据库
提供私有租户数据库的访问
Ironic
裸机
在物理硬件上启动实例
Magnum
容器
在实例中管理容器
Murano
应用
在多个实例上部署打包应用
Sahara
数据处理集群
将 Hadoop 或 Spark 集群作为服务提供
03
版本与发展
1.历史与发展:开始于2010年的OpenStack今年已经7岁了,基金会员达到了8万(去年大概是4万),白金会员和黄金会员今年也新增了8个,其中5个来自中国。用户方面,越来越多的客户选择了OpenStack,用户类型也日趋多样化。
2.命名与发布:OpenStack版本是每6个月发布一次,每次版本的顺序按照A-Z进行排序,并以年份及当年内的排序作为版本号。各个厂商也纷纷进行定制开发,发布了自己的OpenStack。
04
架构
1.逻辑架构图

                               
登录/注册后可看大图
2.三种核心服务的架构

                               
登录/注册后可看大图
3.各组件之间的通信(以创建VM为例)

                               
登录/注册后可看大图
主要通信流转如下:
OpenStack并不仅仅是虚拟化管
1.登录管理界面或命令行形式通过RESTfulAPI向keystone获取认证信息。
2.keystone验证并通过用户请求认证信息,并生成auth-token返回给对应的认证请求。
3.界面或命令行通过RESTfulAPI向nova-api发送一个bootinstance的请求(并携带auth-token)。
4.nova-api接受请求后向keystone发送认证请求,查看token是否为有效用户和token。
5.keystone验证token是否有效,如有效则返回有效的认证和对应的角色(注:有些操作需要有角色权限才能操作)。
6.通过认证后nova-api和数据库通讯。
7.初始化新建虚拟机的数据库记录。
8.nova-api通过rpc.call向nova-scheduler请求是否有创建虚拟机的资源(HostID)。
9.nova-scheduler进程侦听消息队列,获取nova-api的请求。
10.nova-scheduler通过查询nova数据库中计算资源的情况,并通过调度算法计算符合虚拟机创建需要的主机。
11.对于有符合虚拟机创建的主机,nova-scheduler更新数据库中虚拟机对应的物理主机信息。
12.nova-scheduler通过rpc.cast向nova-compute发送对应的创建虚拟机请求的消息。
13.nova-compute会从对应的消息队列中获取创建虚拟机请求的消息。
14.nova-compute通过rpc.call向nova-conductor请求获取虚拟机消息。(Flavor)
15.nova-conductor从消息队队列中拿到nova-compute请求消息。
16.nova-conductor根据消息查询虚拟机对应的信息。
17.nova-conductor从数据库中获得虚拟机对应信息。
18.nova-conductor把虚拟机信息通过消息的方式发送到消息队列中。
19.nova-compute从对应的消息队列中获取虚拟机信息消息。
20.nova-compute通过keystone的RESTfullAPI拿到认证的token,并通过HTTP请求glance-api获取创建虚拟机所需要镜像。
21.glance-api向keystone认证token是否有效,并返回验证结果。
22.token验证通过,nova-compute获得虚拟机镜像信息(URL)。
23.nova-compute通过keystone的RESTfullAPI拿到认证k的token,并通过HTTP请求neutron-server获取创建虚拟机所需要的网络信息。
24.neutron-server向keystone认证token是否有效,并返回验证结果。
25.token验证通过,nova-compute获得虚拟机网络信息。
26.nova-compute通过keystone的RESTfullAPI拿到认证的token,并通过HTTP请求cinder-api获取创建虚拟机所需要的持久化存储信息。
27.cinder-api向keystone认证token是否有效,并返回验证结果。
28.token验证通过,nova-compute获得虚拟机持久化存储信息。
29.nova-compute根据instance的信息调用配置的虚拟化驱动来创建虚拟机。
这里面可以看出组件之间的通讯都是通过restapi实现的。
05
与虚拟化管理平台的区别
OpenStack并不仅仅是虚拟化管理平台,虽然它们存在很多相似性,但并非完全相同。OpenStack 和虚拟化管理平台都位于虚拟化资源层之上,可帮助用户发现、报告和自动执行位于不同供应商产品环境中的业务流程。诚然,虚拟化管理平台的主要目的是方便利用虚拟资源的特性和功能,而实际上,OpenStack 是使用虚拟资源来运行工具组合的。这些工具所创建的云环境符合美国国家标准与技术协会的5大云计算标准:一个网络、池化资源、一个用户界面、部署能力和自动化资源控制/分配。
06
用途
1.私有云
私有云在OpenStack 上运行的效果要优于 DIY 方法。由于 OpenStack 具有易安装性和易管理性,虚拟机的数量只增加了6%,因此采用 OpenStack 比您自己创建私有云更具性价比。很多厂商也推出了自己的基于OpenStack解决方案,如EasyStack、99cloud等。
2.公有云
OpenStack 是用于打造公共云环境的领先开源方案。无论是市值数十亿美元的上市公司,还是初创公司,您都可以使用 OpenStack 来构建可与云提供商相媲美的公共云服务。
3.网络功能虚拟化
OpenStack 用于网络功能虚拟化 (NFV), 从而将网络的一些重要功能分离出来以便在各环境中分配,几乎全球所有通信服务提供商都已将此提上议事日程。
4.容器
OpenStack 为私有云和公共云提供了可靠的基础。容器则加快了应用的交付速度,同时简化了应用的部署和管理。采用 OpenStack 平台运行容器,可将容器的优势从单个独立的团队扩展并惠及整个企业各部门的业务运营。
07
优势
a.开放性
OpenStack 的开放架构,使得红帽、思科、IBM、甲骨文、Mirantis积极参与,如此一来,可以减少厂商传统的软硬件捆绑,采用OpenStack 意味着企业云平台会更加自主可控,并实现技术沉淀和自动化运维水平的提升。
b.模块松耦合
与Eucalyptus、OpenNebula和CloudStack等开源软件相比,OpenStack模块分明。添加独立功能的组件非常简单。有时候,不需要通读整个OpenStack的代码,只需要了解其接口规范及API使用,就可以轻松地添加一个新的模块。
c.组件配置灵活
OpenStack的组件安装异常灵活。可以全部都装在一台物理机上,也可以分散至多个物理机中,甚至可以把所有的结点都装在虚拟机中。同时,OpenStack 自身就是个高扩展性的系统。它被设计为松耦合、基于消息通信的架构,这些技术在已经在各种中级到高级扩展的系统中得到应用和验证,它们也可以适应小规模的部署。问题在于当你配置和部署 OpenStack 时所做的设计上的决定。
d.二次开发容易
OpenStack发布的OpenStack API是Rest-fullAPI。其他所有组件也是采种这种统一的规范。因此,基于OpenStack做二次开发,较为简单。开源软件则由于耦合性太强,导致添加功能较为困难。
e.兼容性
首先,Openstack对硬件没有什么特殊要求。其次,OpenStack是一个云的管理标准,它将包容和协调更多的云(对接企业现有的公有云平台和自建的私有云平添),成为云能互通互控的基石。

发表于 2017-12-18 21:30:44 | 显示全部楼层
感谢楼主分享!
沙发 2017-12-18 21:30:44 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2020-3-8 19:50:27 | 显示全部楼层
感谢楼主分享
6# 2020-3-8 19:50:27 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-3-29 15:15 , Processed in 0.064468 second(s), 8 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表