OpenStack理论

一,OpenStack概述

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

1.云计算概述

概念

  • 狭义的云计算是指IT基础设施的交付和使用模式
  • 广义的云计算是指服务的交付和使用模式

云计算资源

  • 网络资源
  • 存储资源
  • 计算资源

2.云计算服务模型

laaS(基础架构即服务)

  • 提供底层IT基础设施服务,包括处理能力、存储空间、网络资源等
  • 面向对象一般时IT管理人员
    用户能从中申请到硬件或虚拟硬件,包括裸机或虚拟机,然后在上边安装操作系统或其他应用程序

OpenStack就是一种laaS

PaaS(平台及服务)

  • 把安装好开发环境的系统平台作为一种服务通过互联网提供给用户
  • 面向对象一般是开发人员
    用户能从中申请到一个安装了操作系统以及支撑应用程序运行所需要的运行库等软件的物理机或虚拟机,然后在上边安装其他应用程序,但不能修改已经预装好的操作系统和运行环境

SaaS(软件即服务)

  • 直接通过互联网为用户提供软件和应用程序等服务
  • 面向对象一般是普通用户
    用户可以通过网络以租赁的方式来使用一些软件,而不是购买,比较常见的模式是提供一组账号密码

3.OpenStack概述

OpenStack是一个云操作系统,它控制整个数据中心的大型计算、存储和网络资源池,所有这些都是通过一个仪表板进行管理的,仪表板为管理员提供控制,同时授权用户通过web界面提供资源。

  • NASA(美国国家航空航天局)和Rackspace共同发起
  • 以Apache许可证授权的自由软件和开放源代码项目
  • 为公有云即私有云的建设与管理提供软件的开源项目
  • 覆盖了网络、虚拟化、操作系统、服务器等各个方面

4.OpenStack是什么?

目前最流行的开源操作系统内核。

  • 1.资源抽象
    OpenStack将各类硬件资源,通过虚拟化与软件定义的方式,抽象成资源池。
  • 2.资源分配与负载调度
    OpenStack根据管理员/用户的需求,将资源池中的资源分配给不同的用户,承载不同的应用。
  • 3.应用声明周期管理
    OpenStack已经可以提供初步的应用部署/撤除、自动规模调整能力。
  • 4.系统运维
    OpenStack已经可以提供一定的系统监控能力。
  • 5.人机交互
    OpenStack提供人机接口,外界可以通过API、命令行或图形界面的方式参与OpenStack进行交互。

5.OpenStack不是什么?

OpenStack不是虚拟化:

  • OpenStack的架构定位与技术范畴
    1.OpenStack只是系统的控制面。
    2.OpenStack不包括系统的数据面组件,如hypervisor、存储和网络设备等。

  • 云和虚拟化有着关键的区别
    云计算:IT能力服务化; 按需使用,按量计费; 多租户隔离;
    虚拟化:环境隔离,资源复用; 降低隔离损耗,提升运行效率; 提供高级虚拟化特性。
    虚拟化是实现云计算的技术支撑手段之一,但并非云计算的核心关注点。

OpenStack不是云:

  • OpenStack只是构建云的关键组件。
    内核、骨干、框架、总线。
  • 为了构建一个云,还需要许多东西:

6.OpenStack常见的8个核心项目

服务 项目名称 描述
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用户提供记账途径

7.OpenStack优势

OpenStack 在控制性、 兼容性、 可扩展性、 灵活性方面具备有优势, 它可能成为云计算领域的行业标准。

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

二,OpenStack架构

1.概述

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

  • 按照不同的功能和通用性划分不同项目,拆分子系统
  • 按照逻辑计划、规范子系统之间的通信
  • 通过分层设计整个系统架构
  • 不同的功能子系统间提供统一的API接口

2.OpenStack概念架构

  • OpenStack由多种服务组成,每种服务具有独立的命名。在整个OpenStack架构中,Keystone提供认证服务,接收来自用户和服务的认证请求,并对其身份进行认证。各个服务之间通过公用的API接口进行交互。大部分服务均包含一个API进程,用于侦听API请求,根据服务的性质选择处理请求或转发请求。服务进程之间的通讯通过消息队列实现,如AMQP。
  • 在部署完成的云系统平台上,用户通过Dashboard(控制面板服务)或RestaRt方式在经Keystone模块认证授权后,可以执行创建虚拟机服务。通过Nova模块创建虚拟机实例,Nova调用Glance模块提供的镜像服务,然后调用Neutron模块提供网络服务。根据需要可以选择给虚拟机增加存储卷,卷功能由Cinder模块提供服务。整个过程在Ceilometer模块的资源监控下完成。同时Cinder提供的Volume和Glance提供的镜像可以通过Swift对象存储机制进行保存
  • 在这里插入图片描述
    综上所述,可以看到OpenStack云平台服务的提供主要是依靠Nova、Glance、Cinder和Neutron四个核心模块完成,四个辅助Horizen、Ceilometer、Keystone、Swift提供的访问、监控、权限和对象存储功能。

