带你走进云计算,OpenStack基本概念及架构

目录

一.云计算服务模型

laas(基础架构即服务)

PaaS(平台即服务)

SaaS(软件即服务)

二.OpenStack简介

三.OpenStack服务

四.OpenStack优势

控制性

兼容性

可扩展性

灵活性

行业标准

五.OpenStack概念架构

六.OpenStack逻辑架构

七.OpenStack组件通信关系

基于 HTTP 协议

基于高级消息队列协议

基于数据库连接(主要是 SQL 的通信)

Native API(基于第三方的 API)

八.OpenStack 物理架构

控制节点架构

网络节点

网络方案

provider模式

self-service模式

计算节点架构

基础服务

扩展服务

网络接口

存储节点架构


一.云计算服务模型

云计算是一种计算模型,它将诸如运算能力、存储、网络和软件等资源抽象成为服务,以便让用户通过互联网远程享用,付费的形式也如同传统公共服务设施一样。因需而定、提供方便、动态改变和无限的虚拟化扩展能力是云计算的几个重要特征。
不同的“云”对应着不同的基础设施。下面是三种广义的“云”:

  • laas(基础架构即服务)

     提供底层IT基础设施服务,包括处理能力、存储空间、网络资源等
     通过IaaS这种模式,用户可以从供应商那里获得他所需要的虚拟机或者存储等资源来装载相关的应用,同时这些基础设施的繁琐的管理工作将由IaaS供应商来处理。IaaS能通过它上面对虚拟机支持众多的应用。IaaS主要的用户是系统管理员。

  • PaaS(平台即服务)

     把安装好开发环境的系统平台作为一种服务通过互联网提供给用户
     通过PaaS这种模式,用户可以在一个包括SDK,文档和测试环境等在内的开发平台上非常方便地编写应用,而且不论是在部署,或者在运行的时候,用户都无需为服务器,操作系统,网络和存储等资源的管理操心,这些繁琐的工作都由PaaS供应商负责处理,而且PaaS在整合率上面非常惊人,比如一台运行Google App Engine的服务器能够支撑成千上万的应用,也就是说,PaaS是非常经济的。PaaS主要的用户是开发人员。

  • SaaS(软件即服务)

     直接通过互联网为用户提供软件和应用程序等服务
     通过SaaS这种模式,用户只要接上网络,并通过浏览器,就能直接使用在云端上运行的应用,而不需要顾虑类似安装等琐事,并且免去初期高昂的软硬件投入。SaaS主要面对的是普通的用户。

二.OpenStack简介

OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。
OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。
OpenStack是IaaS(基础设施即服务)组件,让任何人都可以自行建立和提供云端运算服务。
此外,OpenStack也用作建立防火墙内的“私有云”(Private Cloud),提供机构或企业内各部门共享资源。
 

三.OpenStack服务

服务项目名称描述
计算(Compute)Nova一套控制器,用于为单个用户或使用群组管理虚拟机实例的整个生命周期,根据用户需求来提供虚拟服务。负责虚拟机创建、开机、关机、挂起、暂停、调整、迁移、重启、销毁等操作,配置CPU、内存等信息规格。自Austin版本集成到项目中。
对象存储(Object Storage)Swift一套用于在大规模可扩展系统中通过内置冗余及高容错机制实现对象存储的系统,允许进行存储或者检索文件。可为Glance提供镜像存储,为Cinder提供卷备份服务。自Austin版本集成到项目中
镜像服务(Image Service)Glance一套虚拟机镜像查找及检索系统,支持多种虚拟机镜像格式(AKI、AMI、ARI、ISO、QCOW2、Raw、VDI、VHD、VMDK),有创建上传镜像、删除镜像、编辑镜像基本信息的功能。自Bexar版本集成到项目中
身份服务(Identity Service)Keystone为OpenStack其他服务提供身份验证、服务规则和服务令牌的功能,管理Domains、Projects、Users、Groups、Roles。自Essex版本集成到项目中。
网络&地址管理(Network)Neutron提供云计算的网络虚拟化技术,为OpenStack其他服务提供网络连接服务。为用户提供接口,可以定义Network、Subnet、Router,配置DHCP、DNS、负载均衡、L3服务,网络支持GRE、VLAN。插件架构支持许多主流的网络厂家和技术,如OpenvSwitch。自Folsom版本集成到项目中。
块存储 (Block Storage)Cinder为运行实例提供稳定的数据块存储服务,它的插件驱动架构有利于块设备的创建和管理,如创建卷、删除卷,在实例上挂载和卸载卷。自Folsom版本集成到项目中。
UI 界面 (Dashboard)HorizonOpenStack中各种服务的Web管理门户,用于简化用户对服务的操作,例如:启动实例、分配IP地址、配置访问控制等。自Essex版本集成到项目中
计量 (Metering)Ceilometer像一个漏斗一样,能把OpenStack内部发生的几乎所有的事件都收集起来,然后为计费和监控以及其它服务提供数据支撑。自Havana版本集成到项目中
部署编排 (Orchestration)Heat提供了一种通过模板定义的协同部署方式,实现云基础设施软件运行环境(计算、存储和网络资源)的自动化部署。自Havana版本集成到项目中。
数据库服务(Database Service)Trove为用户在OpenStack的环境提供可扩展和可靠的关系和非关系数据库引擎服务。自Icehouse版本集成到项目中

