一、概述

openstack是一个综合的云计算管理平台,作为一个开源的IaaS平台,在openstack项目中包含了各种各样的组件,接下来简要介绍。

二、组件(项目)介绍

1、认证服务-Keyston

该组件在openstack中主要负责用户、租户、角色、服务和服务端点的管理,同时也是openstack中各个组件的认证核心(任何服务之间的相互调用都需要认证),提供了服务的注册功能,并且可以支持SQL、PAM、LDAP等等一些后端的认证。

1)Keyston中常用术语:

名称 含义
User OpenStack最基本的用户,代表人或者程序
Project 指分配给使用者的资源的集合,如CPU核数\内存大小等
Role 代表一组用户可以访问资源的权限
Domain 定义管理边界,可以包含多个project/tenant、user、role等
Endpoint 服务的URL路径,可以认为是暴露出来的访问点

2)术语之间的关系


图中的用户可以跨多个Project而存在。

3)Keyston认证原理


图中可以看出,每调用一个组件都需要一次Keyston认证。

2、计算服务-Nova

Nova是OpenStack云总的计算组织控制器,管理云中实例的生命周期。管理计算资源、网络、认证所需的可扩展性平台。主要负责虚拟机实例的调度分配以及虚拟机实例的创建、启动、停止、迁移、重启等等一些操作。

1)Nova中常用术语:

名称 含义
KVM 内核虚拟化,是OpenStack默认的Hypersvisor层
Qemu KVM替补角色,没有KVM执行效率高,也不支持全虚拟化
Flavor 新建虚拟机的配置列表,是虚拟机的模板
Keypair ssh连接访问的实例的密钥对
安全组 用来控制实例访问控制策略的容器
安全组规则 用来控制实例访问的具体策略,定义了用户可以使用什么协议在远端哪一个网段的主机上通过什么端口登录

2)Nova框架:

其中:

  • API提供了统一风格的RestAPI接口,作为Nova组件的入口,接受用户的请求。
  • NovaSchedu负责调度将实例分配到具体的计算机节点。
  • NovaConuctor负责与Nova数据库进行交互。
  • NovaCompute节点运行在计算节点上,用于实例的创建和管理。
  • MessageQueue主要用于Nova各个组件之间的消息传递。

3、镜像服务-Glance

Glance为Nova提供镜像服务,以便启动实例的组件,但通常不负责镜像的本地存储,可以实现对镜像做快照、备份、镜像模板的管理,支持Raw、vhd、cdi、iso、qcow2、aki/ami等镜像格式。

1)Glance组件

名称 含义
Glance-api 负责提供镜像服务的rest api服务
Glance-registry 主要负责与Glance使用的数据库交互,如镜像的删除创建等都需要调用

2)Glance架构

4、对象存储-Swift

Swift是openstack中提供高可用分布式对象存储服务,为Nova组件提供虚拟机镜像存储。在数据冗余方面,无需采用read,通过在软件层面引入一致性散列技术和数据冗余,牺牲一定程度的数据一致性来达到高可用和可伸缩性。支持多租户模式下容器和对象读写操作。适用于互联网应用场景下非结构化数据存储。比如华为云盘等等。

1)Swift中常用术语:

名称 含义
Account 用户定义的管理存储区域
Container 存储隔间,类似于文件夹或者目录
Object 包含了基本的存储实体和它自身的元数据
Ring 记录了磁盘上存储的实体名称和物理位置的映射关系,有Account环、Container环、Object环
Region 地域,从地理位置划分的一个概念
Zone 可用区,按照独立的供网、供电基础设施划分
Node 节点,存储服务器
Disk 磁盘,物理服务器上的存储设备
Cluster 群集,是为冗余而设计的架构

2)术语之间的关系


3)Swift架构

首先用户提出了一个对象存储资源的的申请,由Swift的API接收和处理,收到以后首先找Keyston节点对用户的身份进行认证,认证通过后将请求提交给名称为Swift Proxy的组件(这是Swift的代理,由它来决定存储在哪个满足存储要求的存储节点上),最终将存储对象存储到指定的存储节点,并将存储结果返回给用户。

5、网络服务-Neutron

Neutron是OpenStack中负责提供网络服务的核心组件,基于软件定义网络的思想,实现软件化的资源管理。在实现上充分利用了Linux系统中各种网络相关技术,支持第三方插件。

1)Neutron中常用术语:

