热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

OpenStack的Nova和Glance组件

简单回顾一下OpenStack三大组件的用途:OpenStackCompute(Nova),为云组织的控制器,它提供一个工具来部署云&#x



简单回顾一下OpenStack三大组件的用途:

OpenStack Compute (Nova),为云组织的控制器,它提供一个工具来部署云,包括运行实例、管理网络以及控制用户等等。
OpenStack Object Storage (Swift),是一个可扩展的对象存储系统。
OpenStack Image Service (Glance),是一个虚拟机镜像的存储、查询和检索系统。

对于Nova,我们先来看一张图:

总的来说,nova的各个组件是以数据库和队列为中心进行通信的,下面对其中的几个组件做一个简单的介绍:

Queue,也就是消息队列,它就像是网络上的一个hub,nova各个组件之间的通信几乎都是靠它进行的,当前的Queue是用RabbitMQ实现的,它和database一起为各个守护进程之间传递消息。

database存储云基础架构中的绝大多数状态。这包括了可用的实例类型,在用的实例,可用的网络和项目。当前广泛使用的数据库是sqlite3(仅适合测试和开发工作)、MySQL和PostgreSQL。

nova-compute负责决定创造虚拟机和撤销虚拟机,通过运行一系列系统命令(例如发起一个KVM实例,)并把这些状态更新到nova-database中去,其过程相当复杂,但是基本原理很简单。

nova-schedule负责从queue里取得虚拟机请求并决定把虚拟机分配到哪个服务器上去。schedule的算法可以自己定义,目前有Simple (最少加载主机),chancd(随机主机分配) ,zone(可用区域内的随机节点)等算法。

nova-volume负责记录每一个计算实例,相当于一个计算请求吧,并负责创建,分配或撤销持久层容器(Amazon的,iSCSI,AoE等等)给这些compute instances。

nova -netwok负责处理队列里的网络任务。

nova-api守护进程是OpenStack Compute的中心。它为所有API查询提供一个入口, 并且同时支持OpenStack API 和 Amazon EC2 API。

为了看看nova是如何工作的,我们可以以启动一个实例为例来进行说明,因为启动一个新的instance涉及到很多openstack nova里面的组件共同协作。

其中:

API :处理客户端的请求,并且转发到 Queue和Database中。
Scheduler:选择一个host去执行命令
nova-compute :启动和停止实例,附加和删除卷等操作
nova-network:管理网络资源,分配固定IP。

接下来就是真正的过程了,先从API开始:
API
例如我们输入一个命令:euca-run-instances -k test -t m1.tiny ami-tiny 它会执行以下操作:
查看这种类型的instance是否达到最大值
给scheduler发送一个消息(实际上是发送到Queue中)去运行这个实例。

Schedule
调度器接收到了消息队列Queue中API发来的消息,然后根据事先设定好的调度规则,选择好一个host,之后,这个instance会在这个host上创建。

Compute
真正去创建一个instance的操作是由Compute完成的,而这个过程中computer组件与Glance密不可分,如图所示:

接下来,需要了解一下Glance在OpenStack里面所起的作用了。

我觉得看图是最直观的了,所以要弄明白Glance在整个OpenStack项目中的角色,就再来看一张图。

可以看出,通过Glance,Opentack的3个模块被链接成了一个整体,Glance为Nova提供镜像的查找操作,而Swift又为Glance提供实际的存储服务,Swift可以看作是Glacne存储接口的一个具体实现。

以我个人的理解来看,Glance的功能类似虚拟文件系统VFS,Glance提供给用户,或者说是Nova,一个统一的操作接口,而至于具体存储的是在Swift上还是在Amazon S3上,使用者不必关心。

知道了Glance所起到的作用之后,再来看compute调用Glance的那张图,详细会更好理解。

glance-api 主要是用来接受各种api调用请求,并提供相应的操作。

glacne-registry 用来和MySQL数据库进行交互,存储或者获取镜像的元数据,注意,刚才在Swift中提到,Swift在自己的Storage Server中是不保存元数据的,这儿的元数据是指保存在MySQL数据库中的关于镜像的一些信息,这个元数据是属于Glance的。

image store 也就是图中的”Swift of S3″,是一个存储接口,通过接口,glance可以获取镜像,image不仅仅支持OpenStack自己的Swift格式的镜像,也同时支持Amazon S3等其他的镜像。

以上就是我对OpenStack三大组件的一些理解,这些内容有的直接来源于网络,有的是我看完资料后的总结,由于看了很多资料,而且没有保存链接,没法一一列举了。



推荐阅读
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • PostgreSQL 10 离线安装指南
    本文详细介绍了如何在无法联网的服务器上进行 PostgreSQL 10 的离线安装,并涵盖了从下载安装包到配置远程访问的完整步骤。 ... [详细]
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • 本文介绍了数据库体系的基础知识,涵盖关系型数据库(如MySQL)和非关系型数据库(如MongoDB)的基本操作及高级功能。通过三个阶段的学习路径——基础、优化和部署,帮助读者全面掌握数据库的使用和管理。 ... [详细]
  • 本文详细介绍了IBM DB2数据库在大型应用系统中的应用,强调其卓越的可扩展性和多环境支持能力。文章深入分析了DB2在数据利用性、完整性、安全性和恢复性方面的优势,并提供了优化建议以提升其在不同规模应用程序中的表现。 ... [详细]
  • 本文介绍了如何在 DB2 环境中创建和删除数据库编目。创建编目是连接新数据库的必要步骤,涉及获取数据库连接信息、使用命令行工具进行配置,并验证连接的有效性。删除编目则用于移除不再需要的数据库连接。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细探讨了JDBC(Java数据库连接)的内部机制,重点分析其作为服务提供者接口(SPI)框架的应用。通过类图和代码示例,展示了JDBC如何注册驱动程序、建立数据库连接以及执行SQL查询的过程。 ... [详细]
  • 本文探讨了MariaDB在当前数据库市场中的地位和挑战,分析其可能面临的困境,并提出了对未来发展的几点看法。 ... [详细]
  • 探讨如何从数据库中按分组获取最大N条记录的方法,并分享新年祝福。本文提供多种解决方案,适用于不同数据库系统,如MySQL、Oracle等。 ... [详细]
  • 本文详细介绍了网络存储技术的基本概念、分类及应用场景。通过分析直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的特点,帮助读者理解不同存储方式的优势与局限性。 ... [详细]
  • 20100423:Fixes:更新批处理,以兼容WIN7。第一次系统地玩QT,于是诞生了此预备式:【QT版本4.6.0&#x ... [详细]
  • 本文详细介绍如何利用已搭建的LAMP(Linux、Apache、MySQL、PHP)环境,快速创建一个基于WordPress的内容管理系统(CMS)。WordPress是一款流行的开源博客平台,适用于个人或小型团队使用。 ... [详细]
  • 方法:1 配置数据库basediros.path.abspath(os.path.dirname(__file__))  #获取当前文件的绝对路径appFlask(__name__ ... [详细]
author-avatar
mobiledu2502883857
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有