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、查看支持虚拟化的计算机

查看服务目

查看当前镜像文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/439365.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

红酒:酿造过程中的设备升级与技术革新

随着科技的不断进步,葡萄酒酿造行业也在经历着设备升级与技术革新的浪潮。云仓酒庄作为业界的持续发展者,始终关注行业动态,积极引入创新的酿造设备和技术,以提升雷盛红酒系列的品质和生产效率。本文将和云仓酒庄雷盛红酒一起探讨…

在钉钉群中添加极狐GitLab 机器人

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 可以在钉钉群中添加极狐GitLab 机器人实现消息通知&#xff0c…

java SSM旅游景点与公交线路查询系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM旅游景点与公交线路查询系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,springspringMVCmybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系…

使用Python获取B站视频并在本地实现弹幕播放功能

目录 一、获取B站视频 二、弹幕获取与解析 三、本地视频播放与弹幕同步 四、案例与代码实现 五、总结 随着网络技术的不断发展,视频分享平台如B站(Bilibili)已成为广大网友观看、分享视频的重要场所。然而,有时候我们可能希望…

3.7 FreeRTOS day2

思维导图: 1.使用ADC采样光敏电阻数值,如何根据这个数值调节LED灯亮度。 配置ADC以读取光敏电阻的电压值,配置PWM以控制LED的亮度。使用ADC读取光敏电阻的电压值。这个值将随着环境光线的变化而变化。将ADC读取的原始值映射到一个更易于处理…

3/8—88. 合并两个有序数组

代码实现&#xff1a; void merge(int *nums1, int nums1Size, int m, int *nums2, int nums2Size, int n) {int i 0 , j 0;while (i < m && j < n) {if (nums2[j] < nums1[i]) {for (int k m - 1; k > i; k--) {nums1[k 1] nums1[k];}nums1[i] nums…

点亮城市名片丨计讯物联智慧灯杆系统在通讯基地的成功应用

项目背景 在国家新型城镇化大背景下&#xff0c;十四五规划纲要强调“加快数字化发展&#xff0c;建设数字中国”&#xff0c;明确提出“以数字化助推城乡发展和治理模式创新”&#xff0c;全面提高城市的运行效率和宜居程度。 项目概况 为满足灯杆灯光亮度的远程智能管理、对…

管理类联考--复试--面试问题--底层逻辑

文章目录 了解面试官提问问题的背后逻辑&#xff0c;在面试时遇到&#xff0c;即使不懂&#xff0c;也能往边边靠近哈一句顶一万句自我介绍 了解面试官提问问题的背后逻辑&#xff0c;在面试时遇到&#xff0c;即使不懂&#xff0c;也能往边边靠近哈 “你最有挑战性的事是啥”…

1.2_2 OSI参考模型

文章目录 1.2_2 OSI参考模型一、概述&#xff08;一&#xff09;ISO/OSI参考模型是怎么来的&#xff1f;&#xff08;二&#xff09;ISO/OSI参考模型&#xff08;三&#xff09;ISO/OSI参考模型解释通信过程 二、各层功能及协议&#xff08;一&#xff09;应用层&#xff08;第…

建议你一定要读的10本网络安全书籍

作为一名网安人&#xff0c;身上肩负的责任是很大的&#xff0c;能力越大&#xff0c;责任也越大&#xff0c;反过来责任越大&#xff0c;能力也必须跟得上。 以前我们通过读书来获取知识&#xff0c;但在碎片化的现代社会&#xff0c;阅读已经成为一件“奢侈”的事儿了&#…

互联世界的桥梁:探索Facebook如何连接人与人之间的纽带

在当今数字化时代&#xff0c;社交媒体平台已经成为人们日常生活中不可或缺的一部分。其中&#xff0c;Facebook作为全球最大的社交媒体平台之一&#xff0c;扮演着连接人与人之间纽带的重要角色。本文将深入探索Facebook如何成为互联世界的桥梁&#xff0c;促进人们之间的交流…

nginx代理minio客户端

错误方式 在点击桶名查看文件时, 会一直处于loading加载中 worker_processes 1; #设置 Nginx 启动的工作进程数为 1。events {worker_connections 1024; ##设置每个工作进程的最大并发连接数为 1024。 }http {include mime.types; #该文件定义了文件扩展名和 MIME 类型…

HTML静态网页成品作业(HTML+CSS)——电影网首页网页设计制作(1个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有1个页面。 二、作品演示 三、代…

Docker-完整项目的部署(保姆级教学)

目录 1 手动部署(白雪版) 1.1 创建网络 1.2 MySQL的部署 1.2.1 准备 1.2.2 部署 1.3 Java项目的部署 1.3.1 准备 1.3.1.1 将Java项目打成jar包 1.3.1.2 编写Dockerfile文件 1.3.2 部署 1.3.2.1 将jar包、Dockerfile文件放在linux同一个文件夹下 1.3.2.2 构建镜像 …

3/6—27. 移除元素

代码实现&#xff1a; 方法一&#xff1a;快慢指针 int removeElement(int *nums, int numsSize, int val) {int slow 0; for (int fast 0; fast < numsSize; fast) { if (val ! nums[fast]) { nums[slow] nums[fast]; }}return slow; } 方法二&#xff1a;遍历 int rem…

Publii和GitHub:搭建个人网站的完美组合

在数字时代&#xff0c;拥有一个个人网站已经非常普遍了&#xff0c;但是&#xff0c;很多人因为技术难题而望而却步。现在&#xff0c;有了Publii&#xff0c;这一切都将变得简单。Publii是一个静态网站生成器&#xff0c;它允许你在本地计算机上创建和管理内容&#xff0c;然…

【个人学习笔记】概率论与数理统计知识梳理【六】

文章目录 第六章 样本及抽样分布一、随机抽样二、直方图与箱线图2.1 直方图2.2 箱线图 三、抽样分布总结 第六章 样本及抽样分布 好久没更新了&#xff0c;重新捡起来把它更完吧&#xff0c;可能会再开一个机器学习的笔记系列&#xff0c;参考用书是周志华的西瓜书。前五章主要…

第107讲:Mycat实践指南:取模分片下的水平分表详解

文章目录 1.使用取模分片水平分表2.水平分表取模分片案例2.1.准备测试的表结构2.2.配置Mycat实现范围分片的水平分表2.2.1.配置Schema配置文件2.2.2.配置Rule分片规则配置文件2.2.3.配置Server配置文件2.2.4.重启Mycat 2.3.写入数据观察水平分表效果 1.使用取模分片水平分表 平…

Enzo Life Sciences Cortisol(皮质醇) ELISA kit

皮质醇又称为氢化可的松&#xff0c;是一种由胆固醇合成的类固醇激素。它是肾上腺皮质产生和分泌的主要糖皮质激素。皮质醇在血液中以游离皮质醇的形式存在&#xff0c;或与皮质类固醇结合球蛋白(CBG)结合。皮质醇水平在早上7点左右最高&#xff0c;晚上最低。皮质醇可以调节新…

简单认识Linux

今天带大家简单认识一下Linux&#xff0c;它和我们日常用的Windows有什么不同呢&#xff1f; Linux介绍 Linux内核&发行版 Linux内核版本 内核(kernel)是系统的心脏&#xff0c;是运行程序和管理像磁盘和打印机等硬件设备的核心程序&#xff0c;它提供了一个在裸设备与…