Nova 物理部署方案
 
前面大家已经看到 Nova 由很多子服务组成,我们也知道OpenStack 是一个分布式系统,可以部署到若干节点上,那么接下来大家可能就会问:Nova的这些服务在物理上应该如何部署呢?
 
对于Nova,这些服务会部署在两类节点上:计算节点和控制节点
 
计算节点上安装了Hypervisor,上面运行虚拟机,由此可知:
 
    1、只有nova-compute需要放在计算节点上
    2、其他子服务则是放在控制节点上的
 
下面我们可以看看实验环境的具体部署情况。通过在计算节点和控制节点上运行  ps -efl | grep nova 来查看运行的nova 子服务
 
root@DevStack-Controller:~# ps -e | grep nova    #    控制节点
1818 pts/14   00:20:24 nova-conductor
2717 pts/14   00:09:12 nova-conductor
2718 pts/14   00:09:20 nova-conductor
2801 pts/15   00:03:29 nova-scheduler
3294 pts/16   00:00:57 nova-novncproxy
3955 pts/17   00:03:29 nova-consoleaut
4613 pts/18   00:10:13 nova-compute
28102 pts/8    00:20:41 nova-api
28282 pts/8    00:01:24 nova-api
28283 pts/8    00:01:03 nova-api
28285 pts/8    00:00:09 nova-api
28286 pts/8    00:00:09 nova-api
 
root@DevStack-Compute:~# ps -e | grep nova    #    计算节点
5368 pts/4    00:07:05 nova-compute
 
RabbitMQ 和 MySQL 也是放在控制节点上的。可能信息的同学已经发现我们的控制节点上运行了 nova-compute 。这实际上也就意味着DevStack-Controller既是一个计算节点,也是一个控制节点,也可以在上面运行虚机。
 
这也向我们展示了 OpenStack这种分布式架构部署上的灵活性:可以将所有服务都放在一台物理机上,作为一个 All-in-One的测试环境。也可以将服务部署在多台物理机上,获得更好的性能和高可用。
 
另外,也可以用命令查看 nova-* 子服务都分布在哪些节点上
 
stack@DevStack-Controller:~$ nova service-list
+----+------------------+---------------------+----------+---------+-------+----------------------------+-----------------+
| Id | Binary           | Host                | Zone     | Status  | State | Updated_at                 | Disabled Reason |
+----+------------------+---------------------+----------+---------+-------+----------------------------+-----------------+
| 3  | nova-conductor   | DevStack-Controller | internal | enabled | up    | 2019-05-23T02:01:25.000000 | -               |
| 4  | nova-scheduler   | DevStack-Controller | internal | enabled | up    | 2019-05-23T02:01:35.000000 | -               |
| 5  | nova-consoleauth | DevStack-Controller | internal | enabled | up    | 2019-05-23T02:01:26.000000 | -               |
| 6  | nova-compute     | DevStack-Controller | nova     | enabled | up    | 2019-05-23T02:01:29.000000 | -               |
| 7  | nova-compute     | DevStack-Compute    | nova     | enabled | up    | 2019-05-23T02:01:30.000000 | -               |
+----+------------------+---------------------+----------+---------+-------+----------------------------+-----------------+
 
从虚机创建流程看 nova-* 子服务如何协同工作
 
从学习 Nova 的角度看,虚机创建是一个非常好的场景,涉及的 nova-* 子服务很全,下面是流程图
 
 
    1、客户(也可以是OpenStack最终用户,也就是其他程序)向API(nova-api)发送请求“帮我创建一台虚机”
    2、API对请求做一些必要的处理后,想 Messaging(RabbitMQ)发送一条消息“让Scheduler创建一台虚机”
    3、Scheduler(nova-scheduler)从Messaging 获取到 API发给他的消息,然后执行调度算法,从若干计算节点中选出节点A
    4、Scheduler 向 Messaging 发送了一条消息:“在计算节点A上创建这个虚拟”
    5、计算节点A的Compute(nova-compute)从Messaging 中获取到 Scheduler 发给他的消息,然后在本节点的Hypervisor上启动虚机
    6、在虚机创建的过程中,Compute 如果需要查询或更新数据库信息,会通过Messaging向 Conductor (nova-conductor)发送消息,Conductor 负责数据库访问
 
以上是创建虚机最核心的步骤,当然省略了很多细节,我们会在后面的章节详细讨论。这个几个步骤向我们展示了 nova-*  子服务之间的协作方式,也体现了OpenStack整个系统的分布式设计思想,掌握这种思想对我们深入理解OpenStack会非常有帮助。
 

