project:对资源进行分组和隔离。
service:nova、cinder、glance......
endpoint:url,service通过endpoint暴露api,user 通过endpoint访问、操作资源
role:通过定义role,赋予不同的权限,实现访问控制。openstack 默认配置只区分 admin 和非 admin role。
每个对象都有id,delete、show等操作以 id 为参数。
glance
image 元数据保存在数据库 mysql 中,真正的 image 存放在后端,glance 支持多种 backend,在 glance-api.conf 内进行配置。
glance-api.log 记录 rest api 调用情况
glance-registry.log 记录 glance 服务处理请求的过程以及数据库操作
想要查看详细的日志,需要把glance.conf 中的debug打开,默认打开。
nova
组件
nova-api
接受和响应客户的api调用
nova-scheduler
虚机调度服务,决定在那个计算节点运行虚机
nova-compute
管理虚机,通过调用 hypervison api 管理虚机生命周期
hypervisor
计算节点上跑的虚拟化管理程序,常用的有 kvm、xen、vmware
nova-conductor
替nova-compute 访问和更新数据库
nova-console
访问虚机控制台
nova-novncproxy
nova-spicehtml5proxy
nova-xvpnvncproxy
nova-consoleauth
对访问虚机控制台请求提供token
部署方案
计算节点安装 hypervison,上面运行虚拟机。
只有 nova-compute 需要放在计算节点,其他子服务放在控制节点。
创建虚机流程
1. 向 nova-api 发送请求创建虚机
2. nova-api 向rabbitmq发送消息:让scheduler创建虚机
3. scheduer 收到消息,执行调度算法选择计算节点A,向 rabbitmq 发送消息:在A上面创建虚机
4. A上的nova-compute 从 rabbitmq 收到消息,在 hypervisor 上启动虚机
5. 创建虚机过程中,nova-compute 需要查询和更新数据库,向 rabbitmq 发送消息:让 nova-conductor 访问和更新数据库
Message Queue
为解耦各个子服务,Nova 通过 Message Queue 作为子服务的信息中转站。 所以在架构图上子服务之间没有直接的连线,是通过 Message Queue 联系的。
openstack 默认使用 rabbitmq
标签:compute,rabbitmq,nova,api,笔记,虚机,glance,基本概念 From: https://www.cnblogs.com/pacino12134/p/17441284.html