OpenStack之Fuel架构及其工作原理

 

一、Fuel架构

Fuel是一个开源的OpenStack部署和管理的工具,它允许用户通过Web UI进行OpenStack的部署和管理,并可以通过插件来扩展。

Fuel的目标:加快和简化不同配置的OpenStack环境的部署、测试和维护。

Fuel面向普通用户提供了多种不同需求的简化的OpenStack部署方式,主要特性有:

自动发现硬件环境;

UI界面配置;

多OpenStack集群管理;

可选是否做HA;

部署前的配置及网络检查;

部署后的OpenStack环境测试;

UI界面实时查看日志;

支持CentOS和Ubuntu,通过扩展也可支持其他版本。

 Fuel的架构如下:

 Fuel由许多独立的组件构成,有些组件来自第三方,如Cobbler、Puppet、Mcollective等。

UI基于bootstrap和backbone框架使用JavaScript开发。

Nailgun是Fuel的核心组件,使用Python开发。它提供用于部署和管理的REST API;管理磁盘卷配置数据、网络配置数据以及其他环境相关的数据。它能够根据编排逻辑按照正确顺序生成部署命令。Nailgun使用SQL数据库保存数据,使用AMQP服务与workers进行交互。用户通过Web UI或 Fuel CLI与其进行交互。

Astute是另外一个重要的组件,代表着nailgun的workers。它主要是根据nailgun提供的指令运行着某些操作。Astute实际上什么东西都没有只是一层封装着所有细节和相互影响的服务比如cobbler、puppet、shell scripts等等,和提供了异步通用接口给那些服务。它是通过其他基本本地协议(比如XML-RPC协议)来管理这些服务或者可以使用Mcollective agents去提供定义好的命令比如运行’puppet apply’在其他的远程节点上面或运行某些脚本。当然它是通过AMQP来与nailgun交互数据。

Cobbler用于网卡启动环境准备,被用来提供快速网络安装的linux服务。

Puppet用户部署,可以通过MCollective agent去管理其他的配置管理框架,比如Chef,SaltStack等。

Mcollective agents用于执行类似硬件驱动清理、网络连接探查等特别任务。

OSTF(OpenStack Testing Framework/Health Check)是一个独立的组件,用于在部署后测试OpenStack环境。

二、Fuel执行原理

 

1、节点部署

  Fuel说具体点就是个管理节点。这个节点包含了给节点提供网络、安装操作系统以及部署openstack创建云平台环境等所有服务。上面说了nailgun是fuel里面的最重要的服务。它是用Python编写的RESTful应用程序包含所有系统的业务逻辑。

  一个用户能通过页面或者CLI来编辑配置、给新节点分配角色以及搭建集群。

  Naligun的数据都是存储在postgreSQL数据库里(跟mysqlfreedb一样属于开源的数据库)。这些数据包含了新节点硬件配置信息、角色、环境配置、现状部署情况等。

  管理节点里的PXE服务使用了特殊的bootstrap image来发现新的节点。这个bootstrap image运行着特殊的脚本——nailgun agent.rb这个脚本收集了服务器硬件信息并提交给了nailgun通过REST API。

  部署程序是在用户配好了环境才开始启动的。Nailgun服务端会创建一个环境配置的JSON数据文件然后交给rabbitmq队列中。这个信息会被一个“任务执行者“——Astute接受。最终由它去发送配置任务给其他组件安装部署节点。

  Astute workers会去主动监听rabbitmq队列并接受消息。首先,一旦有提供环境的节点,astute会使用XML-RPC去给cobbler设置那些节点的配置并使用mcollective重启那些节点让cobbler去安装基础操作系统。Cobbler是一个部署系统能控制DHCP和TFTP服务并使用他们去网络启动那些节点以及部署系统根据用户的配置内容。

  Astute发送一个特殊的信息给rabbitmq队列包含着所有需要在托管节点的操作。在已经被引导启动的节点上mcollectvie服务端会去监听刚才发送消息,一旦有消息过来他们就会运行所需的代理的操作与给定的参数。Mcollective客户端只是一组ruby脚本程序。这些程序会去运行mcollective所需要的执行的操作。

