Compute Service Nova 是OpenStack最核心的服务,负责维护和管理云环境的计算资源。OpenStack作为IaaS 的云操作系统,虚拟机声明周期管理也就是通过Nova来实现的。
 
 
在上图中可以看到,Nova处于OpenStack架构的中心,其他组件都为Nova提供支持:Glance为VM提供 image 、Cinder 和 Swift 分别为 VM 提供块存储和对象存储,Neutron为VM提供网络连接。Nova架构如下:
 
 
Nova的架构比较复杂,包含很多组件。这些组件以子服务(后台deamon进程)的形式运行,可以分为以下几类:
 
API
 
    nova-api    接收和响应用户的API调用。除了提供OpenStack自己的API,nova-api还支持Amazon EC2 API。也就是说,如果客户以前使用Amazon EC2 ,并且用EC2的API开发了些工具来管理虚拟机,那么如果现在要换成OpenStack,这些工具可以无缝迁移到OpenStack,因为nova-api兼容 EC2 API,无需做任何修改。
 
Compute Core
 
    nova-scheduler 虚机调度服务,负责决定在哪个计算节点上原型虚机
 
    nova-compute 管理虚机的核心服务,通过调用Hypervisor API 实现虚机声明周期管理
 
    Hypervisor 计算节点上跑的虚拟化管理程序,虚机管理最底层的程序。不同虚拟化技术提供自己的Hypervisor。常用Hypervisor有 KVM、Xen、VMware等
 
    nova-conductor nova-compute通常需要更新数据库,比如更新虚机的状态,处于安全性和伸缩性的考虑,nova-compute 并不会直接访问数据库,而是将这个任务委托给 nova-conductor ,这个我们后面学习
 
Console Interface
 
    nova-console    用户可以通过多种方式访问虚机的控制台:
        nova-novncproxy,基于Web浏览器的VNC访问
        nova-spicehtml5proxy,基于HTML5浏览器的SPICE访问
        nova-xvpnvncproxy,基于Java客户端的VNC访问
 
    nova-consoleauth    负责对访问虚拟机控制台请求提供Token认证
 
    nova-cert    提供x509证书支持
 
Database
 
Nova会有一些数据需要存放到数据库中,一般使用MySQL。数据库安装在控制节点上。Nova使用命名为 nova 的数据库。
 
stack@DevStack-Controller:~$ mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1104
Server version: 5.7.26-0ubuntu0.16.04.1 (Ubuntu)
 
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| cinder             |
| glance             |
| keystone           |
| mysql              |
| neutron            |
| nova               |
| nova_api           |
| nova_cell0         |
| performance_schema |
| sys                |
+--------------------+
11 rows in set (0.00 sec)
 
Message Queue
 
在前面我们了解到Nova包含众多的子服务,这些子服务之间需要相互协调和通信,为解耦各个子服务,Nova通过 Message Queue 作为子服务的信息中转站。所以在架构图上我们看到了子服务之间没有直接的连线,是通过Message Queue联系的。
 
 
OpenStack默认是用RabbitMQ 作为 Message Queue。MQ 是OpenStack的核心基础组件,我们后面会详细介绍。
 

O023、理解Nova架构的更多相关文章

  1. 理解 Nova 架构 - 每天5分钟玩转 OpenStack(23)

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

  2. 理解 Nova 架构

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

  3. 理解RESTful架构

    越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency).高 ...

  4. [转]理解RESTful架构

    原文地址:http://www.ruanyifeng.com/blog/2011/09/restful 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件" ...

  5. 理解RESTful架构(转载)

    本文转载自:http://www.ruanyifeng.com/blog/2011/09/restful.html 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软 ...

  6. [转载] 理解RESTful架构

    原文: http://www.ruanyifeng.com/blog/2011/09/restful.html 理解RESTful架构   作者: 阮一峰 日期: 2011年9月12日 越来越多的人开 ...

  7. fw:理解RESTful架构

    理解RESTful架构   作者: 阮一峰 日期: 2011年9月12日 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件"采用客户端/服务器模式,建立 ...

  8. 理解RESTful架构(转)

    理解RESTful架构   作者: 阮一峰 http://www.ruanyifeng.com/blog/2011/09/restful 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这 ...

  9. 【转】理解RESTful架构

    [转]理解RESTful架构 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时( ...

随机推荐

  1. php post请求

    public function file_get_contents_post($url, $post){ $options = array( 'http'=> array( 'method'=& ...

  2. 【React自制全家桶】四、React中state与props的分析与比较

    一.state 1.state的作用 state是React中组件的一个对象.React把用户界面当做是状态机,想象它有不同的状态然后渲染这些状态,可以轻松让用户界面与数据保持一致. React中,更 ...

  3. Linux Openssh源码升级

    telnet服务 yum install -y telnet-server xinetd systemctl start xinetd systemctl start telnet.socket #监 ...

  4. Linux 下 Mysql忘记密码重置

    1.修改配置文件 /etc/my.cnf 在[mysqld]下 加入skip-grant-tables 2.重启mysql 命令:service mysqld restart 3.等待几分钟后 就可以 ...

  5. python matplotlib 多图像排列显示

    用OpenCV和matplotlib实现多图排列,代码如下: import cv2 import matplotlib.pyplot as plt img = cv2.imread('C:\\User ...

  6. 【POJ - 3187】Backward Digit Sums(搜索)

    -->Backward Digit Sums 直接写中文了 Descriptions: FJ 和 他的奶牛们在玩一个心理游戏.他们以某种方式写下1至N的数字(1<=N<=10). 然 ...

  7. 【AMAD】django-model-utils -- Django model使用的mixin和utils

    动机 简介 个人评分 动机 为django model系统提供一些可重用的mixin和utils. 简介 django-model-utils1为Django Model提供了下嘛几种分类的utils ...

  8. URL库函数

    1.urlopen from urllib import request resp=request urlopen('http://www.baidu.com') print(resp.read()) ...

  9. NOIp2017D1T2 时间复杂度【模拟】

    说一说 题目分析请从目录空降... 没想到模拟题还会卡这么久...菜得真实... 这是一个励志的故事:从$0pts->9pts->18pts->27pts->36tps-> ...

  10. 【VS开发】CTime和CTimeSpan使用

    此文就用一个程序表示,相信只要是学过C语言的都能看得懂的. [html] view plain copy print? // CTimeTest.cpp : Defines the entry poi ...