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. 20165207 Exp8 Web基础

    目录 20165207 Exp8 Web基础 0. 环境配置 0.1. apache 0.2. MySQL 0.3. php 0.4. php-mysql编程库 1. 前台HTML编写静态网页 2. ...

  2. idea启动报Plugin Error错误的解决办法(亲测有效)

    今天在idea工作时,idea崩溃自动关闭,再打开时报Plugin Error,tomcat无法启动,于是上网查询,看到这个办法,成功解决了我的问题: 找到IDEA的配置文件夹下的disabled_p ...

  3. ubuntu下如何使得普通用户能够启动wireshark?

    一. 将dumpcap的用户组更改为wireshark sudo chgrp wireshark /usr/bin/dumpcap 二. 设置其他用户也具有与root一样的权限来执行dumpcap s ...

  4. 服务安全-IAM:百科

    ylbtech-服务安全-IAM:百科 IAM(身份识别与访问管理(简称大4A)) IAM(Identity and Access Management 的缩写),即“身份识别与访问管理”,具有单点登 ...

  5. Volley源码分析

    取消请求的源码分析: public void cancelAll(RequestFilter filter) { synchronized (mCurrentRequests) { for (Requ ...

  6. [Err] ORA-00942: table or view does not exist

    [Err] ORA-00942: table or view does not exist 当前用户加表明 例如:SCOTT."replyInfo"

  7. maven pom.xml基本设置

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  8. 小D课堂 - 新版本微服务springcloud+Docker教程_2_04微服务下电商项目基础模块设计

    笔记 4.微服务下电商项目基础模块设计     简介:微服务下电商项目基础模块设计 分离几个模块,课程围绕这个基础项目进行学习             小而精的方式学习微服务 1.用户服务       ...

  9. Linux中编译C文件

    C/C++程序编译的过程 预处理,展开头文件,宏定义,条件编译处理等.通过gcc -E source.c -o source.i或者cpp source.c生成. 编译.这里是一个狭义的编译意义,指的 ...

  10. 认识一下 Kafka

    Kafka 基本概述 什么是 Kafka Kafka 是一个分布式流式平台,它有三个关键能力 订阅发布记录流,它类似于企业中的消息队列 或 企业消息传递系统 以容错的方式存储记录流 实时记录流 Kaf ...