OpenStack的架构与基本概念

目录

  • 一、云计算
    • 1.1.1、云计算是什么
      • 1.1.2、云计算的概念
        • 1.1.3、云计算发展历程
          • 1.1.4、云计算的主要特点
            • 1.1.5、服务类型
    • 二、OpenStack
      • 2.2.1、OpenStack介绍
        • 2.2.2、OpenStack的特性
          • 2.2.3、OpenStack的主要组件
            • 2.2.4、OpenStack 架构

一、云计算

1.1.1、云计算是什么

  • 云计算(CloudComputing)是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。
  • 现阶段的云计算通过不断进步,已经不单单是一种分布式计算,而是分布式计算、效用计算、负载均衡、并行计算、网络存储、热备份冗杂和虚拟化等计算机技术混合演进并跃升的结果。

1.1.2、云计算的概念

  • 云计算管理的是网络资源、存储资源、服务器资源、硬件资源等。可以使用户在任何时间任何地点,通过网络获取所需要的资源或服务,并且按需分配,按用量进行收费。

1.1.3、云计算发展历程

OpenStack的架构与基本概念_第1张图片

  • 一是萌芽期(Technology Trigger)又称感知期,人们对新技术产品和概念开始感知,并且表现出兴趣;
  • 二是过热期(Peak of Inflated
    Expectations),人们一拥而上,纷纷采用这种新技术,讨论这种新技术。典型成功的案例往往会把人们的这种热情加上把催化剂;
  • 三是低谷期(Trough of Disillusionment),又称幻想破灭期。过度的预期,严峻的现实,往往会把人们心理的一把火浇灭;
  • 四是复苏期(Slope of Enlightenment),又称恢复期。人们开始反思问题,并从实际出发考虑技术的价值。相比之前冷静不少;
  • 五是成熟期(Plateau ofProductivity),又称高原期。该技术已经成为一种平常。从著云台2011
    年的技术成熟度报告,我们可以看到云计算已经绕过了应用上的瓶颈,开始真正“落地”。
  • 云计算如一阵飓风席卷整个IT 界,伴之而来的优势是非常明显的。
  • 2012 年更是云计算快速发展的一年,各种云技术、云方案将陆续出台,无论是早期亚马逊的Cloud Drive,还是2011
    年苹果公司推出的iCloud,抑或是2012 年4 月微软将要推出的System Center
    系统等,都把目标盯紧了云计算这块大“肥肉”。
1.1.4、云计算的主要特点
  • (1)资源配置动态化。根据消费者的需求动态划分或释放不同的物理和虚拟资源,当增加一个需求时,可通过增加可用的资源进行匹配,实现资源的快速弹性提供;如果用户不再使用这部分资源时,可释放这些资源。云计算为客户提供的这种能力是无限的,实现了IT资源利用的可扩展性。
  • (2)需求服务自助化。云计算为客户提供自助化的资源服务,用户无需同提供商交互就可自动得到自助的计算资源能力。同时云系统为客户提供一定的应用服务目录,客户可采用自助方式选择满足自身需求的服务项目和内容。
  • (3)以网络为中心——云计算的组件和整体构架由网络连接在一起并存在于网络中,同时通过网络向用户提供服务。而客户可借助不同的终端设备,通过标准的应用实现对网络的访问,从而使得云计算的服务无处不在。
  • (4)服务可计量化。在提供云服务过程中,针对客户不同的服务类型,通过计量的方法来自动控制和优化资源配置。即资源的使用可被监测和控制,是一种即付即用的服务模式。
  • (5)资源的池化和透明化——对云服务的提供者而言,各种底层资源(计算、储存、网络、资源逻辑等)的异构性(如果存在某种异构性)被屏蔽,边界被打破,所有的资源可以被统一管理和调度,成为所谓的“资源池”,从而为用户提供按需服务;对用户而言,这些资源是透明的,无限大的,用户无须了解内部结构,只关心自己的需求是否得到满足即可。
1.1.5、服务类型
  • IAAS(基础架构及服务)
  • IaaS(Infrastructure-as-a-
    Service):基础设施级服务。消费者通过Internet可以从完善的计算机基础设施获得服务。
  • Iaas通过网络向用户提供计算机(物理机和虚拟机)、存储空间、网络连接、负载均衡和防火墙等基本计算资源;用户在此基础上部署和运行各种软件,包括操作系统和应用程序。
  • PAAS(平台及服务)
  • PaaS(Platform-as-a- Service):平台级服务。PaaS实际上是指将软件研发的平台作为一种服务,以SaaS的模式提交给用户。因此,PaaS也是SaaS模式的一种应用。但是,PaaS的出现可以加快SaaS的发展,尤其是加快SaaS应用的开发速度。
  • 平台通常包括操作系统、编程语言的运行环境、数据库和 Web 服务器,用户在此平台上部署和运行自己的应用。用户不能管理和控制底层的基础设施,只能控制自己部署的应用。
  • SAAS(软件及服务)
  • SaaS(Software-as-a- Service):软件级服务。它是一种通过Internet提供软件的模式,用户无需购买软件,而是向提供商租用基于Web的软件,来管理企业经营活动。
  • 云提供商在云端安装和运行应用软件,云用户通过云客户端(通常是 Web 浏览器)使用软件。云用户不能管理应用软件运行的基础设施和平台,只能做有限的应用程序设置。
    OpenStack的架构与基本概念_第2张图片

