OpenStack学习笔记(二)计算服务NOVA

2023-11-12

本篇记录OpenStack的计算服务NOVA一些内容(很多看不懂,汗!只捡一小部分记录)

一、逻辑图

       OpenStack 计算服务NOVA 是基础设施服务IAAS的主要部分,采用Python实现:

        1、 因为认证,与OpenStack 身份认证keystone 交互

2、因为磁盘和服务器镜像, 与镜像服务Glance 交互

3、因为提供图形界面,与仪表盘Dashboard交互

二、计算服务NOVA的组件构成

1、应用程序接口 API

nova-api service: 接收和响应最终用户的计算api请求,支持OpenStack的计算服务API 和 Amazon EC2 API

nova-api-metadata service :接收实例发来的元数据请求,通常在nova-network 安装多主机模式下,使用这个服务

2、 计算服务核心

nova-compute service :持续的守护进程,通过Hypervior的API 来创建和销毁实例

nova-scheduler service:请求的调度器,决定在哪台计算服务主机运行实例

        nova-conductor 模块:  计算服务和数据库之间的中介交互,隔离了nova直接访问数据库的可能

nova-cert模块: 为X509证书服务,用于EC2 API 

3、虚拟机网络

nova-network守护进程: 与计算服务类似,接收网络任务操作网络

4、终端接口

nova-consoleauth守护进程: 终端授权的守护进程

nova-novncproxy 守护进程: 提供代理访问运行实例

nova-spicehtml5proxy 守护进程: 提供一个代理访问运行实例,支持H5 客户端浏览器

nova-xvpvncproxy守护进程: 提供一个代理访问运行实例,支持VNC协议的java 客户端

nova-cert守护进程: x509证书

6、镜像管理(EC2 场景)

nova-objectstore 守护进程: 用户支持euca2tools,注册到Openstack镜像服务的S3接口

euca2tools 客户端: 命令行解释器

7、命令行客户端和其他接口

nova 客户端  : 用户作为租户管理员或最终用户来提交命令

8、其他组件:

队列:  由RabbitMQ来实现

SQL数据库: 存储构建时和运行时的状态

++++++++++扩展理解+++++++++

1、Hypervior 是什么?

Hypervisor——一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件。也可叫做VMM( virtual machine monitor ),即虚拟机监视器。Hypervisors是一种在虚拟环境中的“元”操作系统。他们可以访问服务器上包括磁盘和内存在内的所有物理设备。Hypervisors不但协调着这些硬件资源的访问,也同时在各个虚拟机之间施加防护。当服务器启动并执行Hypervisor时,它会加载所有虚拟机客户端的操作系统同时会分配给每一台虚拟机适量的内存,CPU,网络和磁盘。(关于Hypervisor这部分描述,采自百度百科)

Hypervisor 有三种

        I型:虚拟机直接运行在系统硬件上,创建硬件全仿真实例,被称为“裸机”型。

 · II型:虚拟机运行在传统操作系统上,同样创建的是硬件全仿真实例,被称为“托管(宿主)”型。

 Ⅲ型:虚拟机运行在传统操作系统上,创建一个独立的虚拟化实例(容器),指向底层托管操作系统,被称为“操作系统虚拟化”。

 实际应用中,裸架构用的最多。服务器虚拟化需要评估、选择和部署hypervisor,组织通常会选择一种主流的hypervisor:VMwareESXi、微软的Hyper-V或者思杰的XenServer。然而,对很多组织来说,单独的hypervisor已经不能满足所有的虚拟化需求。因此这牵引出了一个需求,就是有一个统一的管理工具来管理各种各样的Hypervisor。 libvirt 就是在这种情况下诞生的

2、libvirt 功能

libvirt 为多种hypervisor提供统一管理方式,是一个软件集合,含API库、后台运行程序Libvirtd,命令行工具virsh。目前Libvirt 支持Xen、QEMU、LXC、Open VZ和VirturalBox,KVM。 目前对KVM支持的最好。


3、EC2 是什么?

亚马逊弹性计算云(EC2,Elastic Compute Cloud)是一个让使用者可以租用云端电脑运行所需应用的系统。EC2借由提供Web服务的方式让使用者可以弹性地运行自己的Amazon机器映像档,使用者将可以在这个虚拟机器上运行任何自己想要的软件或应用程式。提供可调整的云计算能力。

EC2使用Xen虚拟化技术。每个虚拟机,又称作实例,能够运行小、大、极大三种能力的虚拟私有服务器。Amazon利用EC2 Compute Units去分配硬件资源(一个ECU相当与一个Sandy BridgeXeon)。

++++++++++++++++++++++++++

三、OpenStack计算的系统架构

1、虚拟机管理器(Hypervisor)

大部分的openstack 都在使用KVM和基于Xen的Hypervisor上完成,支持下面的Hypervisor

1)裸金属

2)Docker

3)Hyper-V

4)KVM(基于内核的虚拟机)

5)LXC(Linux容器)