名称 含义
Bridge-int 实现内部网络功能的网桥
Br-ex 跟外部网络通信的网桥
Neutron-server 提供API接口,把API的调用请求传递给已经配置好的插件,进行后续处理
Neutron-L2-agent 实现二等网络通信的代理,用于管理VLAN的插件,接受Neutron-server的指令来创建VLAN
Neutron-L3-agent 租户网络和floating IP间地址转换
Neutron-DHCP-agent 为子网自动分发IP地址
Neutron-metadata-agent 相应Nova的metadata请求
LBaaS agent 为多台实例和open vswitch agent提供均衡负载服务

2)Nutron架构

当 Nutron通过API接收来自用户或者其他组件传来的消息时,以消息队列的形式将消息传递给二层或者三层代理。二层代理实现相同VLAN下的网络通信,L3实现同一租户下不同网络之间的通信。

6、块存储服务-Cinder

Cinder为虚拟机实例提供volume卷的块存储服务,可以将卷挂载在实例上,作为虚拟机实例的本地磁盘来使用。一个volume可以同时挂载在多个实例上,但是共享的卷同时只能被一个实例进行写操作,其他的都只能读操作。
Cinder支持的文件系统类型有:LVM/ISCSI、NFS、NetAPP NFS、Gluster、DELL Equall Logic。

1)常用术语

名称 含义
Volume备份 volume卷的备份
Volume快照 卷在某个时间点的状态
Cinder API 为Cinder请求提供统一风格的Rest API服务,用来接收Cinder的请求,是Cinder服务的入口
Cinder Scheduler 负责为新建卷指定块存储节点
Cinder Volume 与存储的块设备交互,实现卷的创建、删除、修改等操作
Cinder Backup 备份服务负责通过驱动和后端的备份设备打交道

2)Cinder架构

API接收来自user或者compute的请求,以消息队列的方式发送个scheduler调用,然后scheduler到数据库中查询当前存储节点的状态信息,并根据预定策略选择最佳volume service节点,然后将调度的结果发布出来给volume provider调用,然后volume provider在特定的存储节点上创建相关的卷,并将相关结果返回给用户,并将相关数据写入到数据库中。本文来自http://blog.csdn.net/yanyumin52其它都是复制的。

7、Web统一化管理界面-Horizon

啦啦啦啦

8、监控、计量服务-Ceilometer

Ceilometer是openstack的一个子项目,它像一个漏斗一样把openstack中发生的所有事件都搜集起来,然后为计费、监控等基础服务提供数据支撑。

1)Ceilometer的五个重要组件:

名称 含义
Ceilometer-agent-compute 搜集在计算节点上的信息代理,是计算节点上数据搜集的代理
Ceilometer-agent-central 运行在控制节点上,轮训服务的非持续化数据
Ceilometer-collector 运行在控制节点上,监听Message Bus,将受到的消息写入到数据库中
Storage 支持MySQL等数据库,用于存储所搜集到的数据
API server 运行在控制节点上,提供对数据库数据的访问
Message Bus 计量数据的总线,搜集数据提供给Collector

2)Ceilometer架构


Ceilometer使用了两种数据采集的方式,其一是OpenStack内服务自动发出的消息(Notifiction消息,图中的蓝色箭头,大部分事件都会主动发出消息,如实例的创建删除),其二是Ceilometer调用API主动轮询计量消息(对应黑色箭头,如CPU使用时间)。

9、模板编排服务-Heat

Heat是openstack的核心项目之一,提供基于模板的编排服务,可以通过.yaml文件生成模板,通过heat-agent组件在openstack中创建相关资源,除此之外她还 支其它模板。

1)常用术语

名称 含义
Stack 指的是Heat要用到的所有设施和资源的集合
Heat template 指的是模板,以.yaml结尾的文件,用于创建stack
Heat-api 提供 rest api服务,将api请求发送给heat engine去执行
Heat-api-cfn 支持亚马逊格式访问Rest api
Heat-engine Heat的核心模块,接收API请求在openstack中创建资源
Heat-cfntools、Heat-init 在镜像中安装完成虚拟实例操作任务的工具
Heat-api-cloudwatch 监控编排服务
Resource 底层各种服务的抽象集合,如网络、计算、存储
Heat-client 调用访问其他各个组件的client工具

2)Heat架构

———————我是YYM的分割符——————–

三、总结

见下表:

后续:写了我好几天,纪念一下~

