OpenStack的核心组件有哪些?
更新:HHH   时间:2023-1-7


前言

OpenStack对于初学者而言,本身就是一个比较大的挑战,其内容繁多,且迭代更新周期较短,从官方网站可以看出目前最新发行的版本为Train版本(2019年10月发布,一般每6个月为一次版本更新,而版本更新将意味着某些先前的版本将不再支持使用),或者一般我们称之为T版本。下图为OpenStack官方的logo图标,感觉看上去非常简洁明了。

OpenStack不断地更新,优化,这说明云计算还在不断地发展,走向成熟,而OpenStack作为云计算的产物也必定会跟随着时代技术的发展而发展。这也是哲学生活中事物发展的客观规律。

那么今天我们就来揭开OpenStack的神秘面纱,通过本文你可以了解到关于OpenStack的以下几个方面:

  1. OpenStack的由来;
  2. OpenStack的概念;
  3. OpenStack的核心组件;
  4. OpenStack如何进行深入学习;

一、OpenStack的起源和发展

还记得之前笔者在谈到对云计算的理解时说过,云计算的概念是在2006年提出的,而OpenStack则是云计算的产物之一。OpenStack起源于云计算,它的发展可谓是日新月异,非常迅速。而且对于云计算而言,它的存在与发展对云计算领域也有着很大的影响力,这也使得OpenStack项目成为业内所有人不得不关注的焦点。

OpenStack项目早在2010年就成立了,大家可能觉得很久远了,但是OpenStack所经历的风雨,所积淀的时间,换来的是一次次优化,一个个项目的孵化成功以及一系列版本的更新。

短短10年岁月,那时我们大部分人可能根本不知道什么是OpenStack,甚至连云计算是个什么鬼都不了解,而云计算的发展,OpenStack的更新却从未停滞。OpenStack从A版本发展到如今的T版本,加入研究的企业与爱好者,使用者,消费者越来越庞大,这也说明OpenStack作为云计算的产物在云计算领域有着一席之地。

那么究竟什么是OpenStack呢?下面我们来简要讲述OpenStack的概念。

二、OpenStack的概念和整体概览

2.1OpenStack介绍

先前笔者在前面的文章中谈到云计算的时候,简要介绍过云计算有三种云服务模式,而第一种,即IaaS(基础设施即服务)是目前云服务商提供最多的云服务。而OpenStack是其最为典型的例子,非常符合该类型云服务的特点。

查阅官方网站的资料,其对OpenStack的定义如下:

阅读完该内容我们可以初步了解这些内容:

  • OpenStack和云计算密不可分;
  • OpenStack是一个云操作系统;
  • OpenStack控制三大资源:计算、网络、存储(池);
  • OpenStack采取身份认证机制给予用户权限和资源;
  • OpenStack提供web端的可视化界面方便管理员控制;
  • OpenStack有其标准的基础架构及服务功能,但也有其他组件以提供其他服务,保证用户应用程序的高可用性。

由此可知,简单来讲OpenStack就是一个控制计算、网络和存储资源的分布式云操作系统。我们也可以将其当成一个云平台,可以在之上部署第三方服务和使用OpenStack内置工具。下图就是官方给出的对OpenStack的介绍图。

通过上图,我们可以了解到OpenStack可以裸机部署、可以创建虚拟机实例、也可以结合容器。在OpenStack平台上我们不仅可以使用内置的工具(OpenStack开发包、web界面)开发或管理我们的OpenStack平台(私有云),而且我们可以部署企业所需要的第三方服务如kubernetes、CloudFoundry、Terraform等等。

2.2OpenStack的整体概览

我们看一下官方给出的OpenStack的整体格局,如下图所示:

有些读者可能觉得OpenStack很复杂,想的没错,笔者也这样认为,呵呵~~。不过该图是会定期更新的。

我们可以发现上图给出的相关内容单词的粗浅程度是不一样的,笔者认为这可能是一种出于人性化的考虑,加粗的一般而言是比较核心主要的,未加粗的相对而言未必是核心,而是根据自己的需要进行获取安装。而这些就是组成整个OpenStack的细化分支。而当我们继续往下阅读时,会发现官网提供了相关的doc文档开发包以及相关工具。文档主要是为了介绍和如何使用这些构成OpenStack的相关内容。我们将这些组成部分称作各种组件,每一种组件有与之对应的项目。

在对这些组件介绍之前,我们先整体了解一下OpenStack的概览图。

先来看最右边的,OpenStack-operations,它包含着有助于操作OpenStack的附加组件。

接着看底部,OpenStack-lifecyclemanagement,这显示了可用于促进OpenStack的安装和生命周期管理的各种解决方案。

然后是左边,OpenStack-user,显然这是使用者,即用户。这里包含了工具,管理员可以安装这些工具。而OpenStack-adjacentenablers包含的是帮助其他技术堆栈来利用OpenStack服务的工具。

最后就是中间,OpenStack的核心内容,包括相关组件和与之对应的项目。

如果对这个概览不明白没没什么关系,对应OpenStack的理解主要还是在概念和其核心内容。下面我们将简要概述一下OpenStack的核心组件。

三、OpenStack的核心组件概述

其实,根据上面的概图,我们大致也知道了有关OpenStack的一些核心部分。考虑到是入门理论,在这里我就简单地概述罗列一下,可能对面试还是有些用处的。当然,OpenStack包含的组件非常多,而且还在不断更新和完善。其实诸多组件的诞生都是先在孵化项目中,成熟之后才会在新的版本中测试发布。

所以,这里就总结一下比较重要的组件。如果有更大的兴趣和需求也可以阅读官网的英文文档,本文就不做太多内容的介绍了。

组件项目项目说明
Compute(计算服务)Nova实施服务和关联的库,以提供对可计算资源(包括裸机,虚拟机和容器)的大规模可扩展的按需自助服务访问
Identity Service(认证服务)Keystone提供API客户端身份验证,服务发现和分布式多租户授权
Image Service(镜像服务)Glance发现,注册和检索虚拟机映像。Glance具有一个RESTful API,该API允许查询VM映像元数据以及检索实际映像。通过Glance提供的VM映像可以存储在从简单文件系统到对象存储系统(例如OpenStack Swift项目)的各种位置。
Networking(网络服务)NeutronSDN网络项目,在虚拟计算环境中交付网络即服务
Dashboard(仪表板)Horizon为OpenStack服务提供基于Web的用户界面
Block Storage(块存储)Cinder虚拟化了块存储设备的管理,并为最终用户提供了自助服务API,以请求和使用这些资源,而无需了解其存储实际部署在何处或在哪种类型的设备上。
Object Storage(对象存储)Swift高度可用的,分布式的,最终一致的对象存储。组织可以使用Swift来高效、安全和廉价地存储大量数据。
Telemetry(计量服务)Ceilometer有效收集,规范化和转换OpenStack服务产生的数据
Orchestration(编排服务)Heat基于文本文件形式的模板,为云应用程序协调基础结构资源,可以将其视为代码
Database Service(数据库服务)Trove一个数据库即服务供应关系和非关系数据库引擎
Data Processing(数据处理)Sahara为用户提供一种简单的方法来在OpenStack上预配数据处理框架(例如Hadoop,Spark和Storm)

在之后的文章中会对其中的最为核心的组件做详细介绍。

四、OpenStack入门总结

本文基于云计算的基础上,讲述了OpenStack相关概念。本文旨在为了给OpenStack的初学者一个对OpenStack的初步认知,知道什么是OpenStack是什么,了解大致的格局结构以及记住上述的一些重要组件服务和项目,并且对这些项目的作用和说明有一定了解。

返回云计算教程...