四.OpenStack优势

控制性

完全开源的平台,提供API接口,方便与第三方技术集成
开源的平台意味着不会被某个特定的厂商绑定和限制,而且模块化的设计能把遗留的和第三方的技术进行集成,从而来满足自身业务需要。OpenStack项目所提供的云计算,让IT团队可以成为自己的云计算服务厂商,虽然构建和维护一个开源私有云计算并不适合每一家公司;但是如果拥有基础设施和开发人员,OpenStack将是很好的选择。

兼容性

OpenStack兼容其他公有云,方便用户进行数据迁移
OpenStack公共云的兼容性可以使企业在将来很容易的将数据和应用迁移到基于安全策略的、经济的和其他关键商业标准的公共云中。

可扩展性

模块化设计,可以通过横向扩展,增加节点、添加资源
目前,主流的Linux操作系统,包括Fedora、SUSE等都将支持OpenStack。OpenStack在大规模部署公有云时,在可扩展性上有优势,而且也可用于私有云,一些企业特性也在逐步完善中。

灵活性

根据自己的需要建立相应基础设施、增加集群规模
灵活性是OpenStack最大的优点之一,用户可以根据自己的需要建立基础设施,也可以轻松地为自己的集群增加规模。

行业标准

众多IT领军企业已经加入到OpenStack项目
来自全球十多个国家的60多家领军企业,包括Cisco、Dell、Intel以及微软都参与到了OpenStack的项目中,并且在全球使用OpenStack技术的云平台在不断的上线。云计算领军企业的加入,会无形透露出一个信息,就是OpenStack未来可能会成为一个行业标准,而且OpenStack项目研发的初衷就是制定一套开源软件标准。

五.OpenStack概念架构

云平台用户在经过Keystone服务认证授权后,通过Horizon或者Reset API模式创建虚拟机服务,创建过程中包括利用Nova服务创建虚拟机实例,虚拟机实例采用Glance提供镜像服务,然后使用Neutron为新建的虚拟机分配IP地址,并将其纳入虚拟网络中,之后在通过Cinder创建的卷为虚拟机挂载存储块,整个过程都在Ceilometer模块资源的监控下,Cinder产生的卷(Volume)和Glance提供的镜像(lmage)可以通过Swift的对象存储机制进行保存。
 

六.OpenStack逻辑架构

  • OpenStack包括若干个称为OpenStack服务的独立组件。所有服务均可通过一个公共身份服务进行身份验证。除了那些需要管理权限的命令,每个服务之间均可通过公共API进行交互。
  • 每个OpenStack服务又由若干组件组成。包含多个进程。所有服务至少有一个API进程,用于侦听API请求,对这些请求进行预处理,并将它们传送到该服务的其他组件。除了认证服务,实际工作都是由具体的进程完成的
  • 至于一个服务的进程之间通信,则使用AMQP消息代理。服务的状态存储在数据库中。
  • 消息队列(Message Queque):俩个独立的服务中间作为消息处理和传递之间的载体,按消息的重要性放入队列进行排列,处理一个消息丢弃一个消息,如果是错误的消息不会放入队列中,对方会重新请求。
    三种消息队列类型:可以并存
