基本概念笔记

 

常见概念

project:对资源进行分组和隔离。

service:nova、cinder、glance......

endpoint:url,service 通过 endpoint 暴露 api,user 通过 endpoint 访问、操作资源

role:通过定义 role,赋予不同的权限,实现访问控制。openstack 默认配置只区分 admin 和非 admin role。

每个对象都有 id,delete、show 等操作以 id 为参数。

instance:用来表示虚机

flavor:定义了 vcpu、ram、disk、metadata,用作模板,创建 instance 时,用户只需要指定用哪个falvor就可以了

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

1. 定时向 openstack 报告计算节点状态

2. 通过调用 hypervison api 管理虚机 instance 生命周期,与 hypervisor 一起实现对 instance 生命周期管理。

 

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 

 

posted @ 2023-05-30 18:16  Austin_anheqiao  阅读(15)  评论(0编辑  收藏  举报