是Rackspace和NASA共同发起的开源项目,他是一系列软件项目的组合。数据库
这些项目是松耦合的关系,能够进行独立的安装,启动和中止,只有在必要的时候才进行通讯(优势:扩展性好,安全性高,缺点:安装和配置比较复杂)swift
主要分为5个不一样的层次16个不一样功能模块:api
Presentation【表示层】:api模块,ui模块安全
Logic(Control)【逻辑控制层】:Orchostration【编排服务】,Scheduling【调度服务】,Policy【策略服务】,Image Registry【镜像注册服务】,Logging【日志服务】网络
Resource【资源管理层】:Compute【计算资源管理模块】,Volume【存储资源管理模块】,Network【网络资源管理模块】架构
Integration【集成层】:Billing【计量模块】,Identity【身份认证模块】运维
Mabagement【管理层】:Admin【管理api】,Monitoring【监测】分布式
子项目是怎样对接起来的:ui
Horizon-UI服务:对应User Dashboard【云下服务给运维用户使用】和Customer Portal【给云上用户使用】云计算
Keystone-身份认证:对应Identity
Nova-计算服务模块:Compute API,scheduling【调度服务】,policy【策略服务】和Compute【计算管理模块】以及部分Admin API
Glance-镜像服务:Image Registry【镜像注册】,Image Registry【镜像API】
Cinder【块存储】/swift【网络对象存储】-存储服务:volume【存储资源管理模块】
Neutron-网络服务:Network【网络资源管理模块】
Heat-编排组织服务:Orchostration【编排服务】
Ceilometer-监控计量服务:Billing【计量模块】,,Monitoring【监测】
主要服务为openstack用户提供UI服务,也就是负责用户在管理控制台上的全部操做转化为后台API的调用。
用户:云管理员【负责整个云平台的运营,资源管理和分配】,普通云用户【在配额范围内,自由操做,使用资源】
云管理员界面:
主要负责openstack中的身份认证和权限控制,
User:即用户,表明能够经过keystone进行访问的人或者程序,User经过认证信息(如密码,api Key等)进行验证
Tenant:即租户,它是各个服务中的一些能够访问的资源集合
Role:即角色,表明一组用户能够访问资源的权限
一家人【租户】租用了一百平米的房子【角色权限】那么这家人每一个人【用户】的管理权限是不一样的,父母比孩子的管理权限大。
Service:即服务,如Nova,Glance,Swift。服务只有在keystone上进行注册才能被分配
Endpoint:一个服务暴露出来的访问点,若是要访问一个服务,则必需要知道他的endpoint
Token:访问资源的令牌,至关于钥匙
keystone到底提供了什么服务:
Identity服务:验证了身份验证凭证。
Token服务:将会验证并管理用于验证请求身份的令牌
Catalog:每一个服务须要在keystone上进行注册,而他们就是注册在catalog上
Policy:决定每一个用户有哪些访问控制的权限
openstack的核心服务。
一:主要功能包括:
1:实例生命周期管理:实例的建立,删除,启动,中止
2:计算资源的管理
3:向外提供Rest风格的API
二:3个不一样的功能模块组成
nova-api:位于表示层主要接受外部的rest请求
nova-scheduler:位于逻辑控制层,主要负责居中调停,选择由哪一个主机建立vm
nova-compute:负责虚拟机测建立,以及资源的分配,自己并不提供任何虚拟化功能,但他却支持不一样的虚拟机形式
他们之间并非听过直接传递,而是经过消息中间件进行消息的传递
功能:提供虚拟机镜像的存储,查询和检索服务
主要为Nova组件提供服务,经过nova建立虚拟机的时候,就必须听过glance获取相应的镜像,而后根据镜像建立虚拟机。
依赖于存储服务和数据库服务:存储服务用于存储镜像自己,数据库服务主要用于存储跟镜像相关的各类元数据
glance的架构图
功能:对外提供高可用分布式对象存储服务
特色:无限可扩展,没有端点故障,使用swift不用担忧使用的对象会丢失,由于它自己就提供高可用的功能
能够经过HTTP(S),object api及s3接口存取
swift原理图
全部的请求都经过proxy进行处理,经过proxy到合适的Account下面找相应的Containe中的某一个object进行存储服务
在这中间会针对不一样的object进行复制,从而保证某一个对象的信息丢失时可以从其余地方找回来
功能:管理因此的块存储设备,为vm服务,
对象存储服务主要用于存储分布式的对象,也就意味着你能够从任何地方发起请求存储你的对象
块存储服务是本地的,它只能挂在vm上进行使用
cinder原理图:
当一个请求发来时,首先仍是发送到cinder自己的api上面,api模块对发过来的请求进行处理,处理后的结果经过消息中间件进行传递,经过消息中间件mq传到cinder-scheduler上面再经过调度器,
再决定到哪里申请块存储服务,而且建立一个vm,cinder具体的存储模块的管理都是经过cinder-volume来进行生命周期管理
功能:提供云计算环境下的虚拟网络功能,为每一个租户创建独立的网络环境
三种模式:
Flat模式:网桥模式,全部的都须要手工配置
Flat DHCP模式:网桥模式,在网关处单独取了一个DHCP的进程,能够辅助用户进行网络配置
VLAN模式:为每一个不一样的租户设置了不一样的虚拟子网,在这个虚拟子网中,用户能够有本身的ip