新的一年新的开始,忽然想学习下Openstack,以前了解过不少,可是想系统的学习一下,第一次写博客,只想把学到的东西记录下来加深印象,若有写的很差的地方请多多见谅。下面开门见山。数据库
1.What is OpenStack?swift
是 Rackspace(贡献swift)和NASA(贡献nova)共同发起的开源项目,是一系列软件开源项目的组合。基础设施资源管理平台(相似操做系统能够管理硬件池,能够根据需求提供资源)。api
OpenStack三大核心组件(网络,计算,存储)网络
概念架构图架构
逻辑架构图分布式
NAME | SERVICE | |
---|---|---|
KEYSTONE | Identity | 认证* |
GLANCE | Image | 镜像* |
NOVA | Compute | 计算* |
NEUTRON | Networking | 网络* |
CINDER | Block Storage | 块存储 |
SWIFT | Object Storage | 对象存储 |
NAME | SERVICE | |
---|---|---|
Horizon | Dashboard | 面板* |
Heat | Orchestration | 编配 |
Ceilometer | Telemetry | 监控 |
Sahara | Elastic Map Reduce | 大数据部署 |
....... | ....... |
1.Horizon(UI模块)学习
页面调用api(两种用户云管理员,云用户)大数据
2.keystone(身份服务模块)云计算
1)用户身份认证(Idemity)spa
user:用户(租户下有不少用户,验证方式用户名密码,API keys等)
kenant:租户(能够访问资源的集合)
role:角色 (一组用户能够访问资源的权限)
2)访问请求控制(Token)
Service(nova,glance,swift等服务须要在keystone上注册)
Endpoint(service暴露出来的访问地址)
Token(访问资源的令牌,具备时效性)
3)注册表服务(Catalog)
openstack服务须要注册到keystone注册表中
4)身份验证引擎(Policy)
决定用户有哪些访问控制权限
易购环境的集成(Key Value Store,MemcachedSQL,PAM,LDAP)
3.Nova(计算服务组件)
openstack核心组件,核心服务包括:实例生命周期的管理(虚拟机),计算资源的管理,对外提供Restful API。
Nova组件主要有三个模块构成(nova-api,nova-scheduler,nova-compute),
nova-api在表示层主要负责处理外部请求,nova-scheduler在逻辑控制层,主要负责选择那个主机建立VM,nova-compute虚拟机建立和资源分配,不提供虚拟化功能,可是支持kvm,LXC,xen等。
三个组件经过rabbit MQ进行消息传递。
4.Glance(镜像服务组件)
主要功能:提供虚拟机镜像的存储,查询和检索功能,为nova进行服务,依赖于存储服务(存储镜像自己)和数据库服务(存储镜像相关的数据)。
5.Swift(对象存储服务模块)
openstack核心组件,主要功能:高可用分布式对象存储服务,特色是无限和扩展没有单点故障。
account-->container-->Object 某个帐户下的某个容器的某个对象,能够经过HTTP(S),Object API,S3进行存取。
6.Cinder(块存储服务模块)
主要功能:管理全部块存储设备,为VM服务。
cinder-api处理发送过来的请求,处理结果发送到rabbit MQ,经过消息中间件把全部请求发送到cinder-scheduler,经过调度器决定存储到哪里,而且建立VM,cinder-volume管理存储模块的生命周期。
7.Neutorn(网络服务组件)
主要功能:为云计算提供虚拟的网络功能,为每一个不一样的租户创建独立的网路环境。
三种不一样的网络模式(Flat模式 Flat DHCP模式,Vlan模式)
8.Ceilometer(监控服务组件)
Ceilometer 的目标是 计量 Metering 方面,为上层的计费、结算或者监控应用提供统一的资源使用数据收集功能。
核心组件间的关系
访问控制流程
以上是对openstack组件的基础介绍,后续将会陆续更新openstack相关的其余内容。若有错误欢迎指出。