看了网上的一些博客对OpenStack架构的描述,大部分都是将官网的架构图截取下来(还是纯英文文字描述的图片)或者直接将描述翻译为中文直接复制粘贴过来了。如果对于初学者而言,这或许是有字天书了。所以笔者先前的一篇文章是介绍了关于OpenStack的基础知识和核心的组件服务。而本文先从OpenStack部署的节点结构描述,再来对其整体架构进行阐述。
在介绍OpenStack的节点类型之前我们先对OpenStack做一些知识补充。
OpenStack是适用于所有类型云的开源云计算平台,其目标是易于实现,可大规模扩展且功能丰富。
OpenStack是通过一组互相关联的服务组件提供IaaS(基础设施即 服务)解决方案。我们在实验环境或生产环境中部署OpenStack实践之前,都需要对其各种类型的节点及对应安装的服务有所了解。
OpenStack的节点类型有以下四个类型:
下面我们对这四个节点类型注意介绍。
控制节点包括了管理支持服务、基础管理服务和扩展管理服务。
相对于OpenStack而言,该服务属于底层的一些软件安装,用于给相关的组件提供服务。例如安装数据库软件、消息队列软件、Memorycache和Etcd等。
该服务主要安装了一些核心的服务,例如Kystone、Glance、Nova,也可以安装Neutron和Horizon服务。用于提供用户基础的控制与管理。
扩展管理服务是可选的一些组件的安装,例如存储管理,数据库服务等。包括Cinder、Swift、Trove、Heat和Ceilometer主要的可选服务。
此外,控制节点一般来说需要通过网络端口实现同各个节点之间的通信或者管理。
网络节点有且仅有Neutron服务,就是网络服务。
Neutron主要负责管理私有网段和公有网段之间的通信,同时管理虚拟机网络之间的通信以及防火墙等等。
一般在部署时会部署两个以上的网络端口,分别用于与控制节点通信、同计算/存储节点通信、用于外部的虚拟机与相应的网络之间的通信。
计算节点主要包含计算服务、网络服务以及监控服务。基础服务是前两个,监控可以扩展选择。
存储包含的是块存储以及对象存储。这两者虽然都是存储,但是本质上有着巨大的不同。
块存储相当于虚拟出的一块磁盘,可以挂载在对应的虚拟机上,不会受到文件系统的影响,一般是用于虚拟机空间不足时扩容场景;而对象存储,本质上是虚拟出一块磁盘空间,可以存储文件,但不能进行格式化或转换文件系统,一般用于云磁盘/文件。
当我们对实验环境或者生产环境中部署OpenStack的节点类型有所了解的前提下,我们来从两个方面简要说明一下OpenStack的整体架构,该架构是从官方文档中截取,主要从概念和逻辑两个方面进行划分。
当然我们还是要遵循官方文档的相关资料,不过这里笔者将对整个内容稍作详细的讲述,毕竟本文是对一些有网络,群集和linux操作系统基础而又想入门OpenStack的人群提供较为细致的描述与介绍。
如下图,显示的是OpenStack服务之间的关系。笔者将其称之为OpenStack整体概念图。它很好的显示了OpenStack的典型项目,并且将各个服务联系起来。虽然未必一开始就能完全弄懂,但是我们可以通过此图从整体上对OpenStack的概念有进一步的理解。
那么我们如何看这幅概念架构图呢?
嗯,可以花几分钟自己先大致看一下这个架构图,结合上篇文章的内容看看有多少是有些印象的。然后去搜索一下相关的介绍,笔者起初也是通过Google浏览器去到官网看官方文档,然后发现不是非常容易理解,然后就去找资料,听听课等等,从网上找的博客文章呢,大多都是截取官网的图片和复制了官方的简要说明。如果你懒得去动手搜索,那就听听笔者的理解吧。当然笔者能力有限,如有纰漏之处希望您在下方留言指正。
笔者将上图做一下标记,方便介绍,请参照下图:
首先,整体上来看,我们比较熟悉的应该是上图中的加色部分,我们称之为OpenStack的各种项目,也对应着各种服务;下面的表述中可以将服务和项目认为是同一种意思。
那么我们先看中间的红色部分,VMs表示的是虚拟机实例,如果大家玩过或体验过阿里云的一些服务就对此有一定理解了。其实对于OpenStack而言,虚拟机实例就是为客户提供虚拟的服务,包括CPU、内存、带宽、存储等等资源。而这些实例需要由OpenStack各个服务的支持,也包括对其提供相对应的资源和对其进行管理操作。
其次我们看红色方框,这里的服务有一个共同特点——全局性。例如:Keystone,我知道该服务是提供认证的,而需要认证的地方(服务)也是非常多的,Ceilometer服务提供的监控和Horizon服务提供的可视化界面操作管理也是一个道理。而之所以将这三个服务与下面的Swift服务(对象存储)标注同一色块,是因为该四个组件服务相对绿色块而言没有那么核心。当然这里只是笔者的理解,其实上图给出的各种组件服务都是常见常用的,大家还是要多多了解。
其次我们来看紫色方框,这里除了先前讲述的虚拟机实例和对象存储服务,还有四个(绿色块)最为核心的项目,以及其他四个项目。
核心的项目介绍:Glance提供镜像,Nova提供计算服务(例如可以通过Nova进行数据处理实例等),Neutron提供网络服务(各个节点通信,内外网之间通信以及与内部组件之间的通信(有对应的API接口)),Cinder提供的就是存储,相当于一个磁盘。
剩下的四个项目介绍:
Ironic项目,裸金属,还记得上篇文章中我们提到的Bare Metal吗?其实裸金属项目是OpenStack的一个比较特别的项目,是针对一些特殊的场景创建的,主要是为了指定在一台或多台裸机上执行操作,例如部署大数据集群时同时部署多台物理机的场景,Ironic便可以实现硬件基础设施资源的快速交付。
另外,在一些特殊的应用场景下,用户需要直接使用物理服务器资源来满足特定需求的可行性和高效性,因此这也是OpenStack支持该项目的原因之一。
Trove项目,是OpenStack提供的数据库即服务的项目。主要是为了使用户能够快速轻松地利用关系数据库的功能,而无需承担处理复杂管理任务的负担。云用户和数据库管理员可以根据需要配置和管理多个数据库实例。
Heat项目,是OpenStack提供的编排服务,用于通过运行OpenStack API调用来生成正在运行的云应用程序,描述云应用程序。使用模板,可以创建大多数OpenStack资源类型,例如实例,浮动IP,卷,安全组和用户。它还提供了高级功能,例如实例高可用性,实例自动缩放和嵌套堆栈。这使OpenStack核心项目能够获得更大的用户群。
Sahara项目,是OpenStack提供的数据处理服务,主要是为用户提供一种简单的方法来在OpenStack上预配数据处理框架(例如Hadoop,Spark和Storm)。这可以通过指定配置参数(例如框架版本,群集拓扑,节点硬件详细信息等)来完成。
当然这里主要是对上面的一些项目对应的功能和已经两两之间的关联进行了简单介绍,主要是要对其中的服务之间的联系有所了解,也就是要对黑色的英文单词与短语翻译理解,从而了解各个服务项目之间的联系。
如果对上图的英文不太熟悉或者还是觉得还是比较抽象的话,可以参考下面的简化之后架构,可能方便大家理解。
以上就是笔者对官方给出的OpenStack概念架构的介绍。其中涉及的重要组件服务在之后会逐一做更加细致的介绍。
下面我们来看看官方给出的逻辑架构图。
下面我们来谈谈OpenStack的逻辑架构,官方给出的逻辑架构(常见架构但并不唯一)如下图所示:
从上图我们可以发现与概念架构的相同之处就是相对应的组件服务还是在的,不过区别也非常明显,逻辑架构有了直观的内外网的区分,并且将各个组件服务用虚线框隔开,每个框内包含对应组件服务的一些存储,功能模块和API调用接口等,而又将各个组件之间用实现连接,表示出各个组件服务之间的逻辑关系。
不过若是详细讲述该逻辑架构委实枯燥,或许仍然会觉得复杂而抽象,并且笔者前面也说了这也是官方给出的常见架构,并不唯一。下面是简化版本的逻辑架构图和介绍。
用户或管理者可以通过网络来使用或管理OpenStack云平台系统,主要有上图给出的三种方法:命令行接口(对应的相关组件接口的调用)、云管理工具如Rightscale和Enstratius等等、图形化界面工具如Dashboard、Cyberduck等等。笔者使用过OpenStack提供的组件Dashboard,Horizon项目提供的Web图形化界面工具来创建、管理该云平台。如果有使用过阿里云相关服务的经验,就更加好理解了。本文最后会给出笔者先前在笔记本的虚拟机上搭建部署的多节点的OpenStack云平台在本地登录的Web界面图。
而在OpenStack内部,每个组件服务都有自己的逻辑架构,一般由功能模块、数据库或对应后端以及和其他组件进行交互的API接口,这些接口则是通过消息队列来实现通信的,某些专业术语和名词之后也会整理出来。
因此,理解OpenStack的逻辑架构可以从整体到局部再到个体来理解。
下面演示以下如何登录OpenStack管理使用界面,即Horizon项目提供的仪表板UI界面。
1、首先网页中输入本地控制节点ip地址,进入OpenStack仪表板登录界面
2、查询登录用户名和密码(这里作为管理员登录)
3、对照上图登录即可进入仪表板web管理界面
本文主要介绍了OpenStack的架构,从概念和逻辑两个方面进行简要阐述,最后给出笔者部署OpenStack时由Horizon项目提供的Web界面示例图。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。