OpenStack架构相关推荐

  1. OpenStack架构企业IT应用的敏捷实践

    OpenStack架构企业IT应用的敏捷实践 发表于14小时前| 203次阅读| 来源<程序员>电子刊| 0 条评论| 作者张小斌 肖何 谢胜 OpenStack云平台敏捷架构应用 wid ...

  2. 全面认识OpenStack架构

    点击上方蓝字关注我们 1 前言 曾几何时,"云"还是指天上飘的那一朵朵白色的雾团,现在互联网上家家都说自己是"xx云"."云"这个词,已经被 ...

  3. OpenStack介绍说明、OpenStack架构说明、OpenStack核心服务详细说明【keystone,nova,cinder,neutron...】、OpenStack创建VM,服务间交互示例

    文章目录 OpenStack介绍说明 OpenStack起源 认识openstack[重要] OpenStack架构说明 OpenStack架构概览 OpenStack逻辑架构 OpenStack生产 ...

  4. 云计算服务模型和openstack架构常用模块介绍

    云计算的服务模型 云计算有IaaS(Infrastructure as a Service,基础架构即服务),PaaS(Platform as a Service,平台即服务),SaaS(Softwa ...

  5. OpenStack架构分析与实践

    小编分享 OpenStack架构分析与实践 OpenStack以每年两个版本的速度不断迅速演进,所以对于OpenStack的架构而言,也是不断向前发展的.回顾一下E版本的OpenStack,它只有5个 ...

  6. OpenStack 架构 - 每天5分钟玩转 OpenStack(15)

    终于正式进入 OpenStack 部分了. 今天开始,CloudMan 将带着大家一步一步揭开 OpenStack 的神秘面纱. OpenStack 已经走过了 6 个年头. 每半年会发布一个版本,版 ...

  7. 云原生 - 2、Openstack架构

    云原生 - 2.Openstack架构 1.什么是Openstack 2.Release 3.核心架构 4.官方入口 5.核心组件 6.相关文章导读 1.什么是Openstack OpenStack是 ...

  8. OpenStack架构详解

    OpenStack架构 OpenStack作为开源.可扩展.富有弹性的云操作系统,其设计基本原则 ①按照不同的功能和通用性划分不同项目,拆分子系统 按照不同的功能划分不同服务,并且服务之间相互隔离,只 ...

  9. openstack架构及组件特点

    1.半年发布一次新版本,最新版本为Ocata 2.系统特点 提升IT资源利用效率 提升IT运维.部署.开发效率 3.组件特点 4.openstack技术架构 转载于:https://www.cnblo ...

  10. 一、OpenStack架构

    DashBoard Horizon 提供WEB界面 Computer Nova 计算也就是虚拟机 Networking Neutron 提供给nova网络支持 Object Storage Swift ...

最新文章

  1. 中职计算机专业英语说课稿,高职高专英语说课稿
  2. python中去除字符串中首尾空格的函数_Python中去除字符串首尾特定字符的函数:strip()...
  3. java 切换主线程_Java线程状态及切换、关闭线程的正确姿势分享
  4. NS2相关学习——在ns中模拟无线场景
  5. 图像学习-HOG特征
  6. 虚拟资源拳王公社:什么是虚拟资源自动化?为什么虚拟产品可以自动化赚,虚拟资源自动化有什么
  7. Android中TableLayout如何让列自动换行
  8. PHP关闭$_ENV后获取服务器参数的办法
  9. Java 8 Iterable.forEach()与foreach循环
  10. MySQL 阿里巴巴JAVA开发手册-MySQL相关
  11. 局域网电脑资产搜集管理
  12. 帆软连接数据库的步骤
  13. 什么是Redis?什么是nosql?NoSQL数据库的四大分类
  14. 多源信息融合技术研究综述
  15. ABP框架系列之四十:(Notification-System-通知系统)
  16. 工业级手持式扫描仪3d扫描首选迪万科技抄数服务
  17. HTML5之帆布(canvas)(一)
  18. 新手村——C++入门篇
  19. 80%学生的困惑,学完C/C++之后学什么?
  20. java word apache poi 操作word模板。

热门文章

  1. gin:结合gorilla实现webSocket
  2. 《Consistent Video Depth Estimation》阅读笔记
  3. idead打war包
  4. python 用selenium获取好友空间说说及时间写入txt
  5. RocEDU.阅读.写作《苏菲的世界》书摘(四)
  6. 金融界神曲“金融科技”:度小满、中国平安等大神如何唱?
  7. 机器学习—特征工程—OneHotEncoder独热编码
  8. Qt中pro、pri文件的语法介绍
  9. MATLAB R2019b利用Application Compiler打包文件无法识别runtime问题(亲测可行)
  10. ae计算机配置要求,CG馒头分享AE cs6对电脑所需配置需求