当前位置: 首页 > news >正文

OpenStack之Nova

一 、Nova

使用OpenStack Compute来托管和管理云计算系统。 OpenStack Compute是基础架构即服务

(IaaS)系统的主要部分。 主要模块在Python中实现

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

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

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

    Nova是OpenStack云中的计算组织控制器。支持OpenStack云中实例(instances)生命周期的所有活动都由Nova处理。这样使得Nova成为一个负责管理计算资源、网络、认证、所需可扩展性的平台。但是,Nova自身并没有提供任何虚拟化能力,相反它使用libvirt API来与被支持的Hypervisors交互。Nova 通过一个与Amazon Web Services(AWS)EC2 API兼容的web services API来对外提供服务。

    OpenStack Compute与OpenStack Identity(身份)进行交互以进行身份验证; 用于磁盘和服务器映像的OpenStack Image服务; 和用于用户和管理界面的OpenStack仪表板。 图像访问受到项目和用户的限制; 每个项目的配额有限(例如数量)。 OpenStack Compute可以在标准硬件上水平扩展,并下载图像以启动实例。

功能和特点:

实例生命周期管理
管理计算资源
网络和认证管理
REST风格的API
异步的一致性通信
Hypervisor透明:支持Xen,XenServer/XCP, KVM, UML, VMware vSphere and Hyper-V

OpenStack Compute由以下几个方面组成:

nova­api 服务

    接受并响应最终用户的计算API调用。 该服务支持OpenStack Compute API,Amazon EC2 API 和特殊的Admin API,用于特权用户执行管理操作。 它执行一些策略并启动大多数业务流程活动,例如运行一个实例。

openstack云平台所有的服务相互之间进行通讯走各个服务的API接口。

访问API的方式:CLI命令行方式、web方式、第三方工具

nova­ api­ metadata 服务

接受来自实例的元数据请求,保存相关虚拟机的硬件数据,同时需要使用network。 当您使用nova­ network安装在多主机模式下运行时,通常会使用nova ­api­ metadata服务。

nova­ compute 计算服务

创建虚拟机的方式:CLI形式(virt-manager、virsh install)、Nova-compute服务形式。

两种方式最终都是通过libvirtd创建虚拟机。

nova­ compute 计算服务功能:

    1 定时向OpenStack报告计算节点的状态(CPU、内存等资源的使用状态)。

    2 nova­ compute Hypervisor一起实现OpenStack对instance(实例)生命周期的管理。

    3 通过虚拟机管理程序API创建和终止虚拟机实例的工作程序守护程序。

(1)适用于XenServer / XCP的XenAPI 

(2)KVM或QEMU的libvirt

(3)适用于VMware的VMwareAPI

处理相当复杂。 基本上,守护程序接受队列中的操作,并执行一系列系统命令,例如启动

KVM实例并更新数据库中的状态。

nova ­place ment­api 服务

跟踪每个提供商的库存和使用情况。有关详细信息,请参阅Placement API。

nova-compute服务定时将收到的计算节点的信息(内存、CPU)发送给nova-placement-api服务。

nova-compute服务收集信息过程:kvm虚拟化层到libvirtd服务在到nova-compute服务。

nova-placement-api服务部署在控制节点上。

nova­ scheduler 服务

从队列获取虚拟机实例请求,并确定运行哪个计算服务器主机。决策一个虚拟机应该调度到哪个计算节点上,需要分两个步骤:

  1. 过滤(过滤内容包括计算节点的内存、CPU等)
  2. 调度算法:

       随机算法:计算主机在所有可用域内随机选择

       可用域算法:跟随机算法相仿,但是计算主机在指定的可用域内随机选择。

       简单算法:这种方法选择负载最小的主机运行实例。负载信息可通过负载均衡器获得。

nova­ conductor module 模块

nova ­compute服务与数据库之间的交互。它消除了由nova­compute服务器对云数据库的直接访问。新星导体模块水平放置。但是,不要在运行nova­compute服务的节点上部署它。

nova-conductor是nova-compute与数据库的中间件,nova-compute对数据库的操作都借由nova-conductor完成,nova-conductor通过rpc对外提供API服务。

数据库写入数据时必须经过nova­conductor module 模块,读取不必经过nova­conductor module 模块,这样保证了数据库安全性。并且nova­conductor module 模块只能在控制节点上部署。

nova­cert 模块

