nova组件简介

news2024/11/18 4:25:50

目录

组件关系图 

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组件相关的服务,用于管理和提供计算资源的功能。以下是它们的作用:

  1. openstack-nova-api.service:

    • 作用:提供了OpenStack Nova API 服务,允许用户和其他OpenStack组件通过API进行与计算资源相关的操作,例如创建、管理和监控虚拟机实例。
  2. openstack-nova-conductor.service:

    • 作用:Nova Conductor服务充当调度和创建实例的中间层,负责处理来自Nova API的请求并将它们传递给合适的计算节点。这有助于分离控制节点和计算节点的功能,提高系统的可伸缩性。
  3. openstack-nova-consoleauth.service:

    • 作用:提供了Nova Console Authorization服务,用于验证和授权对控制台的访问。当用户尝试连接到虚拟机控制台时,此服务确保用户有权访问相关的控制台。
  4. openstack-nova-novncproxy.service:

    • 作用:Nova NoVNC Proxy服务允许用户通过Web浏览器访问虚拟机的图形控制台。这个服务负责代理和提供对虚拟机图形控制台的访问。
  5. openstack-nova-scheduler.service:

    • 作用:Nova Scheduler服务负责根据用户请求和系统资源的可用性,选择合适的计算节点来启动虚拟机实例。它确保虚拟机实例被分配到适当的计算节点上,以满足用户的需求并实现负载均衡。

这些服务一起协作,为OpenStack云平台提供了计算资源管理的核心功能。

openstack-nova-conductor.service详解

openstack-nova-conductor.service 是 OpenStack 中 Nova 组件的一个服务,其主要作用是充当调度和创建实例的中间层,通过将请求从 Nova API 传递到合适的计算节点来协助分离控制节点和计算节点的功能。以下是对 openstack-nova-conductor.service 的详细介绍:

作用和功能:

  1. 调度功能:

    • Nova Conductor 负责实现虚拟机实例的调度。当用户通过 Nova API 提交创建虚拟机的请求时,Conductor 会决定将实例分配到哪个计算节点上运行。这有助于确保资源的合理利用和负载均衡。
  2. 实例创建和管理:

    • 接收来自 Nova API 的创建虚拟机的请求,并负责将这些请求传递给计算节点。通过 Conductor,可以在计算节点上启动、停止、暂停等虚拟机实例的操作。
  3. 中间层的作用:

    • 作为中间层,Conductor 的存在使得 Nova 控制节点和计算节点之间的通信更加高效和解耦。它充当了请求的代理,处理了一些计算节点上不需要直接执行的任务,使得计算节点可以专注于实际的虚拟机实例的管理和运行。
  4. 分布式架构支持:

    • Nova Conductor 的设计使得它能够支持分布式架构。这对于大规模的云平台来说是至关重要的,因为它允许 Nova 部署在多个节点上,以提高系统的可伸缩性和容错性。

工作流程:

  1. 用户通过 Nova API 提交创建虚拟机的请求。
  2. Nova API 将请求发送到 Nova Conductor。
  3. Nova Conductor 决定将虚拟机实例分配到哪个计算节点上。
  4. Nova Conductor 将请求传递给相应的计算节点。
  5. 计算节点执行实际的虚拟机实例创建和管理操作。
  6. 计算节点将结果返回给 Nova Conductor。
  7. Nova Conductor 将结果传递给 Nova API,最终反馈给用户。

通过这个工作流程,Nova Conductor 起到了协调和调度的作用,确保虚拟机实例被有效地分配和管理。

openstack-nova-conductor.service与openstack-nova-scheduler.service在调度功能上的区别

openstack-nova-conductor.serviceopenstack-nova-scheduler.service 都在 OpenStack 中的 Nova 组件中扮演了调度的角色,但它们的功能和职责略有不同。

openstack-nova-conductor.service 的调度功能:

  1. 调度实例的位置:

    • Nova Conductor 通过将请求从 Nova API 传递到合适的计算节点,实现了虚拟机实例的调度。它确保将实例分配到可用的计算节点上,考虑到系统资源的利用率和负载均衡。
  2. 中间层的作用:

    • Nova Conductor 充当了调度和计算节点之间的中间层。它负责处理一些计算节点上不需要直接执行的任务,从而解耦了控制节点和计算节点之间的通信。
  3. 实例的创建和管理:

    • 在实现调度的同时,Nova Conductor 也负责实例的创建和管理。它接收来自 Nova API 的创建虚拟机的请求,并将这些请求传递给适当的计算节点。

