OpenStack架构

一、概述

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

openstack架构图

二、组件(项目)介绍

1、认证服务-Keyston

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

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

这里写图片描述
图中的用户可以跨多个Project而存在。

3)Keyston认证原理

这里写图片描述
图中可以看出,每调用一个组件都需要一次Keyston认证。

2、计算服务-Nova

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

1)Nova中常用术语:
名称含义
KVM内核虚拟化,是OpenStack默认的Hypersvisor层
QemuKVM替补角色,没有KVM执行效率高,也不支持全虚拟化
Flavor新建虚拟机的配置列表,是虚拟机的模板
Keypairssh连接访问的实例的密钥对
安全组用来控制实例访问控制策略的容器
安全组规则用来控制实例访问的具体策略,定义了用户可以使用什么协议在远端哪一个网段的主机上通过什么端口登录
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-engineHeat的核心模块,接收API请求在openstack中创建资源
Heat-cfntools、Heat-init在镜像中安装完成虚拟实例操作任务的工具
Heat-api-cloudwatch监控编排服务
Resource底层各种服务的抽象集合,如网络、计算、存储
Heat-client调用访问其他各个组件的client工具
2)Heat架构

这里写图片描述

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

这里写图片描述

三、总结

见下表:
这里写图片描述

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

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值