为X509证书提供Nova Cert服务的服务器守护程序。用于生成euca­bundle­image的证书。只需

要EC2 API。

nova­ consoleauth 守护进程

为控制台代理提供的用户授权令牌。参见nova­novncproxy和nova­xvpvncproxy。此服务必须运行才能使控制台代理工作。您可以在集群配置中针对单个nova­consoleauth服务运行任一类型的代理

nova ­novn cproxy 守护进程

提供通过VNC连接访问运行实例的代理,图形化远程连接。 支持基于浏览器的novnc客户端。

nova­ spicehtml5proxy 守护进程

提供通过SPICE连接访问运行实例的代理。 支持基于浏览器的HTML5客户端。

nova ­xvpvncproxy 守护进程

提供通过VNC连接访问运行实例的代理。 支持特定于OpenStack的Java客户机。

the queue

服务内部守护进程之间传递消息的中心枢纽。 通常用RabbitMQ实现,异步传输,减少等待时间。也可以用另一个AMQP消息队列来实现,如ZeroMQ。

        SQL数据库

二、nova的逻辑架构

    存储云基础架构的大部分构建时间和运行时状态,包括:

    (1)可用的实例类型

    (2)正在使用的实例

    (3)可用网络

    (4)项目

理论上,OpenStack Compute可以支持SQLAlchemy支持的任何数据库。 公共数据库是用于测试和开发工作的SQLite3,MySQL,MariaDB和PostgreSQL。

   OpenStack异构:可管理不同kvm、VMware、xen类型的虚拟机。

Nova 逻辑架构

1、客户端利用 API 发出请求,要求启动一个实例。

2、该请求通过一系列检查 (比如身份验证、配额、权限等等)后,由 Nova API 服务器进行处理。

3、Nova API 服务器将客户端请求的URL进行拆分,存储到消息队列中。

4、Nova-scheduler服务接受到启动实例的任务后,先去查看Nova-placement-api服务收集到的信息。

5、Nova-scheduler服务根据调度规则决定在哪运行实例 — 即从 N 个计算节点中选取符合规则的节点。

6、Nova-scheduler服务通过队列向指定的计算节点发出消息让其开始创建实例。

7、计算节点通用 Glance API 在 Glance 注册表中查找所需的镜像文件。

8、Glance API 向计算节点返回该镜像文件的物理位置和元数据。

9、得到了物理位置等信息,计算节点就可以 Swift Proxy 请求镜像文件。

10、Swift Proxy 从 Swift 工作单元中获得映象,并将其传递给计算节点。

11、获得了镜像文件之后,计算节点就可以利用 libvirt API 来与被支持的Hypervisors交互。

12、计算节点将下载到本地的镜像文件派生出一个镜像文件供实例使用,并且计算节点会在数据库中更新实例的详细信息。

13、计算节点向网络节点的队列发出消息以便为实例配置网络。

14、一旦收到返回的网络信息,计算节点就开始最后的配置调整,并启动实例。

15、创建实例完成之后,无论成功与否,计算节点都会更新数据库,并在消息队列中发出通知。

三 、base节点设置

  1、创建数据库nova、nova_api、nova_cell0;

     2、创建用户、设置登录密码、权限、登录方式;

四、并查看数据库中所有用户

1、ctrl节点设置

  1.1、创建nova相关用户、为nova用户设置角色、创建nova服务

   1.2、为nova节点创建compute类型、范围为RegionOne的endpoint;

1.3创建placement用户、并添加到admin角色中、为placement创建placement服务

  1.4为placement服务创建endpoint

(1)安装nova相关软件;

 yum install \

openstack-nova-api  \   openstack-nova-conductor  \  openstack-nova-novncproxy  \   openstack-nova-scheduler  \   openstack-nova-placement-api  \ openstack-nova-console

  1. 修改配置文件 /etc/nova/nova.conf 、  /etc/httpd/conf.d/00-nova-placement-api.conf
  2. 同步数据库;

   1.5、重启服务、并开机自启;

    systemctl restart openstack-nova-api openstack-nova-consoleauth openstack-nova-scheduler openstack-nova-conductor openstack-nova-novncproxy

    systemctl enable  openstack-nova-api openstack-nova-consoleauth openstack-nova-scheduler openstack-nova-conductor openstack-nova-novncproxy