2openstack环境部署

  各节点的基础操作系统安装完成后,Astute便开始部署OpenStack的服务了。

  1) 首先,Astute通过uploadfile agent将节点配置传至节点机器的/etc/astute.yaml文件,该文件包含所在节点的所有参数和配置信息;

  2)  然后,Astute通过puppetsync agent同步Puppet的modules和manifests到各节点。这个agent其实就是运行rsync命令,而rsyncd服务就在Master节点。

  3) 同步完成后,Astute通过puppet apply(Fuel没有使用puppet的master-agent的方式,而是直接在各节点apply的)命令执行Puppet manifest的site.pp。MCollective agent使用daemonize工具在后台执行puppet(不过在Fuel9.0部署后的节点上没有找到这个文件):

  daemonize puppet apply /etc/puppet/manifests/site.pp

  同时,Astute定期通过agent检查部署过程是否已经完成,并将进度通过RabbitMQ报告给Nailgun,从而可以在UI前端看到安装进度和实时的日志。

 部署过程启动后,Puppet读取astute.yaml文件作为fact,然后转化数据到$fuel_settings数据结构中,后者在部署过程中用来获取所有的配置信息。

  当puppet进程退出来之后无论成功还是返回一个错误,astute都会从节点得到一个报告文件并发送一个结果给nailgun。然后用户可以通过监控看到这个日志,无论是从fuel界面还是cli。

  Astute也可以做额外的部署操作,这要根据用户的环境配置,都可以添加无论部署是否已经完成:

  生成和上传SSH keys

  网络验证

  上传cirros镜像

  上传/etc/hosts文件给所有节点

  上传RadosGW map(ceph节点)

原文地址:https://www.cnblogs.com/chenli90/p/10713882.html

时间: 2024-11-24 13:39:22

OpenStack之Fuel架构及其工作原理的相关文章

Citrix PVS架构和工作原理

Citrix PVS产品一直在Citrix的产品体系中存在着重要的位置,在中大型的VDI环境中,绝大部分都是基于PVS架构部署的,足以证明PVS架构的稳定.高效和便捷. 本文从底层架构和原理的角度分析了Citrix PVS组件,使得我们能够得窥PVS架构稳定.高效和便捷的背后,支撑的机制到底是什么? 一.Citrix PVS简介 Citrix Provisioning Services组件简称Citrix PVS,是通过创建一个标准的虚拟机镜像,该镜像就如同一个虚拟磁盘一样,里面包含了虚拟机的配

浅谈k8s:k8s部署架构以及工作原理

对于每个想落地kubernetes应用的工程师来说,熟悉kubernetes的架构和工作原理是必经之路,也是必须知道的知识,只有了解kubernetes的架构和工作原理才能更好的应用kubernetes . kubernetes架构 Kubernetes最初源于谷歌内部的Borg,提供了面向应用的容器集群部署和管理系统,所以整体的架构和borg很相似,整个架构有api server,control manager,scheduler,etcd,kubelet,kube-proxy,network

CPU的内部架构和工作原理 (转,相当不错)

一直以来,总以为CPU内部真是如当年学习<计算机组成原理>时书上所介绍的那样,是各种逻辑门器件的组合.当看到纳米技术时就想,真的可以把那些器件做的那么小么?直到看了Intel CPU制作流程及AMD芯片的制作流程的介绍不禁感慨,原来科技是如此的发达. 本文我们以Intel为例对CPU的工作原理做简单介绍,仅仅是简单介绍,那么AMD,ARM,MIPS甚至PowerPC你应该会触类旁通才对. 还记得那是1968年7月18日,鲍勃-诺斯和戈登-摩尔的新公司在美国加利福尼亚州,美丽的圣弗朗西斯科湾畔芒