3.OpenStack逻辑架构

在这里插入图片描述

  • 全局架构来看:OpenStack包括相互独立的服务组件。所有服务均可通过一个公共身份服务进行身份验证。除了那些需要管理权限的命令,每个服务之间均可通过公共API进行交互。所以,API即是每个服务内部和外部的交界处,隔离了内外。
  • 服务之间交互过程:每个服务又由若干组件组成,包含多个进程。每个服务至少有一个API进程,用于侦听API请求,对这些请求进行预处理,( 预处理就是将请求暴露出来的API接口,给keystone进行认证,如果认证通过,则放入队列等待被处理。) 然后将它们传送到自己服务后端的其他组件,对请求进行处理,而不是API进程去处理。也就是说除了认证服务,实际工作都是由具体的进程完成的。
  • 服务内各个进程之间的通信:使用AMQP消息代理。服务的状态存储在数据库中。
    消息队列:常用的三种类型,包括rabbitmq、 rocketmq、kafka,是两个独立的服务之间,消息传递的载体,解决消息在传输是请求的高并发问题,会以容器的方式,存储消息列表(包括请求、交互、报文),划分重要等级放入队列中,逐个处理,处理完的会自动删除。

OpenStack组件通信关系:

  • 基于AMQP协议的通信
    用于每个项目内部各个组件之间的通信。
  • 基于SQL的通信
    用于各个项目内部的数据库通信。
  • 基于HTTP协议进行通信
    通过各项目的API建立的通信关系,API都是RESTful Web API。
  • 通过Native API实现通信
    OpenStack各组件和第三方软硬件之间的通信。

4.OpenStack节点类型

控制节点

  • 顾名思义就是OpenStack中实现数据中心控制的节点,管理 OpenStack的所有服务组件,所有组件不管在哪里,都需要在控制节点上完成类似注册的工作
  • 控制节点必须安装三种类型的软件
    • 第一种
      • 控制接节点上必须安装的是一些相对于 Openstack服务来说的底层的软件,这些底层的软件需要为openstock组件来提供服务,这些软件有DB软件,消息队列软件, Memorycache和Etcd等
    • 第二种
      • 除了底层软件之外,控制节点上必须安装三个 OpenStack的核心组件
      • Keystone和glance是完整的安装在控制节点上的,Nova安装了一部分,Nova的安装是为了节点上的计算服务
      • Glance服务是可以控制节点上剥离的,一般 Glance占用资源小。一般大家都安装在控制节点上的
      • 控制节点是可以安装 Nova computed的,但是生产环境是不会这么干的
    • 第三种
      • 除了底层服务软件和核心组件之外,OpenStack还支持其他可选的组件,比如你的集群中有存储接口,那么在 OpenStack上需要安装管理存储节点和对应的服务组件等等,类似核心组件Nova的套路

网络节点
网络节点只有Neutron组件,网络节点上的neutron安装core plugin(ML2)和service plugin(L3 service),具体的 Service Plugin可以根据你的需求选择

计算节点
包含Nova部分组件和 Neutron部分组件Nova- compute,Neutron agent

存储节点
安装存储组件的节点,一般有代表性的 Cinder(块存储)和 Swift(对象存储)

OpenStack-ironic裸金属

其实,OpenStack Ironic就是一个进行裸机部署安装的项目。所谓裸机,就是指没有配置操作系统的计算机。

从裸机到应用还需要进行以下操作:

  • 1.硬盘RAID、分区和格式化
  • 2.安装操作系统、驱动程序
  • 3.安装应用程序

ironic实现的功能,就是可以很方便的对指定的一台或多台裸机,执行以上一系列的操作。例如部署大数据群集需要同时部署多台物理机,就可以使用Ironic来实现。

Ironic可以实现硬件基础设施资源的快速交付

三,OpenStack常见的核心项目

1.keystone(用户认证服务)

keystone简介

  • 提供身份验证、服务规则和服务令牌功能。
  • 任何服务之间相互调用,都需要经过Keystone的身份验证。
    keystone基本概念介绍

猜你喜欢

转载自blog.csdn.net/weixin_49780168/article/details/113150152