二、OpenStack

2.2.1、OpenStack介绍

  • OpenStack是一个开源的云计算管理平台项目,是一系列软件开源项目的组合。由NASA(美国国家航空航天局)和Rackspace合作研发并发起,以Apache许可证(Apache软件基金会发布的一个自由软件许可证)授权的开源代码项目。
  • OpenStack为私有云和公有云提供可扩展的弹性的云计算服务。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。

2.2.2、OpenStack的特性

OpenStack优势

  • 控制性 完全开源的平台,提供API接口,方便与第三方技术集成
  • 兼容性 OpenStack兼容其他公有云,方便用户进行数据迁移可
  • 扩展性 模块化设计,可以通过横向扩展,增加节点、添加资源
  • 灵活性 根据自己的需要建立相应基础设施、增加集群规模激活
  • 行业标准
    众多IT领军企业已经加入到OpenStack项目
2.2.3、OpenStack的主要组件
服务组件 项目 描述
Compute 计算服务 (Nova) 主要用于虚拟化资源的载体,提供各种虚拟机的建立。分配各种计算资源到虚拟机,如CPU、内存等。此节点相对于其他节点来说,需要更多的CPU和内存资源。
Identity Service 认证服务 (Keystone) 主要提供了用户目录的集中式存储,以及相关的授权服务,便于其他OpenStack服务的访问。提供创建用户和租户,并且以基于角色的方式限制用户租户访问云计算中的计算、网络、存储等资源。
Image Service 镜像服务 (Glance) 主要用于提供OpenStack平台的镜像服务。负责磁盘和服务器虚拟镜像的查询、注册和传输的功能。Glance本身其实并不存储镜像,它只是一个代理,充当镜像存储服务和其他Openstack组件之间的纽带。所有的磁盘和镜像存储在OpenStack的后端服务上,比如对象存储系统或者本地存储系统中。
Networking 网络服务 (Neutron) 主要提供OpenStack的网络服务,之前的代码为Quantum,后改名为Neutron。Neutron提供云计算环境下的虚拟网络功能,目的是为OpenStack云更灵活地划分物理网络,在多租户环境下提供给每个租户独立的网络环境。该模块最开始是 Nova 的一部分,叫 nova-network,后来从 Nova 中分离出来。该模块之所以重要是因为如果没有虚拟网络服务,OpenStack 就变为单纯提供虚拟机实例和虚拟存储服务的平台,这就违背了提供分布式虚拟服务的云计算核心价值。
Dashboard 控制面板 (Horizon) 提供了以Web形式对所有节点的所有服务的管理,通常把该服务成为Dashboard。
Object Storage 对象存储 (Swift) 是OpenStack所有组件中最早的之一,还有一个是Nova组件。主要提供对象存储,存储的是一些资源文件,如图片、代码等文件。在OpenStack平台中,任何的数据都是一个对象。是一个可扩展并且提供了冗余的存储系统
Block Storage 块存储 (Cinder) 主要提供OpenStack的块存储服务,为云环境提供块设备的创建、添加和卸载,支持多种主流的存储平台。块设备适用于对应性能要求较高的应用场景,比如数据库。块设备的快照功能可以实现基于块存储卷的数据备份,而且也可以利用快照进行数据恢复。
Orchestration 编排 (Heat) openstack 的 任 务 编 排 工 具
Telemetry 监控计量服务 (Ceilometer) 用于度量、监控和控制数据资源的集中来源,为OpenStack用户提供记账途径
Database Service 数据库服务 (Trove) 提供数据库即服务的功能 Trove为自动化配置和管理几种主要的SQL数据库和NoSQL数据库奠定了基础
Data Processing 数据处理 (Sahara) 在OpenStack中提供大数据服务
IRonic 物理裸机管理,目前是非常好用
2.2.4、OpenStack 架构

OpenStack是由一系列具有RESTful接口的Web服务所实现的,是一系列组件服务集合其设计基本原则如下:

  • 按照不同的功能和通用性划分不同项目,拆分子系统

  • 按照逻辑计划、规范字系统之间的通信

  • 通过分层设计整个系统架构

  • 不同的功能子系统间提供统一的API接口

  • 1、OpenStack 概念架构
    OpenStack的架构与基本概念_第3张图片

全局组件:

  • keystone:为所有服务模块提供认证与授权
  • ceilometer:度量、监控所有数据资源
  • horizon :UI平台管理,提供一个web管理页面,与底层交互

内部核心组件:

  • glance:提供镜像服务
  • neutron:提供网络服务
  • swift:提供对象存储资源
  • cinder:提供快存储资源
  • nova:管理实例的生命周期,并负责调取以上四个资源给虚拟机使用。

