nova组件简介
目录
组件关系图
controller节点
openstack-nova-api.service:
openstack-nova-conductor.service:
openstack-nova-consoleauth.service:
openstack-nova-novncproxy.service:
openstack-nova-scheduler.service:
openstack-nova-conductor.service详解
作用和功能:
工作流程:
openstack-nova-conductor.service与openstack-nova-scheduler.service在调度功能上的区别
openstack-nova-conductor.service 的调度功能:
openstack-nova-scheduler.service 的调度功能:
总结:
compute节点
openstack-nova-compute.service
作用和功能:
总结:
nova相关服务代码路径
组件关系图
controller节点
[root@controller ~]# rpm -qa | grep nova
openstack-nova-conductor-18.3.0-1.el7.noarch
puppet-nova-13.3.1-1.el7.noarch
openstack-nova-common-18.3.0-1.el7.noarch
openstack-nova-scheduler-18.3.0-1.el7.noarch
openstack-nova-console-18.3.0-1.el7.noarch
openstack-nova-api-18.3.0-1.el7.noarch
openstack-nova-placement-api-18.3.0-1.el7.noarch
python2-novaclient-11.0.1-1.el7.noarch
python-nova-18.3.0-1.el7.noarch
openstack-nova-novncproxy-18.3.0-1.el7.noarch[root@controller ~]# systemctl list-unit-files | grep -i nova | grep ena
openstack-nova-api.service enabled
openstack-nova-conductor.service enabled
openstack-nova-consoleauth.service enabled
openstack-nova-novncproxy.service enabled
openstack-nova-scheduler.service enabled
这五个服务都是与OpenStack项目中的Nova组件相关的服务,用于管理和提供计算资源的功能。以下是它们的作用:
-
openstack-nova-api.service:
- 作用:提供了OpenStack Nova API 服务,允许用户和其他OpenStack组件通过API进行与计算资源相关的操作,例如创建、管理和监控虚拟机实例。
-
openstack-nova-conductor.service:
- 作用:Nova Conductor服务充当调度和创建实例的中间层,负责处理来自Nova API的请求并将它们传递给合适的计算节点。这有助于分离控制节点和计算节点的功能,提高系统的可伸缩性。
-
openstack-nova-consoleauth.service:
- 作用:提供了Nova Console Authorization服务,用于验证和授权对控制台的访问。当用户尝试连接到虚拟机控制台时,此服务确保用户有权访问相关的控制台。
-
openstack-nova-novncproxy.service:
- 作用:Nova NoVNC Proxy服务允许用户通过Web浏览器访问虚拟机的图形控制台。这个服务负责代理和提供对虚拟机图形控制台的访问。
-
openstack-nova-scheduler.service:
- 作用:Nova Scheduler服务负责根据用户请求和系统资源的可用性,选择合适的计算节点来启动虚拟机实例。它确保虚拟机实例被分配到适当的计算节点上,以满足用户的需求并实现负载均衡。
这些服务一起协作,为OpenStack云平台提供了计算资源管理的核心功能。
openstack-nova-conductor.service详解
openstack-nova-conductor.service
是 OpenStack 中 Nova 组件的一个服务,其主要作用是充当调度和创建实例的中间层,通过将请求从 Nova API 传递到合适的计算节点来协助分离控制节点和计算节点的功能。以下是对 openstack-nova-conductor.service
的详细介绍:
作用和功能:
-
调度功能:
- Nova Conductor 负责实现虚拟机实例的调度。当用户通过 Nova API 提交创建虚拟机的请求时,Conductor 会决定将实例分配到哪个计算节点上运行。这有助于确保资源的合理利用和负载均衡。
-
实例创建和管理:
- 接收来自 Nova API 的创建虚拟机的请求,并负责将这些请求传递给计算节点。通过 Conductor,可以在计算节点上启动、停止、暂停等虚拟机实例的操作。
-
中间层的作用:
- 作为中间层,Conductor 的存在使得 Nova 控制节点和计算节点之间的通信更加高效和解耦。它充当了请求的代理,处理了一些计算节点上不需要直接执行的任务,使得计算节点可以专注于实际的虚拟机实例的管理和运行。
-
分布式架构支持:
- Nova Conductor 的设计使得它能够支持分布式架构。这对于大规模的云平台来说是至关重要的,因为它允许 Nova 部署在多个节点上,以提高系统的可伸缩性和容错性。
工作流程:
- 用户通过 Nova API 提交创建虚拟机的请求。
- Nova API 将请求发送到 Nova Conductor。
- Nova Conductor 决定将虚拟机实例分配到哪个计算节点上。
- Nova Conductor 将请求传递给相应的计算节点。
- 计算节点执行实际的虚拟机实例创建和管理操作。
- 计算节点将结果返回给 Nova Conductor。
- Nova Conductor 将结果传递给 Nova API,最终反馈给用户。
通过这个工作流程,Nova Conductor 起到了协调和调度的作用,确保虚拟机实例被有效地分配和管理。
openstack-nova-conductor.service与openstack-nova-scheduler.service在调度功能上的区别
openstack-nova-conductor.service
和 openstack-nova-scheduler.service
都在 OpenStack 中的 Nova 组件中扮演了调度的角色,但它们的功能和职责略有不同。
openstack-nova-conductor.service
的调度功能:
-
调度实例的位置:
- Nova Conductor 通过将请求从 Nova API 传递到合适的计算节点,实现了虚拟机实例的调度。它确保将实例分配到可用的计算节点上,考虑到系统资源的利用率和负载均衡。
-
中间层的作用:
- Nova Conductor 充当了调度和计算节点之间的中间层。它负责处理一些计算节点上不需要直接执行的任务,从而解耦了控制节点和计算节点之间的通信。
-
实例的创建和管理:
- 在实现调度的同时,Nova Conductor 也负责实例的创建和管理。它接收来自 Nova API 的创建虚拟机的请求,并将这些请求传递给适当的计算节点。
openstack-nova-scheduler.service
的调度功能:
-
决定实例的位置:
- Nova Scheduler 负责决定将虚拟机实例分配到哪个计算节点上。它在接收到来自 Nova API 的请求时,通过考虑计算节点的可用性、负载和其他条件,选择最合适的节点来放置实例。
-
负载均衡:
- Nova Scheduler 通过考虑各个计算节点的负载情况,努力实现资源的均衡分配。这有助于防止某些计算节点过载,同时保证系统资源的有效利用。
-
可插拔的调度器:
- Nova Scheduler 具有可插拔的调度器框架,允许管理员选择使用不同的调度算法。这样,可以根据实际需求配置调度器,以满足不同环境和策略的需求。
总结:
-
openstack-nova-conductor.service
主要负责调度和管理虚拟机实例的创建,充当了调度和计算节点之间的中间层。 -
openstack-nova-scheduler.service
则专注于选择最合适的计算节点来放置虚拟机实例,实现资源的均衡分配。
综合来看,Nova Conductor 更加直接参与实例的创建和管理,而 Nova Scheduler 则更专注于选择合适的计算节点进行实例的分配。在一些部署中,它们可能会协同工作以实现全面的资源管理和调度。
compute节点
[root@compute1 compute]# rpm -qa | grep nova
openstack-nova-compute-18.3.0-1.el7.noarch
python-nova-18.3.0-1.el7.noarch
openstack-nova-novncproxy-18.3.0-1.el7.noarch
openstack-nova-common-18.3.0-1.el7.noarch
openstack-nova-migration-18.3.0-1.el7.noarch
python2-novaclient-11.0.1-1.el7.noarch[root@compute1 ~]# systemctl list-unit-files | grep -i nova
openstack-nova-compute.service enabled
由于计算节点也安装了nova客户端,所以nova命令行也可以使用(进行身份验证即可)
openstack-nova-compute.service
openstack-nova-compute.service
是 OpenStack 中 Nova 组件的一个服务,它在计算节点上运行,并负责实际的虚拟机实例的创建、管理和监控。以下是该服务的主要功能:
作用和功能:
-
虚拟机实例的创建和管理:
- Nova Compute 服务负责在计算节点上启动、停止、暂停、重启等虚拟机实例的操作。当 Nova Conductor 接收到来自 Nova API 的创建虚拟机的请求后,它将请求传递给相应的 Nova Compute 服务来执行实际的操作。
-
资源的监控和报告:
- Nova Compute 监控计算节点上的资源使用情况,包括 CPU、内存、磁盘等。这些监控信息对于调度器(比如 Nova Scheduler)做出智能的虚拟机实例分配决策非常重要。
-
虚拟机的生命周期管理:
- Nova Compute 管理虚拟机实例的整个生命周期,包括创建、暂停、恢复、迁移、销毁等操作。这确保了在整个云平台中,虚拟机实例的状态得以有效管理。
-
与其他组件的通信:
- 与 Nova Conductor、Nova API 以及其他相关服务的通信。Nova Compute 接收来自 Conductor 的指令,执行相应的操作,并将结果反馈给 Conductor。这种协作确保了在分布式环境中的计算节点能够有效地执行管理任务。
-
Hypervisor 交互:
- 与底层的虚拟化技术(例如 KVM、QEMU、VMware 等)进行交互,以实现虚拟机的创建、启动和管理。Nova Compute 通过支持多种不同的 Hypervisor,使得 OpenStack 能够在不同的虚拟化环境中运行。
总结:
openstack-nova-compute.service
在整个 OpenStack 架构中的作用非常关键,它负责将云计算平台的抽象概念(虚拟机实例)映射到实际的计算节点上,通过与其他 Nova 组件协同工作,实现了虚拟化环境中的资源管理和虚拟机实例的运行。
nova相关服务代码路径
OpenStack所有代码都是python写的,代码默认存放路径为/usr/lib/python2.7/site-packages/
此处以openstack-nova-api.service为例进行查看演示
[root@controller nova]# systemctl status openstack-nova-api.service
● openstack-nova-api.service - OpenStack Nova API ServerLoaded: loaded (/usr/lib/systemd/system/openstack-nova-api.service; enabled; vendor preset: disabled)Active: active (running) since Mon 2023-10-09 08:42:44 CST; 4h 15min agoMain PID: 1607 (nova-api)CGroup: /system.slice/openstack-nova-api.service├─1607 /usr/bin/python2 /usr/bin/nova-api├─3565 /usr/bin/python2 /usr/bin/nova-api├─3568 /usr/bin/python2 /usr/bin/nova-api├─3575 /usr/bin/python2 /usr/bin/nova-api└─3576 /usr/bin/python2 /usr/bin/nova-apiOct 09 08:42:15 controller systemd[1]: Starting OpenStack Nova API Server...
Oct 09 08:42:44 controller systemd[1]: Started OpenStack Nova API Server.[root@controller nova]# cat /usr/lib/systemd/system/openstack-nova-api.service
[Unit]
Description=OpenStack Nova API Server
After=syslog.target network.target[Service]
Type=notify
NotifyAccess=all
TimeoutStartSec=0
Restart=always
User=nova
ExecStart=/usr/bin/nova-api[Install]
WantedBy=multi-user.target[root@controller nova]# cat /usr/bin/nova-api
#!/usr/bin/python2
# PBR Generated from u'console_scripts'import sysfrom nova.cmd.api import mainif __name__ == "__main__":sys.exit(main())
[root@controller nova]# pwd
/usr/lib/python2.7/site-packages/nova
[root@controller nova]#
[root@controller nova]# ll /usr/lib/python2.7/site-packages/nova/cmd/api.py
-rw-r--r-- 1 root root 2246 Feb 29 2020 /usr/lib/python2.7/site-packages/nova/cmd/api.py[root@controller nova]# cat /usr/lib/python2.7/site-packages/nova/cmd/api.py
...
def main():config.parse_args(sys.argv)logging.setup(CONF, "nova")objects.register_all()gmr_opts.set_defaults(CONF)if 'osapi_compute' in CONF.enabled_apis:# NOTE(mriedem): This is needed for caching the nova-compute service# version.objects.Service.enable_min_version_cache()log = logging.getLogger(__name__)gmr.TextGuruMeditation.setup_autorun(version, conf=CONF)launcher = service.process_launcher()started = 0for api in CONF.enabled_apis:should_use_ssl = api in CONF.enabled_ssl_apistry:server = service.WSGIService(api, use_ssl=should_use_ssl)launcher.launch_service(server, workers=server.workers or 1)started += 1except exception.PasteAppNotFound as ex:log.warning("%s. ``enabled_apis`` includes bad values. ""Fix to remove this warning.", ex)if started == 0:log.error('No APIs were started. ''Check the enabled_apis config option.')sys.exit(1)launcher.wait()
相关文章:

