OpenStack(四)——Nova组件
OpenStack(四)——Nova组件
- 一、Nova计算服务
- 二、Nova的架构
- 三、Nova组件介绍
- 1、API
- 2、Scheduler
- ①、Nova调度器类型
- ②、调度器调度过程
- 3、Compute
- ①、主要功能
- ②、工作过程
- 4、Conductor
- 5、PlacementAPI
- 四、Nova的Cell架构
- 1、单cell架构
- 举例:创建虚拟机
一、Nova计算服务
- 计算服务是openstack最核心的服务之一,负责维护和管理云环境的计算资源,它在openstack项目中代号是nova。
- Nova自身并没有提供任何虚拟化能力,它提供计算服务,使用不同的虚拟化驱动来与底层支持的Hypervisor(虚拟机管理器)进行交互。所有的计算实例(虚拟服务器)由Nova进行生命周期的调度管理(启动、挂起、停止、删除等)
- Nova需要keystone、glance、neutron、cinder和swift等其他服务的支持,能与这些服务集成,实现如加密磁盘、裸金属计算实例等。
二、Nova的架构
- DB:用于数据存储的sql数据库
- API:用于接收HTTP请求、转换命令、通过消息队列或HTTP与其他组件通信的nova组件
- Scheduler:用于决定哪台计算节点承载计算实例的nova调度器
- Network:管理IP转发、网桥或虚拟局域网的nova网络组件
- Compute:管理虚拟机管理器与虚拟机支架你通信的nova计算组件
- Conductor:处理需要协调(构建虚拟机或调整虚拟机大小)的请求,或处理对象转换
三、Nova组件介绍
1、API
- API是客户访问nova的http接口,它由nova-api服务实现,nova-api服务接收和响应来自最终用户的计算api请求。作为openstack对外服务的最主要接口,nova-api提供了一个集中的可以查询所有api的端点。
- 所有对nova的请求都首先由nova-api处理。API提供REST标准调用服务,便于与第三方系统集成。
- 最终用户不会直接改送RESTful API请求,而是通过openstack命令行、dashbord和其他需要跟nova交换的组件来使用这些API。
- 只要跟虚拟机生命周期相关的操作,nova-api都可以响应
- Nova-api对接收到的HTTP API请求做以下处理:
- 检查客户端传入的参数是否合法有效
- 调用nova其他服务来处理客户端HTTP请求
- 格式化nova其他子服务返回结果并返回给客户端
- Nova-api是外部访问并使用nova提供的各种服务的唯一途径,也是客户端和nova之间的中间层
2、Scheduler
- Scheduler可译为调度器,由nova-scheduler服务实现,主要解决的是如何选择在哪个计算节点上启动实例的问题。它可以应用多种规则,如果考虑内存用率、cpu负载率、cpu构架(intel/amd)等多种因素,根据一定的算法,确定虚拟机实例能够运行在哪一台计算服务器上。Nova-scheduler服务会从队列中接收一个虚拟机实例的请求,通过读取数据库的内容,从可用资源池中选择最合适的计算节点来创建的虚拟机实例。
- 创建虚拟机实例时,用户会提出资源需求,如cpu、内存、磁盘各需要多少。Openstack将这些需求定义在实例类型中,用户只需指定使用哪个实例类型就可以了
①、Nova调度器类型
- 随机调度器(chance scheduler):从所有正常运行nova-compute服务的节点中随机选择。
- 过滤器调度器(filter scheduler):根据指定的过滤条件以及权重选择最佳的计算节点。Filter又称为筛选器
- 缓存调度器(caching scheduler):可看作随机调度器的一种特殊类型,在随机调度的基础上将主机资源信息缓存在本地内存中,然后通过后台的定时任务定时从数据库中获取最新的主机资源信息。
②、调度器调度过程
- 【1】通过指定的过滤器选择满足条件的计算节点,比如内存使用率小于50%,可以使用多个过滤器依次进行过滤。
- 【2】对过滤之后的主机列表进行权重计算并排序,选择最他的计算节点来创建虚拟机实例。
3、Compute
①、主要功能
- Nova-compute在计算节点上运行,负责管理节点上的实例。通常一个主机运行一个Nova-compute服务,一个实例部署在哪个可用的主机上取决于调度算法。OpenStack对实例的操作,最后都是提交给Nova-compute来完成。
- Nova-compute可分为两类,一类是定向openstack报告计算节点的状态,另一类是实现实例生命周期的管理。
简单来说:
1、负责执行具体的与实例生命周期/管理实例相关的工作
2、报告节点状态(写入数据库,保证scheduler读取数据库,数据库信息的实时性、celimetor,监控和管理openstack实例资源并汇入给用户/openstack本身/运维人员)
②、工作过程
- 定期向OpenStack报告计算节点的状态
- 每隔一段时间,nova-compute就会报告当前计算节点的资源使用情况和nova-compute服务状态。
- nova-compute是通过Hypervisor的驱动获取这些信息的。
- 实现虚拟机实例生命周期的管理
- OpenStack对虚拟机实例最主要的操作都是通过nova-compute实现的。
- 创建、关闭、重启、挂起、恢复、中止、调整大小、迁移、快照
- 以实例创建为例来说明nova-compute的实现过程。
- 为实例准备资源
- 创建实例的镜像文件
- 创建实例的XML定义文件
- 创建虚拟网络并启动实例
4、Conductor
- 由nova-conductor模块实现,旨在为数据库的访问提供一层安全保障。Nova-conductor作为nova-compute服务与数据库之间交互的中介,避免了直接访问由nova-compute服务创建对接数据库。
- Nova-compute访问数据库的全部操作都改到novaconductor中,nova-conductor作为对数据库操作的一个代理,而且nova-conductor是部署在控制节点上的。
- Nova-conductor有助于提高数据库的访问性能,nova-compute可以创建多个线程使用远程过程调用(RPC)访问nova-conductor。
- 在一个大规模的openstack部署环境里,管理员可以通过增加nova-conductor的数量来应付日益增长的计算节点对数据库的访问量
5、PlacementAPI
- 以前对资源的管理全部由计算节点承担,在统计资源使用情况时,只是简单的将所有计算节点的资源情况累加起来,但是系统中还存在外部资源,这些资源由外部系统提供。如ceph、nfs等提供的存储资源等。面对多种多样的资源提供者,管理员需要统一的、简单的管理接口来统计系统中资源使用情况,这个接口就是PlacementAPI。
- PlacementAPl由nova-placement-api服务来实现,旨在追踪记录资源提供者的目录和资源使用情况。
- 被消费的资源类型是按类进行跟踪的。如计算节点类、共享存储池类、IP地址类等。
四、Nova的Cell架构
- 当openstack nova集群的规模变大时,数据库和消息队列服务就会出现瓶颈问题。Nova为提高水平扩展及分布式、大规模的部署能力,同时又不增加数据库和消息中间件的复杂度,引入了Cell概念。
- Cell可译为单元。为支持更大规模的部署,openstack较大的nova集群分成小的单元,每个单元都有自己的消息队列和数据库,可以解决规模增大时引起的瓶颈问题。在Cell中,Keystone、Neutron、Cinder、Glance等资源是共享的。
- API节点上的数据库
- nova_api数据库中存放全局信息,这些全局数据表是从nova库迁过来的,如flavor (实例模型) 、 instance groups (实例组)、quota (配额)
- nova_cello数据库的模式与nova一样,主要用途就是当实例调度失败时,实例的信息不属于任何一个Cell,因而存放到nova_cell0数据库中。
1、单cell架构
举例:创建虚拟机
- Nova-api 接收、响应请求
- 交给conductor处理/协调
- conductor——》scheduler调度器——》最适合创建虚拟机的节点
- 如果scheduler调度失败
- 将调度失败的信息,存放在cell0中
- nova-api会读取cell0数据库,获取到失败的信息/原因,返回给客户端
- 如果scheduler调度成功
- conductor就会将这个任务交给cell1处理(rabbitmq-cell接收、响应)
- rabbitmq-cell——》conductor-cell——》交给节点上的compute进行具体创建——》compute汇报给cell1数据库——》响应给conductor-cell——》rabbitmq-cell——》nova的conductor
- nova-conductor接收到cell的返回之后,保存在api数据库中(保存实例创建成功的信息)
- nova-api组件,会读取api数据库,返回/响应给客户端
OpenStack(四)——Nova组件相关推荐
- OpenStack 的Nova组件详解
Open Stack Compute Infrastructure (Nova) Nova是OpenStack云中的计算组织控制器.支持OpenStack云中实例(instances)生命周期的所有活 ...
- OpenStack 给nova组件 vnc 配置https(SSL)自验证签名证书
先说解决办法以及结果 解决办法:Nginx 转发 结果:只转发 生成vnc 的console 地址,拼凑出https,能在Https web应用即可,比如把console url (控制台地址)ifr ...
- Openstack之Nova组件(一)——云主机调度
一.概述 调度就是将instance放在"最合适"的host上:涉及虚拟机的创建.克隆.冷迁移.热迁移.变更规格.撤离.重建等需要确定虚拟机位置的操作. 二.原理 OpenStac ...
- OpenStack的部署T版(五)——Nova组件
目录 一.Nova计算服务概念 Nova系统架构 二.Nova组件介绍 1.API 2.Scheduler调度器 Nova调度器的类型 过滤器 权重(weight) 3.Compute组件 Compu ...
- OpenStack 运维 - 部署Nova组件 [T版]
OpenStack 运维 - 部署Nova组件 一.创建Nova数据库并执行授权操作 二.管理Nova用户及服务 ① 创建Nova用户 ② 创建Nova服务 ③ Nova关联endpoint端点 ④ ...
- openstack 【T版】(五)——部署nova组件
openstack [T版](五)--部署nova组件 一.相关概念 1.Nova计算服务 1.1概括 2.Nova系统架构 二.nova组件介绍 1.API(通信接口) 2.Scheduler(调度 ...
- 云系列---Openstack Nova组件 | 参数说明 | 详细讲解
Openstack Nova组件 一.Nova 概念 二.Nova 系统架构 三.Nova 组件详讲 1.API 讲解 2.Scheduler 讲解 调度器类型 过滤调度器调度过程 过滤器类型 Sch ...
- Nova 组件详解 - 每天5分钟玩转 OpenStack(26)
本节开始,我们将详细讲解 Nova 的各个子服务. 前面架构概览一节知道 Nova 有若干 nova-* 的子服务,下面我们将依次学习最重要的几个. 今天先讨论 nova-api 和 nova-con ...
- OpenStack安装Placement组件部署(四)
OpenStack安装Placement组件部署 一.Placement组件介绍 二.OpenStack-Placement组件部署(ct(192.168.28.11)) 1.创建数据库实例和数据库用 ...
最新文章
- 《JavaScript设计模式与开发实践》读书笔记之中介者模式
- Windows Phone 7 LongListSelector控件实现分类列表和字母索引
- PHP轻量级在线客服系统源码 自适应手机移动端
- Docker入门系列(一):目标和安排
- mysql 怎么查询慢sql语句_如何优化MySQL中查询慢的SQL语句啊?
- python和java选择哪个-python与java,该选择哪一个?
- springboot实现xml传参和返回值
- 项目管理概论【项目管理基础-第一章 项目与项目管理】
- W5500EVB从网络上获取标准时间
- 二元函数的洛必达法则
- SpringBoot+OCR 实现图片文字识别
- 谷歌浏览器崩溃之错误代码:RESULT_CODE_MISSING_DATA
- Vue ant打包服务器-并配置【nginx子路径+linux环境】跨域解决+jenkins自动部署
- 项目管理之项目干系人
- linux之database(数据库)一
- i.MX8MPlus中的CLK子系统
- Linux 6.2 最新合并情况:拓展 ArmSoc 支持,华为代码加速核心功能 715 倍!
- 12.20-12.21北大医药
- 操作系统 I/O 全流程详解
- 当 SmartX 遇见英特尔傲腾,超融合系统性能突破新极限