O024、Nova组件如何协同工作的更多相关文章

  1. Nova 组件如何协同工作 - 每天5分钟玩转 OpenStack(24)

    Nova 物理部署方案 前面大家已经看到 Nova 由很多子服务组成,同时我们也知道 OpenStack 是一个分布式系统,可以部署到若干节点上,那么接下来大家可能就会问: Nova 的这些服务在物理 ...

  2. OpenStack—nova组件计算服务

    nova介绍: Nova 是 OpenStack 最核心的服务,负责维护和管理云环境的计算资源.OpenStack 作为 IaaS 的云操作系统,虚拟机生命周期管理也就是通过 Nova 来实现的. 用 ...

  3. 五、OpenStack—nova组件介绍与安装

    一.nova介绍 Nova 是 OpenStack 最核心的服务,负责维护和管理云环境的计算资源.OpenStack 作为 IaaS 的云操作系统,虚拟机生命周期管理也就是通过 Nova 来实现的. ...

  4. Nova 组件详解 - 每天5分钟玩转 OpenStack(26)

    本节开始,我们将详细讲解 Nova 的各个子服务. 前面架构概览一节知道 Nova 有若干 nova-* 的子服务,下面我们将依次学习最重要的几个.今天先讨论 nova-api 和 nova-cond ...

  5. Nova 组件详解

    本节开始,我们将详细讲解 Nova 的各个子服务. 前面架构概览一节知道 Nova 有若干 nova-* 的子服务,下面我们将依次学习最重要的几个.今天先讨论 nova-api 和 nova-cond ...

  6. O026、Nova组件详解

    参考https://www.cnblogs.com/CloudMan6/p/5436855.html   本节开始,我们将详细讲解 Nova 的各个子服务.   前面架构概览一节知道 Nova 有若干 ...

  7. openstack中Nova组件简解

    一.Nova组件概述 计算节点通过Nova Computer进行虚拟机创建,通过libvirt调用kvm创建虚拟机,nova之间通信通过rabbitMQ队列进行通信. Nova位于Openstack架 ...

  8. OpenStack 的Nova组件详解

    Open Stack Compute Infrastructure (Nova) Nova是OpenStack云中的计算组织控制器.支持OpenStack云中实例(instances)生命周期的所有活 ...

  9. Openstack计算Nova组件

    欢迎来到虚拟机的世界,如果我们将Openstack环境里运行在各个无力节点上的各种服务看座生命体,而不是死的指令集合,那么就是一个虚拟机的世界. Openstack的计算组件,也就是Nova项目实现了 ...

随机推荐

  1. MediaFoundation初步研究

    用MediaFoundation写了个媒体播放程序,封装成了DLL,MFVideo.dll,写了个使用例子

  2. Thymeleaf Multiple Template Locations using Spring Boot

    1. Overview In this tutorial, we'll see how we can define multiple template locations using Thymelea ...

  3. 如何查看MySQL connection id连接id

    每个MySQL连接,都有一个连接ID,可以通过 connection_id()查看. 连接id也可以通过以下方式查看: show processlist中id列 information_schema. ...

  4. 网络通信框架之retrofit

    主页: [https://github.com/square/retrofit](https://github.com/square/retrofit) 注意: 使用Retrofit的前提是**服务器 ...

  5. Odp.Net 连接Oracle

    1.C#连接Oracle可以不安装客户端,但是需要借助Odp.net 免安装Oracle客户端: 将5个Oracle客户端的类库文件提取出来,放到程序根目录下,分别是oci.dll.Oracle.Da ...

  6. U盘文档自动备份

    检测到插入U盘即复制其中doc.ppt文件到指定目录 (ucopy.bat): @echo off :again del /Q /f "%temp%\copy.tmp" >n ...

  7. springboot后端实现条件查询,要配合使用mybatis

    package cn.com.dyg.work.sqlgen; import cn.com.dyg.work.common.exception.DefException; import cn.com. ...

  8. Nginx代理与反向代理、负载均衡实

    通过 Nginx 提供的反向代理和负载均衡功能,可以合理的完成业务的分配,提高网站的处理能力:同时利用缓存功能,还可以将不需要实时更新的动态页面输出结果,转化为静态网页形成缓存,从而提高网站的响应速度 ...

  9. MODFLOW几个版本的区别

    GWF = GroundWater Flow MODFLOW-2005 — the GWF Model contains revisions of the commonly used flow pac ...

  10. Leetcode之广度优先搜索(BFS)专题-1162. 地图分析(As Far from Land as Possible)

    Leetcode之广度优先搜索(BFS)专题-1162. 地图分析(As Far from Land as Possible) BFS入门详解:Leetcode之广度优先搜索(BFS)专题-429. ...