nova组件简介
目录 组件关系图 controller节点 openstack-nova-api.service: openstack-nova-conductor.service: openstack-nova-consoleauth.service: openstack-nova-novncproxy.service: openstack-nova-scheduler.service: openstack-nova-conductor.service详解 作用和功能&…...
【Vue】响应式与数据劫持
Vue.js 是一个渐进式的 JavaScript 框架,其中最重要的一个特性就是响应式(Reactivity)。Vue 借助数据劫持(Data Observation)技术实现了对数据的响应式更新,当数据发生变化时,它会自动重新渲染视…...

Modbus RTU转Profinet网关连接PLC与变频器通讯在机床上应用案例
背景:以前在机床加工车间里,工人们忙碌地操作着各种机床设备。为了使整个生产过程更加高效、流畅,进行智能化改造。 方案:在机床上,PLC通过Modbus RTU转Profinet网关连接变频器进行通讯:PLC作为整个生产线…...
Autoware 整体架构
Autoware 整体架构 测试...
【maven】手动指定jar推送
说明 为了推送第三方的jar,有时需要指定对应的jar推送到私有仓库。 示例 mvn deploy:deploy-file --settings /home/xxx/.m2/settings.xml -DgroupIdgroupId的值 -DartifactIdartifactId的值 -Dversionjar包的版本号 -Dpackagingjar -Dfilejar的路径 -Durlhttp:/…...
算法---定长子串中元音的最大数目
题目 给你字符串 s 和整数 k 。 请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。 英文中的 元音字母 为(a, e, i, o, u)。 示例 1: 输入:s “abciiidef”, k 3 输出:3 解释:…...