消息队列类型简介
RabbitMQRabbitMQ是一个开源的消息代理的队列服务器,用来通过普通协议在完全不同的应用之间共享数据。RabbitMQ是使用Erlang语言来编写的,并且RabbitMQ是基于AMQP协议的。Erlang语言在数据交互方面性能优秀,有着和原生Socket一样的延迟,这也是RabbitMQ高性能的原因所在。可谓“人如其名”,RabbitMQ像兔子一样迅速。
RocketMQRocketMQ是一款分布式消息中间件,最初是由阿里巴巴消息中间件团队研发并大规模应用于生产系统,满足线上海量消息堆积的需求, 在2016年底捐赠给Apache开源基金会成为孵化项目,经过不到一年时间正式成为了Apache顶级项目;早期阿里曾经基于ActiveMQ研发消息系统, 随着业务消息的规模增大,瓶颈逐渐显现,后来也考虑过Kafka,但因为在低延迟和高可靠性方面没有选择,最后才自主研发了RocketMQ, 各方面的性能都比目前已有的消息队列要好,RocketMQ和Kafka在概念和原理上都非常相似,所以也经常被拿来对比;RocketMQ默认采用长轮询的拉模式, 单机支持千万级别的消息堆积,可以非常好的应用在海量消息系统中。
KafkaKafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。承担高并发优于其他队列

七.OpenStack组件通信关系

OpenStack 组件之间的通信分为四类:

  • 基于 HTTP 协议
  • 基于 AMQP(Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议) 协议(基于消息队列协议)
  • 基于数据库连接(主要是 SQL 的通信)
  • Native API(基于第三方的 API)

基于 HTTP 协议

通过各项目的 API 建立的通信关系,基本上都属于这一类,这些 API 都是 RESTful Web API,最常见的就是通过 Horizon 或者说命令行接口对各组件进行操作的时候产生的这种通信,
然后就是各组件通过 Keystone 对用户身份进行校验,进行验证的时候使用这种通信,还有比如说 Nova Compute 在获取镜像的时候和 Glance 之间,对 Glance API 的调用,
还有比方说 Swift 数据的读写,也是通过这个 HTTP 协议的 RESTful Web API 来进行的。

基于高级消息队列协议

基于 AMQP 协议进行的通信,主要是每个项目内部各个组件之间的通信,比方说 Nova 的 Nova Compute 和 Scheduler 之间,然后 Cinder 的 Scheduler 和 Cinder Volume之间。
需要说明的是,Cinder 是从 Nova Volume 演化出来的,所以 Cinder 和 Nova 之间也有通过 AMQP 协议的通信关系,由于 AMQP 协议进行通信也属于面向服务的架构,
虽然大部分通过 AMQP 协议进行通信的组件属于同一个项目,但是并不要求它们安装在同一个节点上,给系统的横向扩展带来了很大的好处,
可以对其中的各个组件分别按照他们负载的情况进行横向扩展,因为他们不在一个节点上,分别用不同数量的节点去承载它们的这些服务。
( AMQP 是一种协议,OpenStack 没有规定它是用什么实现,我们经常使用的是 Private MQ,实际上用户也可以根据自身的情况选择其它的消息中间件。)

基于数据库连接(主要是 SQL 的通信)

通过数据库连接实现通信,这些通信大多也属于各个项目内部,也不要求数据库和项目其它组件安装在同一个节点上,它也可以分开安装,还可以专门部署数据库服务器,
把数据库服务放到上面,之间通过基于 SQL 的这些连接来进行通信。OpenStack 没有规定必须使用哪种数据库,虽然通常用的是 MySQL

Native API(基于第三方的 API)

出现在 OpenStack 各组件和第三方的软硬件之间,比如说,Cinder 和存储后端之间的通信,Neutron 的 agent 或者说插件和网络设备之间的通信,
这些通信都需要调用第三方的设备或第三方软件的 API,我们称为它们为 Native API,那么这个就是我们前面说的基于第三方 API 的通信。

八.OpenStack 物理架构


控制节点架构

控制节点:控制整个OpenStack架构

控制节点包括以下服务

  •    管理支持服务
  •    基础管理服务
  •    扩展管理服务