详解Hive的架构、工作原理及安装步骤

一.Hive是什么? Hive 是基于 Hadoop 构建的一套数据仓库分析系统,它提供了丰富的 SQL 查询方式来分析存储在 Hadoop 分布式文件系统中的数据, 可以将结构化的数据文件映射为一张数据库表,并提供完整的 SQL 查询功能,可以将 SQL 语句转换为 MapReduce 任务进行运行,通过自己的 SQL 去 查询分析需要的内容,这套 SQL 简称 Hive SQL. 二.理解Hive 架构 Hive 架构可以分为四部分. 用户接口 Hive 对外提供了三种服务模式,即 Hive

H3C交换设备的IRF(智能弹性架构)工作原理及配置

博文目录一.IRF概述二.IRF具有哪些优点三.IRF的基本概念1.角色2.IRF端口3.IRF物理端口4.IRF合并5.IRF分裂6.成员优先级四.IRF的运行模式与配置方式五.IRF的工作原理1.物理连接2.拓扑收集3.角色选举4.IRF的管理与维护六.多IRF冲突检测(MAD功能)1.多IRF冲突检测的定义和功能2.多IRF冲突检测的方式和原理七.配置IRF八.IRF和MAD涉及的查询类命令如下 一.IRF概述 IRF(Intelligesilient Framework,智能弹性架构)是

[基础架构]PeopleSoft工作原理(从浏览器发送请求开始)

PeopleSoft体系结构是由几大组成部分构成,之前文章已经详细讲过,了解这几大组成部分是怎么协同工作的更为重要.在本文中将帮助您了解PeopleSoft的工作原理以及用户发送的请求是如何被解析以及如何返回给用户的.该文内容不仅可以帮助技术团队解决项目中遇到的技术问题,也可以更好帮助大家了解PeopleSoft的体系结构. PeopleSoft如何工作(以下编号对应上图中编号) 由web浏览器解析url地址链接,该url映射webserver 的ip. 在servlet引擎中运行servlet

CPU的内部架构和工作原理-原文

CPU从逻辑上可以划分成3个模块,分别是.和,这三部分由CPU内部总线连接起来.如下所示: 控制单元:控制单元是整个CPU的指挥控制中心,由指令寄存器IR(Instruction Register).指令译码器ID(Instruction Decoder)和操作控制器OC(Operation Controller)等,对协调整个电脑有序工作极为重要.它根据用户预先编好的程序,依次从存储器中取出各条指令,放在指令寄存器IR中,通过指令译码(分析)确定应该进行什么操作,然后通过操作控制器OC,按确定

HDFS2.X架构及工作原理

1 HDFS简介 1.1 Hadoop 2.0介绍 Hadoop是Apache的一个分布式系统基础架构,可以为海量数据提供存储和计算.Hadoop 2.0即第二代Hadoop系统,其框架最核心的设计是HDFS.MapReduce和YARN.其中,HDFS为海量数据提供存储,MapReduce用于分布式计算,YARN用于进行资源管理. Hadoop 1.0和Hadoop 2.0的结构对比: Hadoop 2.0的主要改进有: 1.通过YARN实现资源的调度与管理,从而使Hadoop 2.0可以运行

JVM架构和工作原理及GC工作机制

学习java,理解弄懂了JVM和GC,对于学习java开发有很大帮助. 借助前人之鉴博文,这里主要讲四个部分:JVM结构.内存分配.垃圾回收算法.垃圾收集器 一.JVM结构 JVM主要包括四个部分: 1.类加载器(ClassLoader):在JVM启动时或者在类运行时将需要的class加载到JVM中. 2.执行引擎:负责执行class文件中包含的字节码指令. 3.内存区(也叫运行时数据区):是在JVM运行的时候操作所分配的内存区. 方法区(Method Area):用于存储类结构信息的地方,包括