四、compute节点配置

    1.1克隆虚拟机

 1.2在新克隆的虚拟机上修改IP、dns、主机名;并在DNS中添加新虚拟机的正解、反解

1.3宿主机开启透传、然后重启该虚拟机、查看透传状态、查看一层虚拟机是否具有kvm_intel模块、是否支持vmx

重启、开机自启libvirtd

    1.4、安装 openstack-nova-compute 软件

1.5、修改配置文件/etc/nova/nova.conf,并查看支持vmx或svm的CPU核心数量

1.6、重启、开机自启动libvirtd、openstank-nova-compute

1.7、查看支持虚拟化的计算机

查看服务目

查看当前镜像文件

相关文章:

OpenStack之Nova

一 、Nova 使用OpenStack Compute来托管和管理云计算系统。 OpenStack Compute是基础架构即服务 (IaaS)系统的主要部分。 主要模块在Python中实现: 1因为认证,与OpenStack 身份认证keystone 交互。 2因为磁盘和服务器镜像&#xf…...

虽说主业搞前端,看到如此漂亮的网页UI,也是挪不开眼呀。

漂亮的网页UI能够吸引人的眼球,给人留下深刻的印象。作为前端开发人员,可以通过不断学习和掌握设计技巧和工具,提升自己的UI设计能力,为用户提供更好的视觉体验。 以下是一些提升网页UI设计能力的建议: 学习设计基础知…...

嵌入式学习第二十六天!(网络传输:TCP编程)

TCP通信: 1. TCP发端: socket -> connect -> send -> recv -> close 2. TCP收端: socket -> bind -> listen -> accept -> recv -> send -> close 3. TCP需要用到的函数: 1. co…...

【LeetCode】升级打怪之路 Day 14:二叉树的遍历

今日题目: 144. 二叉树的前序遍历94. 二叉树的中序遍历145. 二叉树的后序遍历102. 二叉树的层序遍历107. 二叉树的层序遍历 II199. 二叉树的右视图637. 二叉树的层平均值429. N 叉树的层序遍历515. 在每个树行中找最大值116. 填充每个节点的下一个右侧节点指针117. …...

[Unity实战]使用NavMeshAgent做玩家移动

其实除了Character Controller, Rigidbody,我们还可以使用NavMeshAgent去做。这么做的好处是能避免玩家去莫名其妙的地方(毕竟基于烘焙过的导航网格),一般常见于元宇宙应用和mmo。 根据Unity手册,NavMeshAgent 也有和…...

官网:随便搞个?那不如不搞,搞不好就给公司减分了。

官网建设确实需要认真对待,不能随便搞。一个粗制滥造的官网可能会给公司带来负面影响,降低品牌形象和用户体验。以下是一些官网建设的重要原则: 专业性:官网应该展示公司的专业性和专业知识。它应该以专业的设计、内容和功能来展示…...

Ansible 基础入门

2)Ansible 介绍 Ansible 基本概念 Ansible 是一种自动化运维工具,基于 Paramiko 开发的,并且基于模块化工作,Ansible 是一种集成 IT 系统的配置管理、应用部署、执行特定任务的开源平台,它是基于 Python 语言&#xf…...

讨论:5万官网是建站界的劳斯莱斯了吧,到了软件开发领域呢?

如题,所以赛道选择很重要,当然难度系数也不一样。能花5万元做官网的,凤毛麟角,如果是做软件开发,5万元顶多算个起步价,老铁们,是这样吗?...

手写分布式配置中心(三)增加实时刷新功能(短轮询)

要实现配置自动实时刷新,需要改造之前的代码。代码在https://gitee.com/summer-cat001/config-center​​​​​​​ 服务端改造 服务端增加一个版本号version,新增配置的时候为1,每次更新配置就加1。 Overridepublic long insertConfigDO(…...

【RabbitMQ】WorkQueue

📝个人主页:五敷有你 🔥系列专栏:MQ ⛺️稳中求进,晒太阳 Work Queues Work queues任务模型,简单来说就是让多个消费者绑定到一个队列,共同消费队列中的消息 当消息处理比较耗时的时候&…...

国内免费好用 Chat GPT推荐

无论您是寻找技术洞见还是灵感激发,此网站是您的绝佳去处。探索着名作家的精彩观点和创意解决方案,它不仅是知识的源泉,更是思维的驱动力。在这里,您将发现无尽的学习资源和启发,助您不断前行这是一款基于OpenAi开发的…...

