从零吃透 OpenStack:起源、理念、架构、创建虚拟机交互流程

文章目录

OpenStack架构介绍

OpenStack简介

OpenStack起源

  • 2006年亚马逊推出AWS,正式开启云计算的新纪元
  • 2010年7月美国国家航空航天局(NASA)与Rackspace合作,共同宣布OpenStack开放源码计划,由此开启了属于OpenStack的时代
  • OpenStack从诞生之初对标AWS,一直在向AWS学习,同时开放接口去兼容各种AWS服务
  • 跟随
  • 兼容
  • 促生

!tip

OpenStack的发展与云计算密不可分,众所周知,第一个提出云计算概念走向落地的厂商是亚马逊,这是由其公司当时业务模式驱动导致的。亚马逊作为全球最知名的电子商务网站,业务高峰时,支撑电子商务交易需要极大的算力,然而平时亚马逊不需要如此庞大的算力,亚马逊开始尝试将这些空闲的算力开放出来给用户使用。经过一段时间的发展,云计算这种模式被广泛认可是在2006年,亚马逊推出了弹性计算云EC2(Elastic Compute Cloud),EC2的弹性扩展能力吸引了很多厂商的关注。

美国国家航天航空局也一直在研究提供类似功能的服务,但是技术上遇到了挑战。

Rackspace当时是美国排名第二的云计算厂商,但规模仅为亚马逊的5%。

技术上遇到挑战的NASA和市场拓展上遇到挑战的Rackspace开始联手,决定将OpenStack开源,利用社区的力量来强化OpenStack的功能。于是在2010年双方共同开源了OpenStack项目。愿景是为数据中心建立一套云操作系统,大幅提升数据中心的运行效率。

AWS的功能十分强大,目前还在不断发展中,OpenStack从诞生之初就一直在向AWS学习,同时,OpenStack也提供开放接口去兼容各种AWS服务。

目前来看,OpenStack虽然没有AWS完善,但是相比之下,OpenStack是一个开源项目,并不收取版权费用。

OpenStack是什么?

  • Deploy third party services such as
  • Or use built in tools
  • OpenStack是虚拟机、裸金属和容器的云基础架构
  • OpenStack可控制整个数据中心的大型计算、存储和网络资源池
  • 所有资源都通过API或Web界面进行管理

!tip

OpenStack是一种云操作系统,可控制整个数据中心内的大型计算、存储和网络资源池,所有资源都通过具有通用身份验证机制的API进行管理和配置。管理员也可通过Web界面控制,同时授权用户通过Web界面配置资源。

OpenStack能做什么?

  • Deploy third party services such as
  • Or use built in tools
  • OpenStack通过一组相互关联的服务提供基础设施即服务 (IaaS)解决方案。每个服务都提供了一个应用程序编程接口 (API)来促进这种集成
  • OpenStack项目是一个适用于所有类型云的开源云计算平台,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台

!tip

OpenStack既是一个社区,也是一个项目和一个开源软件,提供开放源码软件,建立公共和私有云,它提供了一个部署云的操作平台或工具集,其宗旨在于帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。

作为一个开源的云计算管理平台,OpenStack由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。

OpenStack工作原理概述

  • OpenStack实际上由一系列叫作脚本的命令组成。这些脚本会被捆绑到名为项目的软件包中,这些软件包则用于传递创建云环境的任务
  • 为了创建这些环境,OpenStack还会使用 2 种其他类型的软件:
    • 虚拟化软件,用于创建从硬件中抽象出来的虚拟资源层
    • 基础操作系统(OS),用于执行OpenStack脚本发出的命令
  • OpenStack本身不会虚拟化资源,但会使用虚拟化资源来构建云
  • OpenStack、虚拟化和基础操作系统,这 3 种技术协同工作服务用户
  • 用户
    • OpenStack
      • 虚拟化
        • 基础 OS

开源OpenStack版本演进

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

!tip

