带你入门OpenStack,理论详解

一、云计算概述

1.1 云计算的定义

云计算是一种能够通过网络以便利的、按需付费的方式获取计算资源(包括网络、服务器、存储、应用和服务等)并提高其可用性的模式,这些资源来自一个共享的、可配置的资源池,并能够以最省力和无人干预的方式获取和释放。这种模式具有5个关键功能,还包括3中服务模式和4中部署方式。

1.2 云计算发布模型

  • 私有云:云基础架构被一个组织独立操作,可能被这个组织或者第三方机构管理,可能存在于某种条件下或者无条件存在

  • 社区云:云基础架构被几个组织所共享,并且支持一个互相分享的概念(例如:任务,安全需求,策略和切合的决策)的特别的社区。可能被这些组织或者第三方机构所管理,可能存在于某种条件下或者无条件存在

  • 公有云:云基础架构被做成一般公共或者一个大的工业群体所使用的,被某个组织所拥有,并出售云服务。

  • 混合云:云基础架构是由两个或者两个以上的

1.3 云计算服务模型

  • IAAS(基础架构即服务)
    • 提供底层IT基础设施服务,包括处理能力、存储空间、网络资源等
    • 面向对象一般是IT管理人员
  • PAAS(平台即服务)
    • 把安装好开发环境的系统平台作为一种服务通过互联网提供给用户
    • 面向对象一般是开发人员
  • SAAS(软件即服务)
    • 直接通过互联网为用户提供软件和应用程序等服务
    • 面向对象一般是普通用户

二、OpenStack概述

2.1 什么是OpenStack?

OpenStack是一个开放源代码的云平台管理项目,以Apache许可证授权。OpenStack提供了一个部署云的操作平台或工具集。其宗旨在于:帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。

2.2 OpenStack服务

OpenStack四个核心模块:Nova,Glance、Cinder、Neutron
OpenStack四个辅助模块:Horizon、Ceilometer、Keystone、Swift

服务项目名称描述
Compute(计算服务)Nova负责实例生命周期的管理,计算资源的单位。对Hypervisor进行屏蔽,支持多种虚 拟化技术(红帽默认为KVM),支持横向扩展
Network(网络服务)Neutron负责虚拟网络的管理,为实例创建网络的拓扑结构。是面向租户的网络管理,可以 自己定义自己的网络,各个租户之间互不影响
Identity(身份认证服务)Keystone类似于LDAP服务,对用户、租户和角色、服务进行认证与授权、且支持多认证机制
Dashboard(控制面板服务)Horizon提供一个web管理界面、与OpenStack底层服务进行交互
Image Service(镜像服务)Glance提供虚拟机镜像模板的注册于管理,将做好的操作系统拷贝为镜像模板,在创建虚拟机时直接使用,可支持多格式的镜像
Block Storage(块存储服务)Cinder负责为运行实例提供持久的块存储设备,可进行方便的扩展,按需付费,支持多种后端存储
Object Storage (对象存储服务)Swift为OpenStack提供基于云的弹性存储,支持集群无单点故障
Telemetry(计量服务)Ceilometer用于度量、监控和控制数据资源的集中来源,为OpenStack用户提供记账途径

2.3 OpenStack优势

  • 控制性
    • 完全开源的平台,提供API接口,方便与第三方技术集成
  • 兼容性
    • OpenStack兼容其他共有云,方便用户进行数据迁移
  • 可扩展性
    • 模块化设计,可以通过横向扩展,增加节点、添加资源
  • 灵活性
    • 根据自己的需要建立相应基础设施、增加集群规模
  • 行业标准
    • 众多IT领军企业已经加入到OpenStack项目

三、OpenStack架构

学习OpenStack的部署和运维之前,应当熟悉其架构和运行机制,OpenStack作为开源、可扩展、富有弹性的云操作系统,其设计基本原则如下:

  • 按照不同的功能和通用性划分不同项目,拆分子系统
  • 按照逻辑计划、规范子系统之间的通信(API之间进行交互会有特定/通用的方式对不同组件之间的通讯方式进行规范)
  • 通过分层设计整个系统架构
    分层(以架构为单位),三层:
    1、全局组件
    2、辅助组件
    3、核心组件
    以单个核心服务/组件进行分层:
    1、API
    2、子功能模块
    3、其他
    消息队列/代理(rabbitmq)进行通讯(消息代理的作用:作为组件和组件通讯交互/数据传输的载体)
  • 不同的功能子系统间提供统一的api接口
    (各组件之间通过统一的API接口进行交互/通讯/数据传输/调用)

3.1 OpenStack概念架构

  • 三个全局组件:keystone提供认证,Ceilometer监控,Horizon提供UI
  • 辅助组件:Ironic(裸金属,裸机提供一个基础硬件资源),Trove(管理数据库,可以管理关系型和菲关系的数据库),Heat(偏向于大数据,做数据的分析编排和更为合理的利用数据),Sahara(偏向于大数据,做数据的分析编排和更为合理的利用数据)
  • 核心组件:Glance(提供镜像资源),Nova,Swift(作镜像的存储以及卷的备份,可以解决单点故障的问题),Cinder(提供持久化存储),Neutron(提供网络资源)

核心是虚拟机,依托于虚拟机所存在。创建一个虚拟机/实例,需要镜像资源,网络资源、存储资源
nova集中化管理,由nova去向其他组件申请资源,统一收集之后提供给虚拟机/实例
在这里插入图片描述

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

3.2 OpenStack逻辑架构

讲解了OpenStack内部各组件的通讯/对接方式(通过API对接,通过消息代理rabbitmq通讯),包含两层:
1、组件与组件之间
2、组件内部与子功能模块之间的通讯
在这里插入图片描述

  • OpenStack包括若干个称为OpenStack服务的独立组件。所有服务均可以通过一个公共身份服务进行身份验证。除了那些需要管理权限的命令,每个服务之间均可通过公共API进行交互
  • 每个OpenStack服务又由若干组件构成。包含多个进程。所有服务至少有一个API进程,用于侦听API请求,对这些请求进行预处理,并将它们传送到该服务的其他组件。除了认证服务,实际工作都是由具体的进程完成的
  • 至于一个服务的进程之间通信,则使用AMQP消息代理。服务的状态存储在数据库中。

八个服务组件都可以在这个架构图中看到,所有的服务都可以通过一个公共身份服务进行身份验证。每个服务组价又由若干个组件构成,包含多个进程,每个服务至少都有一个API进程,用于侦听API请求,对这些请求进行预处理。各个服务组件之间都是通过api进行对接,使用AMQP消息代理作为通讯方式。简单举例,比如nova这个组件,其中包含很多子进程,他们之间的通讯都是使用AMQP消息代理,然后由api进程暴露出去,给keystone进行认证,如果认证通过,则放入队列等待处理

3.3 OpenStack组件通信关系

  • 基于AMQP协议的通信
    用于每个项目内部各个组件之间的通信

  • 基于SQL的通信
    用于各个项目内部的通信

  • 基于HTTP协议进行通信
    通过各项目的API建立的通信关系,API都是RESTful Web API
    web :由httpd提供了一个可视化的web页面,承载API,API会有自己的具体位置,而这个具体的文职可以是URL(域名,网址)
    restfulL是一个交互/通讯的规范
    API:组件和组件对接的组件(点到点的方式)

  • 通过Native API实现通信
    OpenStack各组件和第三方软硬件之间的通信

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值