6)QEMU(快速模拟器)

7)UML(用户模式Linux)

8)VMware vSphere

9)Xen

2、OpenStack提供两种类型的块存储: 临时存储和持久卷

3、计算服务架构

1)Cloud Controller:由许多组件构成,代表了全局状态,并且负责和所有其他组建的交互。

2) API服务器

云框架的核心就是API服务,发出指令和控制Hypervisor,存储和网络,为用户提供可编程的方法。 API的端点是基于HTTP web服务的,处理认证、授权和基本命令。

2) 消息队列

消息队列安排计算节点(进程)、网络控制节点(控制节点上的网络基础设施软件)、API端点、调度器(决定将那个屋里硬件分配给虚拟资源)和类似组件之间的交互。

3)Compute controller 计算worker

主机中的计算worker 管理着计算实例,API分发器会给计算worker下达命令,从而让其完成任务:

运行实例

终结实例

重启实例

挂接卷

分离卷

请获取控制台输出

4)网络控制器

管理主机中的网络资源

分配确定的IP地址

为项目配置VLAN

为计算节点配置网络

5)Object Store:提供存储服务。


6)Auth manager:提供认证与授权服务。


7)Volume controller:为计算服务器提供快速,跟持久化块级存储。


8)Scheduler :选择一个合适的实例的计算控制器。


OpenStack Compute 是一个无共享,基于消息的框架。Cloud Controller与Object Store之间通过HTTP进行交互,与Network controller,Volume controller,Scheduler 之间采用 AMQP进行交互,为防止阻塞,OpenStack Compute采用异步调用机制。

四、 计算服务项目包源码内容

针对上面地各个模块,在nova项目包中有相应的源代码结构如下:
1、nova.api.ec2:实现Amazon EC2 AWS的API。注意euca2ools就是通过这个API接口实现对云平台的管理
2、nova.api.openstack:实现Openstack的API。nova-manage使用该接口,这是Openstack云管理平台的标准,目前还在制定过程中。Openstack网站上的“OpenStack Compute Developer Guide API 1.1”就是描述的这个部分。由于这一部分还在进化过程中,我们不能完全地据此进行。
3、nova.auth:与认证和授权的相关内容都在这里。基本按照Amazon EC2的IAM结构进行管理的。
4、nova.cloudpipe: 为project创建VPN服务器的代码。从代码上看,VPN实际上是云中一个tiny类型的虚拟机,在上面有一个VPN服务器。
5、nova.compute: 计算节点的相关代码,api.py中定义了compute节点的详细接口。Api.py将请求转化成在AMQP消息发送出去,交给manager.py中的ComputeManager去运行。
6、nova.console:Nova增强了它的控制台服务。控制台服务允许用户可以通过代理服务器访问虚拟化实例。这就涉及了一对新的守护进程(nova-console和nova-consoleauth).
7、nova.db:数据库操作
8、nova.image: image管理的代码都在这里。service.py定义了image管理的相关接口,后端有三个driver: glance, local, 和s3. 分别使用不同的后端存储来存放image。service.BaseImageService定义了image管理的接口。每个成员方法都有详细的描述。
9、nova.ipv6: ipv6地址操作类
10、nova.network: 与网络相关的配置都在这里
11、nova.notifier: 事件通知器,就目前的代码来看,这个通知器好像还没有被使用起来。
12、nova-object store 提供的是简单存储服务
13、nova.scheduler:各种Scheduler。。。
14、nova.test:各种test。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenStack学习笔记(二)计算服务NOVA 的相关文章