美国汽车零部件巨头 AutoZone 遭遇网络攻击
Security Affairs 网站披露,美国汽车配件零售商巨头 AutoZone 称其成为了 Clop MOVEit 文件传输网络攻击的受害者,导致大量数据泄露。 AutoZone 是美国最大的汽车零配件售后市场经销商之一,在美国、墨西哥、波多黎各、巴西和美属维尔京群岛经…...
WPF面试题入门篇
入门篇[2] 1. 谈谈什么是WPF? WPF(Windows Presentation Foundation)是微软公司开发的一种用于创建Windows应用程序的用户界面框架。它是.NET Framework的一部分,提供了一种基于XAML(可扩展应用程序标记语言…...

opencv-ORB检测
ORB(Oriented FAST and Rotated BRIEF)是一种图像特征检测和描述算法,结合了 FAST 关键点检测器和 BRIEF 描述子的优点。ORB 算法具有良好的性能,特别适用于实时应用,如目标追踪、相机定位等。 以下是 ORB 算法的一般…...

please upgrade numpy version to >=1.20
升级 upgrade numpy_升级numpy-CSDN博客 pip install numpy --upgrade 没有pip conda install numpy --upgrade 会报错 conda list numpy来查看numpy版本 似乎这个numpy要看numpy-base这个 似乎没有pip...

关于进制的转化
二进制转十进制: 🔰 方法一:二进制转十进制,用各数的码位与位权的乘积之和,说白了就是用从右到左的每个数去乘以2的幂次方(最右边是0),然后就所有的数相加。 补充:位权是…...
JVM 之 字节码指令
目录 一. 前言 二. 指令集 2.1. 支持的数据类型 2.2. 指令分类 三. 指令手册 3.1. 操作数栈 3.2. 运算与转换 3.3. 条件转移 3.4. 类与数组 3.5. 调度与返回加 finally 3.6. 指令手册汇总 3.7. 示例 一. 前言 字节码指令集的特点是数据量短小精干,便于传…...

阿里云跨账号建立局域网
最近有活动,和好友一并薅了下阿里云的羊毛。琢磨着两台机器组一个局域网,于是有了这个需求,把步骤记录一下: 假设两台机器叫A和B,我们开始进行建立和组网 1. 建立ECS 把A机器公共环境装好,然后使用《实例与…...

【OpenSTL】方便好用的时空预测开源库
OpenSTL:方便好用的时空预测开源库 时空预测学习是一种学习范式,它使得模型能够通过在无监督的情况下从给定的过去帧预测未来帧,从而学习空间和时间的模式。尽管近年来取得了显著的进展,但由于不同的设置、复杂的实现和难以复现性…...
【Unity】IBeginDragHandler、IDragHandler 和 IEndDragHandler 介绍
IBeginDragHandler、IDragHandler 和 IEndDragHandler 介绍 IBeginDragHandler、IDragHandler 和 IEndDragHandler 是 Unity 引擎中的三个接口,用于处理 UI 元素的拖放事件。这些接口通常结合使用,构成了 Unity 引擎的拖放事件系统。 IBeginDragHandler…...

杰发科技AC7801——Flash模拟EEP内存分布情况
简介 本文记录了在使用AutoChips芯片Flash模拟EEP过程中的一些理解 核心代码如下 #include <stdlib.h> #include "ac780x_sweeprom.h" #include "ac780x_debugout.h"#define SWEEPROM_SIZE (2048UL) /* Ssoftware eeprom size(Byte) */ #define TE…...
【前端知识】Node——http模块url模块的常用操作
一、创建简易Server const http require(http); const URL require(url);const HTTP_PORT 8088;const server http.createServer((req, res) > {// req:request请求对象,包含请求相关的信息;// res:response响应对象&…...
平衡二叉树 (简单易懂)
目录 一、概念 二、性质 三、插入操作 四、旋转操作 五、删除操作 六、代码实现 七、复杂度 一、概念 平衡二叉树(Balanced Binary Tree)是一种特殊的二叉搜索树(Binary Search Tree,BST),它在插入和…...
Vue.observable 是什么
Observable 翻译过来我们可以理解成可观察的 Vue.js2.6 新增 Vue.observable,让一个对象变成响应式数据。Vue 内部会用它来处理 data 函数返回的对象 。 返回的对象可以直接用于渲染函数和计算属性内,并且会在发生变更时触发相应的更新。也可以作为最小化…...

【五年创作纪念日】
机缘 我成为创作者的过程并不复杂,可以说是一个自然的发展。我是一名软件工程师,日常的工作主要是编程和解决问题。在工作的过程中,我发现有很多时候我需要查找一些特定的技术问题或者寻找一些最佳实践来解决我遇到的问题。在这个过程中&…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...

MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...