1.管理支持服务包含MySQL与Qpid两个服务
MySQL:数据库作为基础/扩展服务产生的数据存放的地方
Qpid:消息代理(也称消息中间件)为其他各种服务之间提供了统一的消息通信服务
2.基础管理服务包含Keystone,Glance,Nova,Neutron,Horizon五个服务
Keystone:认证管理服务,提供了其余所有组件的认证信息/令牌的管理,创建,修改等等,使用MySQL作为统一的数据库
Glance:镜像管理服务,提供了对虚拟机部署的时候所能提供的镜像的管理,包含镜像的导入,格式,以及制作相应的模板
Nova:计算管理服务,提供了对计算节点的Nova的管理,使用Nova-API进行通信
Neutron:网络管理服务,提供了对网络节点的网络拓扑管理,同时提供Neutron在Horizon的管理面板
Horizon:控制台服务,提供了以Web的形式对所有节点的所有服务的管理,通常把该服务称为DashBoard
3.扩展管理服务包含Cinder,Swift,Trove,Heat,Centimeter五个服务
Cinder:提供管理存储节点的Cinder相关,同时提供Cinder在Horizon中的管理面板
Swift:提供管理存储节点的Swift相关,同时提供Swift在Horizon中的管理面板
Trove:提供管理数据库节点的Trove相关,同时提供Trove在Horizon中的管理面板
Heat:提供了基于模板来实现云环境中资源的初始化,依赖关系处理,部署等基本操作,也可以解决自动收缩,负载均衡等高级特性。
Centimeter:提供对物理资源以及虚拟资源的监控,并记录这些数据,对该数据进行分析,在一定条件下触发相应动作
控制节点一般来说只需要一个网络端口用于通信/管理各个节点

网络节点

网络节点仅包含Neutron服务
Neutron:负责管理私有网段与公有网段的通信,以及管理虚拟机网络之间的通信/拓扑,管理虚拟机之上的防火等等

网络节点包含三个网络端口

端口作用
管理网络用于与控制节点进行通信
数据网络用于与除了控制节点之外的计算/存储节点之间的通信
外部网络用于外部的虚拟机与相应网络之间的通信

网络方案

openstack中存在两种网络方案,一种是provider模式,一种是self-service模式。起初有些混乱,其实就是我们经常所说的Vxlan版本和vlan版本

provider模式

provider network又称为运营商网络,对于neutron而言,这种网络类型是“没有”三层路由功能的,或者说没有自主的路由功能,他需要借助外部的网络,才能完成不同网络之间的路由。也就是说他的路由器或者三层网络服务是由openstack 之外的力量提供,因此被称为provider。

self-service模式

self-service network又称为租户网络,self-service就是neutron不依赖外部的网络和三层路由,租户自己通过ovs或者Linux bridge创建虚拟的路由来进行交换

self-service模式与provider模式相比较,多了一个 L3 agent(三层代理)。所以self-service的三层路由服务由openstack提供,而provider的三层服务是由物理交换机提供。

计算节点架构

计算节点包含Nova,Neutron,Telemeter三个服务

基础服务

Nova:提供虚拟机的创建,运行,迁移,快照等各种围绕虚拟机的服务,并提供API与控制节点对接,由控制节点下发任务
Neutron:提供计算节点与网络节点之间的通信服务

扩展服务

Telmeter:提供计算节点的监控代理,将虚拟机的情况反馈给控制节点,是Centimeter的代理服务

网络接口

计算节点包含最少两个网络端口
管理网络:与控制节点进行通信,受控制节点统一调配
数据网络:与网络节点,存储节点进行通信

存储节点架构

存储节点包含Cinder,Swift等服务
Cinder:块存储服务,提供相应的块存储,简单来说,就是虚拟出一块磁盘,可以挂载到相应的虚拟机之上,不受文件系统等因素影响,对虚拟机来说,这个操作就像是新加了一块硬盘,可以完成对磁盘的任何操作,包括挂载,卸载,格式化,转换文件系统等等操作,大多应用于虚拟机空间不足的情况下的空间扩容等等
Swift:对象存储服务,提供相应的对象存储,简单来说,就是虚拟出一块磁盘空间,可以在这个空间当中存放文件,也仅仅只能存放文件,不能进行格式化,转换文件系统,大多应用于云磁盘/文件

存储节点包含最少两个网络接口

管理网络:与控制节点进行通信,接受控制节点任务,受控制节点统一调配
数据网络:与计算/网络节点进行通信,完成控制节点下发的各类任务

 

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Moon-01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值