OpenStack第一版代号为Austin,以Rackspace所在的美国德克萨斯州Texas首府命名,计划每隔几个月发布一个全新版本,并且以26个英文字母从A到Z顺序命名后面的版本代号。通常以举办OpenStack峰会所在地的某个城市或地区来命名。

2017年华为成功晋级为白金会员,成为亚洲首家OpenStack白金会员。

OpenStack基金会允许最多8家白金会员资格和24家黄金会员资格,目前已有AT&T、爱立信、华为、英特尔、Rackspace、红帽、SUSE和腾讯这8家白金会员,以及九州云、中国移动、中国联通、中国电信、思科、EasyStack、烽火、浪潮、新华三以及中兴通讯等黄金会员。

OpenStack设计理念

  • 开放
    • 开源
    • 尽最大可能重用已有开源项目
  • 灵活
    • 架构可裁剪
    • 大量使用插件化方式进行架构设计与实现
  • 可扩展
    • 由多个相互独立的项目组成
    • 每个项目包含多个独立服务组件
    • 无中心架构
    • 无状态架构

!tip

开放:

源代码开放,设计与开发流程开放。

"不重复发明轮子","站在巨人的肩膀上"。

不使用任何不可替代的私有/商业组件。

灵活:

架构可裁剪,可以根据实际需要决定选取的组件范围。

大量采用驱动与插件机制。

通过配置项控制对系统功能特性进行便捷配置。

可扩展:

松耦合架构,组件间RESTful API通信,组件内消息总线通信。

无中心架构,核心组件无中心节点,有效避免单点故障。

无状态架构,各组件无本地持久化数据,所有持久化数据保存在数据库中。

OpenStack与虚拟化

  • OpenStack不是虚拟化,OpenStack只是系统的控制面,不包括系统的数据面组件,如Hypervisor、存储和网络设备等
  • 虚拟化是OpenStack底层的技术实现手段之一,但并非核心关注点
  • OpenStack与虚拟化的关键区别:
  • OpenStack
    • 自身不提供虚拟化技术
    • 调用多种技术实现多资源池管理
    • 对外提供统一管理接口
  • 虚拟化
    • 环境隔离,资源复用
    • 降低隔离损耗,提升运行效率
    • 提供高级虚拟化特性

!tip

OpenStack优先关注控制面,OpenStack优先考虑如何将计算、存储、网络领域的各类资源抽象为资源池。在此基础上,对资源池内的各类逻辑对象实施控制操作,并将控制操作包装成面向用户的服务。数据面、管理面目前不是OpenStack的重点关注内容。

OpenStack与云计算

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

!tip

OpenStack是框架:以OpenStack为框架,将计算、存储、网络、管理、运营、运维等多个领域的软硬件产品组件整合在一起,共同组成面向业务场景的整体解决方案。

OpenStack主要关注的问题:框架本身的开放性,生态的繁荣与活跃;控制面的服务能力、高可靠、高性能、可扩展、易操作、易维护等。

Cloud BSS:Cloud Business Support System,云业务支撑系统。

Cloud OSS:Cloud Operation Support System ,云运营支撑系统。

综上两个对比,可以总结出云计算与虚拟化的关键区别:

云计算的特点是IT能力的服务化,按需使用,按量计费,多租户隔离等。

虚拟化的特点是环境隔离,资源复用,降低隔离损耗,提升运行效率,提供高级虚拟化特性等。

OpenStack架构

OpenStack架构概览

!tip

OpenStack被分解为服务,允许用户根据需要即插即用组件。OpenStack地图让用户可以"一目了然"地了解OpenStack环境,以了解这些服务适合的位置以及它们如何协同工作。

OpenStack逻辑架构

  • 要设计、部署和配置OpenStack,管理员必须了解其逻辑架构
  • 每个OpenStack服务内部是由多个进程组成。所有服务(Keystone除外)都至少有一个API进程,负责监听API请求,对请求进行预处理并将它们传递给服务的其他部分
  • 每个OpenStack服务的进程之间的通信,使用AMQP消息代理。服务的状态存储在数据库中。在部署和配置OpenStack云时,管理员可以在多种消息代理和数据库解决方案中进行选择,例如RabbitMQ、MySQL、MariaDB和SQLite
  • 用户可以通过Web用户界面、命令行客户端以及通过浏览器插件或curl等工具发出API请求来访问OpenStack