openstack-nova-scheduler.service 的调度功能:

  1. 决定实例的位置:

    • Nova Scheduler 负责决定将虚拟机实例分配到哪个计算节点上。它在接收到来自 Nova API 的请求时,通过考虑计算节点的可用性、负载和其他条件,选择最合适的节点来放置实例。
  2. 负载均衡:

    • Nova Scheduler 通过考虑各个计算节点的负载情况,努力实现资源的均衡分配。这有助于防止某些计算节点过载,同时保证系统资源的有效利用。
  3. 可插拔的调度器:

    • 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 组件的一个服务,它在计算节点上运行,并负责实际的虚拟机实例的创建、管理和监控。以下是该服务的主要功能:

作用和功能:

  1. 虚拟机实例的创建和管理:

    • Nova Compute 服务负责在计算节点上启动、停止、暂停、重启等虚拟机实例的操作。当 Nova Conductor 接收到来自 Nova API 的创建虚拟机的请求后,它将请求传递给相应的 Nova Compute 服务来执行实际的操作。
  2. 资源的监控和报告:

    • Nova Compute 监控计算节点上的资源使用情况,包括 CPU、内存、磁盘等。这些监控信息对于调度器(比如 Nova Scheduler)做出智能的虚拟机实例分配决策非常重要。
  3. 虚拟机的生命周期管理:

    • Nova Compute 管理虚拟机实例的整个生命周期,包括创建、暂停、恢复、迁移、销毁等操作。这确保了在整个云平台中,虚拟机实例的状态得以有效管理。
  4. 与其他组件的通信:

    • 与 Nova Conductor、Nova API 以及其他相关服务的通信。Nova Compute 接收来自 Conductor 的指令,执行相应的操作,并将结果反馈给 Conductor。这种协作确保了在分布式环境中的计算节点能够有效地执行管理任务。
  5. 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 Server
   Loaded: 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 ago
 Main 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-api

Oct 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 sys

from nova.cmd.api import main


if __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 = 0
    for api in CONF.enabled_apis:
        should_use_ssl = api in CONF.enabled_ssl_apis
        try:
            server = service.WSGIService(api, use_ssl=should_use_ssl)
            launcher.launch_service(server, workers=server.workers or 1)
            started += 1
        except 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()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1253102.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

4.25每日一题(通过被积函数和积分区域(不等式)选正确的坐标系求二重积分)

一、正确画出积分区域;通过积分区域和被积函数选择方法 二、如何根据被积函数和积分区域正确选择通过极坐标还是根据直角坐标方程计算: (1)适合极坐标的积分区域:圆或者部分圆 (2)适合极坐标的…

续新的SSL证书

一、重新申请证书并下载证书: https://www.ename.net/ 二、IIS中在【服务器证书】中删除旧的证书,导入新的证书; 三、在站点的绑定选择新证书;

万字解析设计模式之责任链模式、状态模式

目录 一、责任链模式 1.1概述 1.2结构 1.3实现 1.4 优缺点 1.5应用场景 1.6源码解析 二、状态模式 2.1概述 2.2结构 2.3实现 2.4优缺点 2.5应用场景 三、责任链模式实验 任务描述 实现方式 编程要求 测试说明 四、状态模式实验 任务描述 实现方式 编程要…

2001-2022年上市公-供应链话语权测算数据(原始数据+处理代码Stata do文档+结果)

2001-2022年上市公-供应链话语权测算数据(原始数据处理代码Stata do文档结果) 1、时间:2001-2022年 2、指标:企业代码、股票代码、年份、股票简称、上市公司前五大供应商的采购额之和占企业当年总采购额的比例、上市公司前五大客…

林业无人机如何提升巡山护林效率?

在郁郁森林之上,一架无人机正盘旋在上空时刻观察着林区的情况。凭借复亚智能的全自动巡检系统,无人机巡山护林的巡视范围和反馈实时性得到了显著提升。 一、林业无人机:科技赋能森林防火 秋季林区时常发生火灾,林业无人机在森林防…

关于自动化测试的误区,你屡清楚了吗?

自动化测试作为软件测试的一种技术手段,时常被大家讨论。本人在自动化技术方面有过略有小成,今天聊一聊关于自动化的一些误区,以帮助新手能正确的了解和认识自动化一些概念。 测试的行为本质是什么? 为什么先从这个概念开始谈起&…

Codesys 数据结构:1.2.4 扩展数据类型之联合体(UNION) 类型详解

Codesys代码代写&#xff0c;程序开发&#xff0c;软件定制&#xff0c;bug修改&#xff0c;问题咨询&#xff1a; T宝搜索店铺【林磊教育】 定义&声明 联合体就是不同类型的变量占用同一个内存的数据结构&#xff1b; 其声明语法如下 TYPE <联合体名字>:UNION<…

【Linux】驱动程序同步和异步通知方式

