Openstack的基本组件及部分组件工作原理

网友投稿 911 2022-05-29

NOVA 提供计算服务

Nova-api:接受rest消息   对外提供rest接口的处理、对传入的参数进行合法性校验和约束限制、对请求的资源进行配额(quota)的校验和预留、资源的创建,更新,删除查询等、虚拟机生命周期的入口、可水平扩展部署

nova-scheduler:通过过滤、权重、随机,选择合适的主机

nova-conductor:数据库操作和复流程控制

1. G版本引进

2.数据库操作。解耦其他组件(nova-compute)数据库访问。

3.Nova复杂流程控制,如创建,冷迁移,热迁移,虚拟机规格调整,虚拟机重建。

4.其他组件的依赖。如nova-compute需要依赖nova-conductor启动成功后才

能启动成功。

5.其他组件的心跳定时写入。Nova-compute,nova-conductor,nova-scheduler,

nova-console,nova-consoleauth。6.可水平扩展部署

nova-compute:虚拟机生命周期管理和资源管理

1.虚拟机各生命周期操作的真正执行者(会调用对应的hypervisor的driver)。2.底层对接不同虚拟化的平台(kvm,vmware,xen,FusionCompute,hyperv等)。3.内置周期性任务,完成资源刷新,虚拟机状态同步等功能。4.资源管理模块(resource_tracker)配合插件机制,完成资源的统计。5.Claim模块完成资源的分配和释放。

nova-novncproxy:novnc访问虚拟机代理nova-consoleauth:novnc访问虚拟机鉴权

GLANCE提供镜像服务

Glance在OpenStack中主要为实例创建提供公共镜像服务能力以及镜像/虚拟机快照管理功能。

Glance用来作为独立的大规模镜像查找服务,与Nova和Swift配合使用时,为OpenStack提供虚拟机镜像的查找服务

Glance架构1.Glance-api:类似nova-api,接收REST API请求,通过其他模块(glance-registry及image store)来完成诸如镜像的查找、获取、上传、删除等操作。2.glance-registry:用于与MySQL数据库交互,用于存储或获取镜像的元数据(metadata)。3.image store:是一个存储的接口层,通过这个接口,glance可以获取镜像,image store支持的存储有Amazon的S3、OpenStack本身的Swift,还有诸如ceph,sheepdog,GlusterFS等分布式存储。Cache机制:提前将需要的镜像文件缓存至目标节点。在创建VM时会先从缓存查找镜像,若缓存中能够查找到所需镜像,,将不会再去glance下载image文件,而是直接利用本地_base下的缓存镜像直接创建vm的disk文件,大大减少的vm的部署时间。

Glance-api提供一个缓存机制

Cinder 提供块存储服务

cinder的核心功能是对卷的管理,允许对卷、卷的类型、卷的快照、卷备份进行处理。它为后端不同的存储设备提供了统一的接口,不同的块设备服务厂商在 cinder 中实现其驱动支持以与 OpenStack 进行整合。

cinder-apicinder模块对外唯一入口,cinder的endpoint,接收和处理rest请求。cinder-scheduler根据预定的调度过滤策略以及权重计算策略,选择出合适的后端来处理任务。cinder-volume负责与后端存储进行对接,通过各厂商提供的driver将OpenStack操作转换为存储操作。

Neutron 提供网络服务

Ceilometer 提供云监控服务,公有云提供计费服务

1. FS OpenStack中Ceilometer主要为上层运维组件提供监控与告警数据,公有云下可用于计费。

2. OpenStack_OM组件使用这些计量数据为VM进行监控,图中为VM的CPU、内存、磁盘、网络与IO流量的实时监控。

Openstack的基本组件及部分组件工作原理

3. OpenStack_OM组件使用ceilometer上报的告警消息,包含了告警发生的对象,和告警相关的附加信息,这些消息展示在运维页面上,方便于运维人员定位问题,判断告警原因。

4. ceilometer所收集的加量数据,主要通过两种方式来获取:Ceilometer的agent服务主动调用其他组件API,或者libvirt API,或者hostos命令获取原始数据,并将其发往消息队列Ceilometer的notification服务通过监听消息队列对应通道,获取其他组件发送给ceilometer的事件消息这些数据最终均会由ceilometer的collector服务收集并通过数据库存储下来

HEAT

Heat只要用于编排云应用

Heat向开发人员和系统管理员提供了一种简便地创建和管理一批相关资源的方法,并通过有序且可预测的方式对其进行资源配置和更新。可以使用Heat的标准示例模板或自己创建模板来介绍 heat资源以及应用程序运行时所需的任何相关依赖项或运行时参数。可以不需要了解服务需要配置的顺序,也不必弄清楚让这些依赖项正常运行的细枝末节。对于Heat的功能和实现,简单来说就是用户可以预先定义一个规定格式的任务模版,任务模版中定义了一连串的相关任务(例如用某配置开几台虚拟机,然后在其中一台中安装一个mysql服务,设定相关数据库属性,然后再配置几台虚拟机安装web服务群集等等),然后将模版交由Heat执行,就会按一定的顺序执行heat模版中定义的一连串任务。

功能:

1. Heat是工程名称,Orchestration是项目名称

2. 编排云应用,基于模板创建云应用

3. 兼容Cloudformation模板

4. 支持HOT模板

5. 兼容AWS的API

6. 提供RESTfull服务

7. 提供OpenStack云应用的整个生命周期的管理

Heat-api :类似于nova-api,提供了原生的restful API对外使用。用户对API的调用,由heat-api处理之后,最终通过RPC传递给Heat-engine来进一步处理。heat-api-cfn:组件则提供了Amazon style 的查询 API,因此可以完全兼容于Amazon的CloudFormation,对于API的请求,同heat-api类似,处理之后,通过RPC传递给heat-engine进一步处理。heat-api-cloudwatch:提供了cloudwatch的查询 API,对于API的请求,同heat-api类似,处理之后,通过RPC传递给heat-engine进一步处理。heat-engine:heat中的核心模块,主要的逻辑业务处理模块。此模块最终完成应用系统的创建和部署。

Keystone 提供统一的认证服务

Swift 提供对象存储服务

OpenStack

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:10分钟!一键部署Oracle 11GR2单机
下一篇:开发部署提速8倍!这款IDE插件了解一下?
相关文章