云计算时代,你需要了解的OpenStack云操作系统

前言

OpenStack是目前最流行的开源云操作系统,学习和掌握开源OpenStack知识将帮助云计算从业者打好坚实的基础。
本文是HCIP-Cloud Computing-OpenStack认证第一章,帮助读者初步了解OpenStack,为后续的深入学习打下基础。

OpenStack简介

OpenStack定义

OpenStack是开源云操作系统,可控制整个数据中心的大型计算,存储和网络资源池。用户能够通过web界面、命令行或API接口配置资源。
OpenStack社区网站:www.openstack.org
OpenStack定义

OpenStack和虚拟化、云计算的关系

OpenStack是虚拟化和云计算之间的纽带。
虚拟化提供资源,
OpenStack对外提供服务,同时也可以管理下面这些资源。
OpenStack和虚拟化、云计算的关系

  • OpenStack不是虚拟化

    • OpenStack的架构定位与技术范畴
      OpenStack只是系统的控制面
      OpenStack不包括系统的数据面组件,如Hypervisor、存储和网络设备等。
    • OpenStack和虚拟化有着关键的区别
      虚拟化是OpenStack底层的技术实现手段之一,但并非核心关注点
      OpenStack不是虚拟化
  • OpenStack不是云计算

    • OpenStack只是构建云计算的关键组件
      内核、骨干、框架、总线
    • 为了构建云计算,我们还需要很多东西
      OpenStack不是云计算

OpenStack的设计思想

  • 开放
    • 开源,并尽可能重用已有开源项目
    • 不要“重复发明轮子”
  • 灵活
    • 不使用任何不可替代的私有/商业组件
    • 大量使用插件方式进行架构设计与实现
  • 可扩展
    • 由多个相互独立的项目组成
    • 每个项目包含多个独立服务组件
    • 无中心架构
    • 无状态架构

Apache 2.0 License
约70%的代码(核心逻辑)使用python开发

缺点:开源部分过多,使得系统变得相对比较繁琐。各组件之间的交互理解起来也比较麻烦。如果不熟悉OpenStack,遇到问题排错很难。

OpenStack历史版本

  • OpenStack每年两个大版本,一般在4月和10月中旬发布,版本命名从字母A-Z。
    OpenStack历史版本

OpenStack架构

OpenStack架构图

  • 粗体字标识为OpenStack核心服务
  • OpenStack的服务分为如下几大类:
    • 计算
    • 存储
    • 网络
    • 共用服务
    • 硬件生命周期
    • 编排
    • 工作流
    • 应用程序生命周期
    • API代理
    • 操作界面
  • OpenStack服务组件通过消息队列(Message Queue)相互通信。
  • OpenStack组件众多,建议重点关注计算、存储和网络服务组件,其他服务可以在实际工作需要时再进行学习。

OpenStack架构图

OpenStack生产环境部署架构示例

  • 生产环境中,一般会有专门的OpenStack部署服务节点、控制节点、计算节点、网络节点和存储服务节点等。
  • 生产环境的控制节点建议三台以上,其他节点按要求部署。
  • 如果只是测试,OpenStack服务可以部署在单节点上。
    OpenStack生产环境部署架构示例

OpenStack核心服务简介

认证服务Ketstone

  • Keystone
    认证服务
    首次出现在OpenStack的“Essex”版本中。
  • 简介
    Keystone提供身份验证,服务发现和分布式多租户授权。
    Keystone支持LDAP,OAuth,OpenID Connect,SAML和SQL。
    • LDAP:Lightweight Directory Access Protocol,轻量目录访问协议
    • OAuth:Open Authorization,为用户资源的授权提供了一个安全的,开放而又简单的标准。
    • OpenID Connect:OpenID和OAuth2的合集。
    • SAML:Security Assertion Markup Language,安全断言标记语言,是一个基于XML的开源标准数据格式,它在当事方之间交换身份验证和授权数据尤其是在身份提供者和服务提供者之间交换。
  • 依赖的OpenStack服务
    不依赖其他OpenStack服务,为其他OpenStack服务提供认证支持。
    认证服务Keystone

操作界面Horizon

  • Keystone
    操作界面
    首次出现在OpenStack的“Essex”版本中。
  • 简介
    Horizon提供基于Web的控制界面,使云管理员和用户能够管理各种OpenStack资源和服务。
  • 依赖的OpenStack服务
    Keystone
    操作界面Horizon

镜像服务Glance

  • GLANCE
    镜像服务
    首次出现在OpenStack的“Bexar”版本中。
  • 简介
    Glance提供发现、注册和检索虚拟机镜像功能。
    Glance提供的虚拟机实例镜像可以存放在不同地方,例如本地文件系统、对象存储、块存储等。
  • 依赖的OpenStack服务
    Keystone
    Glance

计算服务Nova

  • Nova
    计算服务
    首次出现在OpenStack的“Austin”版本中。
  • 简介
    Nova提供大规模、可扩展、按需自助服务的计算资源。
    Nova支持管理裸机、虚拟机和容器。
  • 依赖的OpenStack服务
    Keystone、Neutron(网络)、Glance(镜像服务)
    计算服务

块存储服务Cinder

  • Cinder
    块存储服务
    首次出现在OpenStack的“Folsom”版本中。
  • 简介
    Cinder提供块存储服务,为虚拟机实例提供持久化存储。
    Cinder调用不同存储接口驱动,将存储设备转化成块存储池,用户无需了解存储实际部署的位置或设备类型。
  • 依赖的OpenStack服务
    Keystone
    块存储服务Cinder

对象存储服务Swift

  • Swift
    对象存储服务
    首次出现在OpenStack的“Austin”版本中。
  • 简介
    Swift提供高度可用、分布式、最终一致的对象存储服务。
    Swift可以高效、安全的且廉价的地存储大量数据。
    swift非常适合存储需要弹性扩展的非结构化数据。
  • 依赖的OpenStack服务
    为其他OpenStack服务提供对象存储服务。
    对象存储服务Swift

网络服务Neutron

  • Neutron
    网络服务首次出现在OpenStack的“Folsom”版本中。
  • 简介
    Neutron负责管理虚拟网络组件,专注于为OpenStack提供网络即服务。
  • 依赖的OpenStack服务
    Keystone
    网络服务Neutron

编排服务Heat

  • Heat
    编排服务
    首次出现在OpenStack的“Havana”版本中。
  • 简介
    Heat为云应用程序编排OpenStack基础架构资源。
    Heat提供OpenStack原生Rest API和CloudFormation兼容的查询API
  • 依赖的OpenStack服务
    Keystone
    Heat

OpenStack服务间交互示例

创建一个VM需要的资源

在OpenStack中创建虚拟机,资源需求和物理PC类似。
创建一个VM需要的资源

OpenStack创建VM,服务间交互示例

  • OpenStack核心工作之一是虚拟机生命周期管理。
  • 虚拟机实例创建时,各OpenStack服务协调工作,完成任务。
    OpenStack创建VM,服务间交互示例

OpenStack动手实验:体验OpenStack

OpenStack Training Labs环境安装步骤

OpenStack Training Labs环境安装步骤

OpenStack Training Labs脚本安装流程

  • 安装OpenStack Training Labs环境时,只需执行一条脚本命令:
$./st.py -b cluster
  • 脚本会自动化完成OpenStack培训环境搭建过程,安装完成后,会有一个OpenStack控制节点和一个OpenStack计算节点。
    OpenStack Training Labs脚本安装流程
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章