一、应用程序APP&#xff0c;访问驱动程序/dev/input/enent1流程&#xff1a; 假设用户程序直接访问 /dev/input/event0 设备节点&#xff0c;或者使用 tslib 访问设备节点&#xff0c;数据的流程如下&#xff1a; APP 发起读操作&#xff0c;若无数据则休眠&#xff1b;用户操…

拯救者windows11系统经常出现wifi图标消失断网解决思路

项目场景&#xff1a; 最近刚买回来一台联想拯救者电脑&#xff0c;但是&#xff0c;在使用过程中总是会出现wifi图标突然消失的情况&#xff0c;而且多次重启电脑或者关机电脑也没有用。也不知道是电脑的原因还是系统的原因 问题描述 1.图标正常显示情况&#xff1a; 2.图标异…

创新研报|企业如何在不确定时期突破至新高度?

报告下载地址&#xff1a; 创新研报&#xff5c;BCG 2023最创新企业研究-在不确定时期跃升新高度 创新从未如此重要&#xff0c;领先的企业创新者正在证明这一切。BCG&#xff08;于2005年首次发布年度创新报告&#xff0c;其中列出了全球创新高管最钦佩的50家企业&#xf…

knime 中没有column expressions,怎么下载

knime 中没有column expressions&#xff0c;怎么下载 1、打开view&#xff0c;然后找到knime hub&#xff0c;column expression 2、往里面拖动&#xff0c;就可以安装了 3、然后会出现重启&#xff0c;搜索就可以出现啦

第十九章 解读利用pytorch可视化特征图以及卷积核参数(工具)

介绍一种可视化feaature maps以及kernel weights的方法 推荐可视化工具TensorBoard&#xff1a;可以查看整个计算图的数据流向&#xff0c;保存再训练过程中的损失信息&#xff0c;准确率信息等 学习视频&#xff1a; 使用pytorch查看中间层特征矩阵以及卷积核参数_哔哩哔哩…

bkcrack的安装和使用

【利用bkcrack对zip压缩包进行明文攻击&#xff08;不需要压缩包密码也能解压&#xff01;&#xff01;&#xff01;&#xff09;】https://www.bilibili.com/video/BV1iG411A7yJ?vd_sourcec5ef8c678fa8af11dd3bf3a06e8f19b9 github仓库:https://github.com/kimci86/bkcrack …

【2023传智杯】第六届传智杯程序设计挑战赛AB组-DEF题解题分析详解【JavaPythonC++解题笔记】

本文仅为【2023传智杯】第六届传智杯程序设计挑战赛-题目解题分析详解的解题个人笔记,个人解题分析记录。 本文包含:第六届传智杯程序设计挑战赛题目、解题思路分析、解题代码、解题代码详解 文章目录 一.前言二.比赛题目(AB俩组)D题题目E题题目F题题目三.解题代码D题解题思…

论文阅读:MedSegDiff: Medical Image Segmentation with Diffusion Probabilistic Model

论文标题&#xff1a; MedSegDiff: Medical Image Segmentation with Diffusion Probabilistic Model 翻译&#xff1a; MedSegDiff&#xff1a;基于扩散概率模型的医学图像分割 名词解释&#xff1a; 高频分量&#xff08;高频信号&#xff09;对应着图像变化剧烈的部分&…

教你IDEA解决GIT冲突

前言 GIT基本上贯穿我们的开发生涯&#xff0c;之所以要使用git也是有很多优点的 &#x1f339;&#x1f339;&#x1f339;&#x1f339;&#x1f339;&#x1f339;&#x1f339;&#x1f339; 1.通俗易懂点&#xff0c;保存代码不丢失&#xff1a;防止因内存&#xff0c;操…

PP-OCR与文心一言强强结合,无须训练,信息抽取精度超80%!

众所周知&#xff0c;文本图像的智能分析面临诸多挑战。首先&#xff0c;文本图像的场景非常多样&#xff0c;比如论文、书籍、说明书、合同等&#xff0c;模型的泛化性难以满足要求。其次&#xff0c;有的场景比较复杂&#xff0c;比如生僻字、表格和多页PDF等&#xff0c;模型…

为什么淘宝取消双12活动?

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 淘宝取消双12活动了&#xff0c;这条消息犹如一颗重磅炸弹&#xff0c;在整个电商圈中引发了轩然大波。 不过呢&#xff0c;淘宝为了过度&#xff0c;把双12改了个名字叫“好价节”。估计是官方都…

自动化测试——自动卸载软件

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

Harmony开发 eTs公共样式抽取

Harmony系统开发使用eTs开发过程中对于样式相同且重复使用的样式可以抽取成公共样式循环利用&#xff0c;类似于android的style样式。 import router from ohos.router import cryptoFramework from ohos.security.cryptoFramework; import prompt from system.prompt class L…