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

  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.mfbz.cn/a/184058.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

81基于matlab GUI的图像处理

基于matlab GUI的图像处理,功能包括图像颜色处理(灰度图像、二值图像、反色变换、直方图、拉伸变换);像素操作(读取像素、修改像素)、平滑滤波(均值平滑、高斯平滑、中值平滑)、图像…

在VMware Workstation的Centos上实现KVM虚拟机的安装部署:详细安装部署过程(保姆级)

KVM概述 • 以色列qumranet公司研发,后被RedHad公司收购 (1)kvm只支持x86平台 (2)依赖于 HVM,inter VT AMD-v • KVM是(Kernel-based Virtual Machine)的简称,是一个开源的系统虚拟…

SpringCloud Alibaba集成 Gateway(自定义负载均衡器)、Nacos(配置中心、注册中心)、loadbalancer

文章目录 POM依赖环境准备配置配置文件配置类 案例展示 POM依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.10</version><relativePath/></p…

Android开发从0开始(ContentProvider与数据)

内容提供者&#xff1a;ContentProvider 为App存取内部数据提供外部接口&#xff0c;让不同应用共享数据。 ①在配置里AndroidManifest.xml <provider android:name".UserInfoProvider" android:authorities"com.example.chapter07_server.provider.U…

pytest-pytest-html测试报告这样做,学完能涨薪3k

在 pytest 中提供了生成html格式测试报告的插件 pytest-html 安装 安装命令如下&#xff1a; pip install pytest-html使用 我们已经知道执行用例的两种方式&#xff0c;pytest.main()执行和命令行执行&#xff0c;而要使用pytest-html生成报告&#xff0c;只需要在执行时加…

不小心删除了重要文档?试试这10个工具,成功率高达99%!

微软于今年早些时候发布了下一版本的 Windows 操作系统 Windows 11。测试版已经推出&#xff0c;而稳定版本将于今年晚些时候推出。很多Windows爱好者已经安装了Windows版。毫无疑问&#xff0c;测试版让用户体验了Windows的新功能。然而&#xff0c;测试版中也出现了很多未知的…

mybatis注解方式动态标签时有特殊符号,出现元素内容必须由格式正确的字符数据或标记组成

原始代码demo Select("SELECT COUNT(1) FROM AAAA WHERE name #{nage} AND age< 4") public Integer sumXxxxx(String nage, String age);现需求改为nage可以为空&#xff0c;因此使用了动态拼接 Select("<script> SELECT COUNT(1) FROM AAAA WHERE …

Windows | 模仿网易云任务栏实现自定义按钮及缩略图

前言 最近更新网易云发现任务栏按钮中除了播放相关的按钮&#xff0c;多了一个喜欢的按钮&#xff1a; 之前我一直以为网易云任务栏的按钮只是 Windows 为音乐软件专门提供的&#xff0c;于是我又看了一眼系统自带的播放器&#xff0c;发现并没有爱心按钮&#xff1a; 这时我就…

基于5G+物联网+SaaS+AI的农业大数据综合解决方案:PPT全文44页,附下载

关键词&#xff1a;智慧农业大数据&#xff0c;5G智慧农业&#xff0c;物联网智慧农业&#xff0c;SaaS智慧农业&#xff0c;AI智慧农业&#xff0c;智慧农业大数据平台 一、智慧农业大数据建设背景 1、应对全球人口快速增长带来的粮食生产压力&#xff0c;未来的粮食生产力必…

【C++】:多态

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下有关多态的知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精通 数据结…

Python Opencv实践 - 全景图片拼接stitcher

做一个全景图片切片的程序Spliter 由于手里没有切割好的全景图片资源&#xff0c;因此首先写了一个切片的程序spliter。 如果有现成的切割好的待拼接的切片文件&#xff0c;则不需要使用spliter。 对于全景图片的拼接&#xff0c;需要注意一点&#xff0c;各个切片图片之间要有…

什么是机器学习

前言 机器学习&#xff08;Machine Learning, ML&#xff09;是一个总称&#xff0c;用于解决由各位程序员自己基于 if-else 等规则开发算法而导致成本过高的问题&#xff0c;想要通过帮助机器 「发现」 它们 「自己」 解决问题的算法来解决 &#xff0c;而不需要程序员将所有…

影响语音芯片识别率的因素概述

语音芯片识别率是指芯片对人类语音信号的识别能力。在实际应用中&#xff0c;语音芯片识别率的高低直接影响了用户对芯片的体验和满意度。因此&#xff0c;提高语音芯片识别率是当前语音技术领域的重要任务之一。 1.、语音芯片的硬件设计&#xff1a;设计良好的芯片可以更好地…

竹云参编《公共数据授权运营平台技术要求》团体标准正式发布

2023年11月23日&#xff0c;第二届全球数字贸易博览会“数据要素治理与市场化论坛”于杭州成功召开&#xff0c;国家数据局党组书记、局长刘烈宏&#xff0c;浙江省委常委、常务副省长徐文光出席会议并致辞。会上&#xff0c;国家工业信息安全发展研究中心发布并解读了我国首部…

大厂前沿技术导航

百度Geek说 - 知乎 腾讯技术 - 知乎 美团技术团队

Java 项目中常用注解汇总!! (自整理)

Spring框架的注解 PostMapping("/getDetails") post请求 映射到接口 RequestBody 用来接收HTTP请求体中参数 GetMapping("/getDetails") get请求 映射到接口 RequestParam 用来接收URL中的查询参数 PutMappi…

Tomcat 配置

1&#xff1a; 打开 2&#xff1a;选择版本号&#xff0c;我这边是 1.7 3&#xff1a;添加 web 4: 添加jar包 5&#xff1a;添加 6&#xff1a;添加 Tomcat

逆矩阵相关性质与例题

1.方阵的行列式&#xff1a;就是将方阵中的每一个元素转换至行列式中。 1.性质一&#xff1a;转置方阵的行列式等于转置前的行列式。&#xff08;对标性质&#xff1a;行列式与它的转置行列式相等&#xff09; 2.性质二&#xff1a;|ka||a|*k的n次方&#xff0c;n为方阵阶数。 …

平台工程时代的 Kubernetes 揭秘:2023年生产状况报告深度剖析

Kubernetes 在生产环境中的复杂性已经成为常态&#xff0c;在2023年这个平台工程盛行的时代&#xff0c;容器管理的最大亮点可能在于其灵活性&#xff0c;然而在运维政策和治理等方面仍然存在诸多挑战。八年过去了&#xff0c;在生产环境中使用 Kubernetes 仍然需要面临许多挑战…

目前比较好用的护眼台灯,小学生适合的护眼台灯推荐

随着技术的发展&#xff0c;灯光早已成为每家每户都需要的东西。但是灯光不好可能会对眼睛造成伤害是很多人没有注意到的。现在随着护眼灯产品越来越多&#xff0c;市场上台灯的选择越来越多样化&#xff0c;如何选择一个对眼睛无伤害、无辐射的台灯成为许多家长首先要考虑的问…
最新文章