一、openstack各大模块
1.openstack总架构图
http://3ms.huawei.com/km/blogs/details/2655265
2.nova
2.0架构图
2.1 nova-conductor
nova-compute 经常需要更新数据库,比如更新虚机的状态。 出于安全性和伸缩性的考虑,nova-compute 并不会直接访问数据库,而是将这个任务委托给 nova-conductor
2.2 nova-scheduler
虚机调度服务,负责决定在哪个计算节点上运行虚机
具体调度配置 https://www.cnblogs.com/CloudMan6/p/5441782.html
2.3 nova-compute
2.4 novncproxy
2.5 Hypervisor
计算节点上跑的虚拟化管理程序,虚机管理最底层的程序。 不同虚拟化技术提供自己的 Hypervisor。 常用的 Hypervisor 有 KVM,Xen, VMWare 等
2.6 nova-console
用户可以通过多种方式访问虚机的控制台:
nova-novncproxy,基于 Web 浏览器的 VNC 访问 nova-spicehtml5proxy,
基于 HTML5 浏览器的 SPICE 访问 nova-xvncproxy,
基于 Java 客户端的 VNC 访问
2.7 nova-consoleauth
负责对访问虚机控制台请求提供 Token 认证
2.8 nova-cert
提供 x509 证书支持
4、glance
4.1含义
管理 VM 的启动镜像,Nova 创建 VM 时将使用 Glance 提供的镜像。
4..2glance架构图
Image 的 metadata 会保持到 database 中,默认是 MySQL;image 是存放在 backend
4.3操作glance
4.3.1添加镜像
ui方式 https://www.cnblogs.com/CloudMan6/p/5393376.html
cli方式 glance image-create --name cirros --file /tmp/cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-format bare --progress
4.3.2删除镜像
ui方式 https://www.cnblogs.com/CloudMan6/p/5402490.html
cli方式 glance image-delete image-id名
4.3.3查询
glance image-list
5、cinder
5.1含义
为云平台提供统一接口,按需分配的,持久化的块存储服务(类似于Amazon EBS服务)
通过驱动的方式接入不同种类的后端存储(本地存储,网络存储,FCSAN,IPSAN)
5.2 cinder架构图
参考:https://www.cnblogs.com/CloudMan6/p/5573159.html
cinder-api
接收 API 请求,调用 cinder-volume 执行操作。
cinder-volume
管理 volume 的服务,与 volume provider 协调工作,管理 volume 的生命周期。运行 cinder-volume 服务的节点被称作为存储节点。
cinder-volume 会定期向 Cinder 报告。cinder-volume 就会报告当前存储节点的资源使用情况
cinder-scheduler
scheduler 通过调度算法选择最合适的存储节点创建 volume。
参考:https://www.cnblogs.com/CloudMan6/p/5589707.html
volume provider(LVS,NFS等)
数据的存储设备,为 volume 提供物理存储空间。 cinder-volume 支持多种 volume provider,每种 volume provider 通过自己的 driver 与cinder-volume 协调工作。
Message Queue
Cinder 各个子服务通过消息队列实现进程间通信和相互协作。因为有了消息队列,子服务之间实现了解耦,这种松散的结构也是分布式系统的重要特征。
Database
Cinder 有一些数据需要存放到数据库中,一般使用 MySQL。数据库是安装在控制节点上的,比如在我们的实验环境中,可以访问名称为“cinder”的数据库。
Driver 框架
存储节点支持多种 volume provider,包括 LVM, NFS, Ceph, GlusterFS,以及 EMC, IBM 等商业存储系统。
cinder-volume 为这些 volume provider 定义了统一的 driver 接口,volume provider 只需要实现这些接口
参考:https://www.cnblogs.com/CloudMan6/p/5578673.html
5.3 存储节点上本地的 LV 如何挂载到计算节点的 instance 上呢?通常情况存储节点和计算节点是不同的物理节点
Cinder 的存储节点 cinder-volume 默认使用 tgt 软件来管理和监控 iSCSI target,在计算节点 nova-compute 使用 iscsiadm 执行 initiator 相关操作。
参考:https://www.cnblogs.com/CloudMan6/p/5624930.html
5.4 extend volume增加容量
参考:https://www.cnblogs.com/CloudMan6/p/5645305.html
5.5 snapshot
参考:https://www.cnblogs.com/CloudMan6/p/5657744.html
5.6 backup volume
参考:https://www.cnblogs.com/CloudMan6/p/5662236.html
5.7 restore volume
参考:https://www.cnblogs.com/CloudMan6/p/5668872.html
5.8 boot from volume
参考: https://www.cnblogs.com/CloudMan6/p/5679384.html
5.9 NFS volume
参考: https://www.cnblogs.com/CloudMan6/p/5683352.html
https://www.cnblogs.com/CloudMan6/p/5693771.html
6、swift对象存储
6.1含义
提供对象存储服务。VM 可以通过 RESTful API 存放对象数据。作为可选的方案,Glance 可以将镜像存放在 Swift 中;Cinder 也可以将 Volume 备份到 Swift 中。
6.2优点
数据在整个系统中均匀分布
没有中央数据库
Account/Container/Object三级存储结构均无需文件系统,且均有N(>=3)份拷贝
6.3swift架构
7、keystone鉴权管理
7.1keystone架构图
user:一个使用openstack云服务的人、系统或者服务。
project:项目,一组资源集合,包括虚拟资源如网络、虚拟机、卷等资源关联。
role:用户角色,和policy配合使用。
token:一个通过keystone验证的用户标识,它的范围与user+project或者user+domain关联,根据获取的token的方式来区分。
service:compute,image,identity,volume,network。
endpoint:service的网络接入地址,具有region属性。
group:用户的集合,便于给用户整体授予和取消权限
domain:类似命名空间,含有用户、角色、Group、Project等。
policy:对于服务的操作规则,和角色相关,可以定义哪个角色可以进行哪些操作(v3版本只增加了crud操作,没有逻辑实现替代policy.json的功能)
trust:一个用户可以通过trust将自己的role和个人信息转交给另一个用户使用
8、Ceilometer
8.1含义
OpenStack中Ceilometer能把I层内部发生的事情和系统的运行情况收集起来,产生计量数据。FS OpenStack中Ceilometer主要为上层运维组件提供监控与告警数据,公有云下可用于计费
8.2ceilometer框架
9、heat云编排
9.1heat架构图
模板是openstack资源的集合(虚拟机、网络、存储、告警、浮动IP、安全组、伸缩组、嵌套stack等),通过定义模板,可以将需要创建的资源在模板中描述,用此模板可以多次创建需要的资源。
由heat-api服务将这些模板由MQ实现的RPC方法发送至heat-engine服务处理,该服务将负责按照heat的规则解析这些模板,并最终将按照模板中定义的资源转换为对不同组件API的调用,实现应用的部署与安装。