随机推荐

  • 项目计划管理 (包含WBS 分解图、甘特图)

    WBS表 工作分解表 工作分解表结构是以交付成果为导向的项目各组成部分的一种分解结构 它对项目的总范围进行组织分解和定义 工作包是WBS的最底层元素 一般的工作包是最小 可交付成果 创建WBS时需要满足以下几点基本要求 1 某项任务应该在W
  • 基于轨迹数据的人口流向分析技术,精准病毒传播追踪

    2019年12月 我国出现了新型冠状病毒引发的多起病例 全国逐渐开启疫情防疫监控 严重地区甚至实施封闭管理 而此次疫情正好恰逢春运期间 大规模的跨地区人口流动会助长病毒传播 甚至传染到全球范围 因此 科学管理人口流动成为疫情防控关键 基于疫
  • paddledetection在window使用cpu快速上手 & 在cpu端训练自己的VOC类型数据集

    使用cpu快速上手 配置文件 配置文件在configs文件夹下 包含了基本上所有常见模型的配置文件 以yolov3 mobilenet v1 roadsign yml为例 BASE datasets roadsign voc yml run
  • mysql完全卸载方法

    首先注意 一台机器上可以装不同的mysql实例 可以装不同版本的mysql 所以如果非十分必要 可不必对mysql进行完全卸载 下面给出MySQL的完全卸载方法 1 运行cmd 执行net start 查看与mysql相关的服务名称 并记录
  • QCC300x笔记(4) -- 蓝牙地址的规则

    哈喽大家好 这是该系列博文的第四篇 篇 lt lt 系列博文索引 快速通道 gt gt 蓝牙地址分为三部分 LAP 24位地址低端部分 UAP 8位地址高端部分 和NAP 16位无意义地址部分 其中 NAP和UAP是生产厂商的唯一标识码 必
  • ubuntu技巧--python查看已安装包

    1 打开terminal 输入python 进入交互环境 2 比如要查看是否安装numpy包 则输入 help numpy
  • Pnpm:高性能的 npm

    pnpm 英文里面的意思叫做 performant npm 意味 高性能的 npm 官网地址可以参考 https pnpm io 什么是pnpm Pnpm 本质上就是一个包管理器 这一点跟 npm yarn 没有区别 但它作为杀手锏的两个优
  • python中对于bool布尔值的取反

    背景 根据公司业务的需求 需要做一个对于mysql数据库的大批量更新 脚本嘛也是干干单单 使用了redis的队列做缓存 可以异步并发的多任务进行更新 有点难受的地方在于 请求访问时 因为一些网速 速率之内的原因 导致正常的数据会请求失败 处
  • 游戏在计算机丢失,运行游戏时提示丢失d3dx9_43.dll的多种解决方法

    很多人遇到dll文件被丢失首先想到的就是电脑被中毒了 电脑被入侵了 其实往往都是自己对电脑的认识不够深而导致遇到一些小故障就盲目不知道该如何下手 当然遇到没有找到d3dx9 43 dll我们该怎么办呢 下面就来好好认识这个d3dx9 43
  • layui table默认选中指定行

    表格默认选中行 在回调里写入 done function res curr count tableData res data data field id css display none var data res data var num
  • win10系统谷歌浏览器怎么用不了?谷歌浏览器打不开网页的解决方法

    1 我们下载好谷歌浏览器后 搜索时 界面一直卡在主界面 一直在刷新 就是弹不出东西 2 通过设置来是谷歌浏览器可以进行搜索 点击右上角的三个小黑点 在下拉界面中点击 设置 3 在 地址了使用的搜索引擎 后面 点击Google后面的小三角 选
  • 【Linux】进程地址空间

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 虚拟地址 二 对进程地址空间的理解 三 32位下的进程
  • STM32CubeMX时钟源的选择

    使用STM32CubeMX进行时钟源RCC配置的时候 可以选择使用内部时钟或外部时钟 当程序对时钟精度要求较高时 通常使用外部时钟 下拉选框如下图 Disable 禁用外部时钟 BYPASS Clock Resource 外部有源晶振 旁路
  • 在windows上使用ubuntu(非虚拟机模式)

    工具 wsl ubuntu20 04 步骤 在powershell下执行wsl install等待进度条完成 在控制面板 gt 程序 gt 启用或者关闭windos功能 勾选适用于Linux的windos子系统 任务栏的搜索框输入Micro
  • python实验总结_python实训总结和体会_python实训心得体会 - CSDN

    1 字符串格式化表达式 功能 生成一个特定格式的字符串运算符 语法格式 格式化字符串 参数值或格式化字符串 参数值1 参数值2 参数值3 描述 左边是字符串的格式 右边是参数值 当有多个参数值 使用括号 分离格式字符串并使用一个逗号 分隔格
  • MySQL删除数据库

    删除数据库是指在数据库系统中删除已经存在的数据库 数据库删除之后 原来分配的空间将被收回 需要注意的是 数据库删除之后该数据库中所有的表和数据都将被删除 因此删除数据库要特别小心 一 通过SQL语句 MySQL中 删除数据库通过SQL语句D
  • tensorflow学习(二)——训练分类时,对图像进行增强(基于tf.image存在的一些问题)

    0 写作目的 好记性不如烂笔头 1 图像分类时 图像的数据增强 在博主进行图像增强时 存在一些问题 和大家分享一下 1 1 使用tensorflow自带的读取图像函数存在的问题 如果采用直接读取图像的方式 使用tf image进行读取图像
  • zookeeper介绍

    1 简介 Zookeeper 分布式服务框架是Apache Hadoop 的一个子项目 它主要是用来解决分布式应用中经常遇到的一些数据管理问题 如 统一命名服务 状态同步服务 集群管理 分布式应用配置项的管理等 Zookeeper 作为一个
  • Spring-Data-Jpa AuditingEntityListener @CreatedDate @LastModifiedDate 用法

    import com fasterxml jackson annotation JsonIgnoreProperties import org hibernate validator constraints NotBlank import
  • OpenStack学习笔记(二)计算服务NOVA

    本篇记录OpenStack的计算服务NOVA一些内容 很多看不懂 汗 只捡一小部分记录 一 逻辑图 OpenStack 计算服务NOVA 是基础设施服务IAAS的主要部分 采用Python实现 1 因为认证 与OpenStack 身份认证k