基于springboot实现在线考试系统项目【项目源码+论文说明】

基于springboot实现在线考试系统演示 摘要 时代在变化,科技技术以无法预测的速度在达到新的高度,并且被应用于社会生活的各个领域,随着生活的加快,也使很多潜在的点逐渐突显出来,社会对于人才的要总是非常迫切的&…...

golang中go build 后读取配置文件

golang打包后读取配置文件 在用go写代码的时候,为了好用经常使用go build 打包,如果我们用到了配置文件,就总是导致不能找到文件所在位置了出现bug,所以以下代码就解决了这个问题。 核心代码: file, err : exec.Look…...

为raspberrypi编译bpftrace调试工具

基于eBPF的嵌入式应用调试 笔者之前写过几篇有关于使用eBPF调试Linux内核和应用的博客,其中提到,在嵌入式设备上使用BCC或bpftrace是不可行的;主要原因在于嵌入式设备的资源有限,而这两个调试工具依赖python/clang/llvm等库&…...

分段线性化问题探析

目录 1 使用0-1变量将分段函数转换为线性约束 2 连续函数采用分段线性化示例 3 matlab程序测试 4 matlab测试结果说明 5 分段线性化应用 1 使用0-1变量将分段函数转换为线性约束 2 连续函数采用分段线性化示例 3 matlab程序测试 clc;clear all; gn10;tn1; x_pfsdpvar(1, t…...

从零学算法2917

2917.给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。 nums 中的 K-or 是一个满足以下条件的非负整数: 只有在 nums 中,至少存在 k 个元素的第 i 位值为 1 ,那么 K-or 中的第 i 位的值才是 1 。 返回 nums 的 K-or 值。 注意 &#xf…...

[HackMyVM] 靶场 Wave

kali:192.168.56.104 主机发现 arp-scan -l # arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:d2:e0:49, IPv4: 192.168.56.104 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.56.1 0a:00:27:00:00:05 (Un…...

云渲染平台都开始涨价了?2024年性价比高的云渲染平台推荐

最近部分云渲染平台开始涨价,不论是通过调整机器性能,还是直接提价,都会对成本产生影响。这对已经习惯了平台价格的用户来说,并不是一件好事。这里举一些例子: 比如平台A,原“首小时渲染0.66元模式”已经下…...

搜索-BFS Meteor Shower S(流星雨)

Meteor Shower S(流星雨) 题目连接 题目描述 贝茜听说一场特别的流星雨即将到来:这些流星会撞向地球,并摧毁它们所撞击的任何东西。她为自己的安全感到焦虑,发誓要找到一个安全的地方(一个永远不会被流星…...

RabbitMQ实战:Springboot集成RabbitMQ并验证五种消息模型

这目录 一、添加依赖二、配置文件中添加RabbitMQ访问配置三、消息生产者代码四、消息消费者代码五、验证参考资料 一、添加依赖 <!--AMQP依赖&#xff0c;包含RabbitMQ--><dependency><groupId>org.springframework.boot</groupId><artifactId>s…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

IP如何挑?2025年海外专线IP如何购买?

你花了时间和预算买了IP&#xff0c;结果IP质量不佳&#xff0c;项目效率低下不说&#xff0c;还可能带来莫名的网络问题&#xff0c;是不是太闹心了&#xff1f;尤其是在面对海外专线IP时&#xff0c;到底怎么才能买到适合自己的呢&#xff1f;所以&#xff0c;挑IP绝对是个技…...

算法:模拟

1.替换所有的问号 1576. 替换所有的问号 - 力扣&#xff08;LeetCode&#xff09; ​遍历字符串​&#xff1a;通过外层循环逐一检查每个字符。​遇到 ? 时处理​&#xff1a; 内层循环遍历小写字母&#xff08;a 到 z&#xff09;。对每个字母检查是否满足&#xff1a; ​与…...

scikit-learn机器学习

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

NPOI操作EXCEL文件 ——CAD C# 二次开发

缺点:dll.版本容易加载错误。CAD加载插件时&#xff0c;没有加载所有类库。插件运行过程中用到某个类库&#xff0c;会从CAD的安装目录找&#xff0c;找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库&#xff0c;就用插件程序加载进…...

关于uniapp展示PDF的解决方案

在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项&#xff1a; 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库&#xff1a; npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...