外部辅助组件

  • ironic 提供裸金属环境
  • trove 提供管理数据库服务(控制关系型和非关系型数据库)
  • heat,sahara 提供对数据管理和编排

流程:

  • 云平台用户在经过Keystone服务认证授权后

  • 通过
    Horizon或者Reset API模式创建虚拟机服务,创建过程中包括利用Nova服务创建虚拟机实例,虚拟机实例采用Glance提供镜像服务

  • 然后
    使用Neutron为新建的虚拟机分配IP地址,并将其纳入虚拟网络中

  • 之后
    在通过Cinder创建的卷为虚拟机挂载存储块,整个过程都在Ceilometer模块资源的监控下,Cinder产生的卷(Volume)和Glance提供的镜像(Image) 可以通过Swift的对象存储机制进行保存。

  • 2、OpenStack 逻辑架构

OpenStack的架构与基本概念_第4张图片

  • OpenStack包括相互独立的服务组件。所有服务均可通过一个公共身份服务进行身份验证。除了那些需要管理权限的命令,每个服务之间均可通过公共API进行交互。所以,API即是每个服务内部和外部的交界处,隔离了内外
  • 每个服务又由若干组件组成,包含多个进程。每个服务至少有一个API进程,用于侦听API请求,对这些请求进行预处理,(
    预处理就是将请求暴露出来的API接口,给keystone进行认证,如果认证通过,则放入队列等待被处理。)
    然后将它们传送到自己服务后端的其他组件,对请求进行处理,而不是API进程去处理。也就是说除了认证服务,实际工作都是由具体的进程完成的。
  • 服务内各个进程之间的通信:使用AMQP消息代理。服务的状态存储在数据库中。

消息队列类型

  • 1.RabbitMQ:RabbitMQ是一个开源的消息代理的队列服务器,用来通过普通协议在完全不同的应用之间共享数据。RabbitMQ是使用Erlang语言来编写的,并且RabbitMQ是基于AMQP协议的。Erlang语言在数据交互方面性能优秀,有着和原生Socket一样的延迟,这也是RabbitMQ高性能的原因所在。可谓“人如其名”,RabbitMQ像兔子一样迅速。

  • 2.RocketMQ:RocketMQ是一款分布式消息中间件,最初是由阿里巴巴消息中间件团队研发并大规模应用于生产系统,满足线上海量消息堆积的需求,
    在2016年底捐赠给Apache开源基金会成为孵化项目,经过不到一年时间正式成为了Apache顶级项目;早期阿里曾经基于ActiveMQ研发消息系统,
    随着业务消息的规模增大,瓶颈逐渐显现,后来也考虑过Kafka,但因为在低延迟和高可靠性方面没有选择,最后才自主研发了RocketMQ,
    各方面的性能都比目前已有的消息队列要好,RocketMQ和Kafka在概念和原理上都非常相似,所以也经常被拿来对比;RocketMQ默认采用长轮询的拉模式,
    单机支持千万级别的消息堆积,可以非常好的应用在海量消息系统中。

  • 3.Kafka:Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。承担高并发优于其他队列
    OpenStack组件通信关系:

  • 基于 HTTP 协议
    通过各项目的API建立的通信关系,API都是RESTful Web API

  • 基于 AMQP(Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消队列协议)协议(基于消息队列协议)
    用于每个项目内部各个组件之间的通信

  • 基于数据库连接(主要是 SQL 的通信)
    用于各个项目内部的数据库通信。

  • Native API(基于第三方的 API)
    OpenStack各组件和第三方软硬件之间的通信。

  • 3、OpenStack 物理架构

  • 物理架构可以从四个节点来看,包括控制节点,网络节点,计算节点,存储节点。
    **控制节点:**运维人员通过控制节点从而控制整个openstack架构。

OpenStack的架构与基本概念_第5张图片

控制节点包括以下服务

  • 支持服务:包括数据库支持和通信支持,为整个节点提供数据存储服务和服务之间消息队列的通信服务。
  • 基础服务:为虚拟机提供基础的镜像、网络、计算资源;keystone负责整个架构的认证和授权,运维人员通过horizon可视化的界面进行管理。
  • 扩展服务:主要针对虚拟机的数据管理,heat进行数据的编排和管理。计量服务在此获取虚拟机的数据源,进行资源监控和计量,并记录。
  • 网络接口:专门管理节点的网络服务
    网络节点
    网络节点:只有一个基础服务,Neutron网络服务。负责整个openstack架构的网络通信。
    整个网络接口又可分为管理网络、数据网络、外部网络。管理网络负责关联其他节点的网络,让控制节点可管控其他节点的网络。数据网络负责整个架构的数据通信。外部网络负责架构与外部物理网络的连接通信。
    计算节点
    计算节点包括基础服务、扩展服务、网络接口。基础服务有Nova Hypervisor 和网络插件代理。扩展服务为ceilometer agent 计量代理服务。网络接口为管理网络和数据网络。
    存储节点
    存储节点包括cinder和swift两个基础的存储服务和网络接口。网络接口为管理网络和数据网络。
    OpenStack的架构与基本概念_第6张图片

你可能感兴趣的:(OpenStack,云计算,openstack)