OpenStack生产环境部署架构示例

!tip

生产环境中,一般会有专门的OpenStack部署服务节点、控制节点、计算节点、网络节点和存储服务节点等。

生产环境的控制节点建议三台以上,其他节点按需求部署。

如果只是测试,OpenStack服务可以部署在单节点上。

OpenStack核心服务简介

界面管理服务Horizon

  • HORIZON
  • 提供基于Web的控制界面,使云管理员和用户能够管理各种OpenStack资源和服务
  • 首次出现在OpenStack的"Essex"版本中
  • 依赖Keystone认证服务

认证服务Keystone

  • KEYSTONE
  • 提供身份验证,服务发现和分布式多租户授权
  • 支持LDAP、OAuth、OpenID Connect、SAML和SQL
  • 首次出现在OpenStack的"Essex"版本中
  • 为其他OpenStack服务提供认证支持

镜像服务Glance

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

计算服务Nova

  • NOVA
  • 提供大规模、可扩展、按需自助服务的计算资源
  • 支持管理裸机,虚拟机和容器
  • 首次出现在OpenStack的"Austin"版本中
  • 依赖Keystone认证服务、Neutron网络服务和Glance镜像服务

块存储服务Cinder

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

对象存储服务Swift

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

网络服务Neutron

  • NEUTRON
  • 负责管理虚拟网络,专注于为OpenStack提供网络即服务
  • 首次出现在OpenStack的"Folsom"版本中
  • 依赖Keystone认证服务

编排服务Heat

  • HEAT
  • 为云应用程序编排OpenStack基础架构资源
  • 提供OpenStack原生REST API和CloudFormation兼容的查询API
  • 首次出现在OpenStack的"Havana"版本中
  • 依赖Keystone认证服务

计量服务Ceilometer

  • CEILOMETER
  • Ceilometer项目是一项数据收集服务,提供跨当前OpenStack核心组件规范化和转换数据的能力
  • Ceilometer的数据可为所有OpenStack核心组件提供客户计费、资源跟踪和警报功能
  • 首次出现在OpenStack的"Havana"版本中

OpenStack各主要项目间交互示例

提问:创建一个VM需要些什么资源?

  • 计算
  • 存储
  • 网络
  • 镜像

!tip

在OpenStack中创建虚拟机实例,资源需求和物理PC类似。

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

资源跟踪和警报功能

  • 首次出现在OpenStack的"Havana"版本中
相关推荐
兰亭妙微UI设计公司6 小时前
实战总结|兰亭妙微:移动端交互设计十大核心原则
交互
sarasuki6 小时前
别只会给 LLM 包一层 while 循环:一个 Agent 的 7 个设计取舍
人工智能·架构
代码调试师8 小时前
【毕设分享】springboot攀枝花生鲜电商平台58990
java·vue.js·spring boot·后端·架构·eclipse·课程设计
Dawson Zhu8 小时前
GraphRAG 原理、适用场景与工程落地:从关系建模视角做一次客观拆解
人工智能·语言模型·架构·aigc·agi
ZYJCSZKJ8 小时前
生成式引擎优化中的引用吸收机制:基于证据容器的内容架构研究
架构
白远山8 小时前
家政服务派单平台搭建实战指南:从需求分析到系统设计全流程解析
java·开发语言·架构·uni-app·需求分析
海宇数据8 小时前
零信任架构实战:基于海宇单人婚姻状态查询构建自动化KYC审核网关
运维·人工智能·架构·自动化
闲云自留地9 小时前
OpenStack 镜像管家 Glance:架构、镜像格式、状态机与镜像制作全讲解
架构·openstack
sibylyue9 小时前
rtvs架构
架构