OpenStack是一个云平台管理的项目,它不是一个软件,它是由几个主要的组件组合起来,为公有云、私有云和混合云的建设与管理提供软件的开源项目。现在已经有来自100多个国家的数万名个人和200多家企业参与到OpenStack的开发,如 NASA、华为、谷歌、惠普、Intel、IBM、微软等。这些机构与个人将 OpenStack作为基础设施即服务资源的通用前端。Openstack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。OpenStack系统或其演变版本目前被广泛应用在各行各业,包括自建私有云、公共云、租赁私有云及混合云,用户包括思科、英特尔、IBM、华为、希捷等,OpenStack 支持 KVM、Xen、Lvc、Docker等虚拟机软件或容器。

OpenStack的发展历史

OpenStack是由美国国家航空航天局(NASA)和 Rackspace合作研发,Apache许可的开源项目。项目自2010年成立,发布了该项目的第一个版本Austin,该版本是当时第一个开源的云计算平台项目。此后,OpenStack基本每半年发行一个新版本,截至目前最新版本是第二十四版本Xena,不同于其他软件的版本号采用数字编码,OpenStack 采用一个单词来描述不同的版本,其中单词首字母指明版本的新旧。比如目前的版本Xena就比之前的 Wallaby要新,同时“X”在26个字母中排行第二十四,所以称第二十四版本。各个版本的发行时间表参考网站 https://releases.openstack.org/。

OpenStack能做什么

OpenStack的主要目标是管理数据中心的资源,简化资源分配。它管理三部分资源,分别是:

  • 计算资源:OpenStack可以规划并管理大量虚拟机,从而允许企业或服务提供商按需提供计算资源;开发者可以通过API访问计算资源从而创建云应用,管理员与用户则可以通过web访问这些资源;
  • 存储资源:OpenStack可以为云服务或云应用提供所需的对象及块存储资源。因为对性能及价格有需求,很多组织已经不能满足于传统的企业级存储技术,因此OpenStack可以根据用户需要提供可配置的对象存储或块存储功能;
  • 网络资源:如今的数据中心存在大量的配置工作,如服务器、网络设备、存储设备、安全设备均需要配置,而它们还将被划分成更多的虚拟设备或虚拟网络;这会导致 IP 地址的数量、路由配置、安全规则将爆炸式增长;传统的网络管理技术无法真正的可高扩展、高自动化地管理下一代网络;因而OpenStack 提供了插件式、可扩展、API 驱动型的网络及IP管理功能;

OpenStack的典型架构和功能如下图所示:


OpenStack的典型架构和功能映射

表示层:负责与用户交互,主要包含一些图形化界面的web门户网站(用于提供给非开发人员进行界面操作),同时该部分还提供了供开发人员进行二次开发的API接口。该部分还包括一些更高级的特性,例如:负载均衡、控制台代理安全和命名服务。

逻辑层:提供云服务的智能控制功能,如:orchestration(负责任务的工作流管理)、scheduling(任务到资源的调度管理)、policy(配额等服务)、image registry(镜像实例的元数据管理)和logging(事件计费管理)。

资源层:包含计算、网络和存储等物理资源。

OpenStack的核心项目

OpenStack覆盖了网络、虚拟化、操作系统、服务器等各个方面。根据成熟及重要程度的不同,被分解成核心项目、孵化项目,支持项目和相关项目。每个项目都有自己的委员会和项目技术主管,而且每个项目都不是一成不变的,如孵化项目可以根据发展的成熟度和重要性,转变为核心项目。

OpenStack项目间的逻辑关系如下图所示:


OpenStack项目间的逻辑关系

以下列举OpenStack的6个最重要的核心项目。

Keystone:Keystone是OpenStack的认证服务,Keystone为所有的OpenStack组件提供认证和访问策略服务,它依赖自身REST系统进行工作,主要对Swift、Glance、Nova等进行认证与授权,它对动作消息中的来源者进行合法性鉴定。 Keystone采用两种授权方式,一种基于用户名/密码,另一种基于令牌(Token)。除此之外,Keystone提供以下三种服务:

  • 令牌服务:令牌中含有授权用户或群组的授权信息,授权给合法用户或群组。
  • 目录服务:目录中含有合法用户或群组的可用服务列表。
  • 策略服务:利用Keystone具体指定用户或群组的某些访问权限。

Nova:Nova是一套控制器,用于为单个用户或使用群组管理虚拟机实例的整个生命周期,根据用户需求来提供虚拟服务,Nova负责管理整个云的计算资源、网络资源、授权及测度。虽然Nova本身并不提供任何虚拟能力,但是它将使用libvirt API与虚拟机的宿主机进行交互。Nova通过Web服务API来对外提供处理接口。

Glance:Glance负责OpenStack的镜像服务,Glance是一套虚拟机镜像发现、注册、检索系统,它提供虚拟机镜像的存储,查询和检索功能,为nova进行服务,依赖于存储服务和数据库服务。

Swift:Swift为OpenStack提供了一种分布式、持续虚拟对象存储。Swift具有跨节点的存储能力。Swift组件有冗余和失效备援管理功能,也能够处理归档和媒体流,特别是对大数据和大容量的测度非常高效。

Cinder:Cinder是OpenStack的块存储服务组件,它管理所有块存储设备,为VM服务。

Neutorn:Neutorn为OpenStack提供虚拟的网络功能,为每个不同的租户建立独立的网络环境。

什么是OpenStack?的更多相关文章

  1. 视频 - 在 VirtualBox 中部署 OpenStack

    大家新年好,CloudMan 今天给大家带来一件新年礼物. 一直以来大家都反馈 OpenStack 学习有两大障碍:1. 实验环境难搭2. 体系复杂,难道大今天我就先帮大家解决环境问题.前两天我抽空在 ...

  2. 启用 Open vSwitch - 每天5分钟玩转 OpenStack(127)

    Linux Bridge 和 Open vSwitch 是目前 OpenStack 中使用最广泛的两种虚机交换机技术. 前面各章节我们已经学习了如何用 Linux Bridge 作为 ML2 mech ...

  3. Openstack Periodic Task

    Openstack Periodic Task 周期性任务在各个模块的manager.py(computer,scheduler,cell,network)中添加. 添加方法:在模块manager类实 ...

  4. 超千个节点OpenStack私有云案例(1):CERN 5000+ 计算节点私有云

    CERN:欧洲核子研究组织 本文根据以下几篇文章整理而来: https://www.openstack.org/summit/tokyo-2015/videos/presentation/unveil ...

  5. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建

    公司在IDC机房有两台很高配置的服务器,计划在上面部署openstack云平台虚拟化环境,用于承载后期开发测试和其他的一些对内业务.以下对openstack的部署过程及其使用做一详细介绍,仅仅依据本人 ...

  6. 添加 Pool Member - 每天5分钟玩转 OpenStack(123)

    我们已经有了 Load Balance Pool "web servers"和 VIP,接下来需要往 Pool 里添加 member 并学习如何使用 cloud image. 先准 ...

  7. 理解 Neutorn LBaaS - 每天5分钟玩转 OpenStack(120)

    Load Balance as a Service(LBaaS)是 Neutron 提供的一项高级网络服务.LBaaS 允许租户在自己的网络中创建和管理 load balancer. load bal ...

  8. 每天5分钟 玩转OpenStack 目录列表

    最近在学习 OpenStack 的相关知识,一直苦于 OpenStack 的体系庞大以及复杂程度,学习没有进度,停滞不前.偶然机会在 51CTO 上发现了一个热点的专题关于 OpenStack 的,题 ...

  9. openstack七大模块概述

    前言 OpenStack主要由七部分组成,分别是Identify, Image, Network, Compute, Block Storage, Object Storage, Dashboard, ...

  10. RedHat 和 Mirantis OpenStack 产品的版本和功能汇总和对比(持续更新)

    Mirantis 和 Red Hat 作为 OpenStack 商业化产品领域的两大领军企业,在行业内有重要的地位.因此,研究其产品版本发布周期和所支持的功能,对制定 OpenStack 产品的版本和 ...

随机推荐

  1. python之异步任务框架Celery

    官网参考: Celery 官网:http://www.celeryproject.org/ Celery 官方文档英文版:http://docs.celeryproject.org/en/latest ...

  2. 关于ConditionalOnClass注解

    1. pom文件<optional>标签 在Java开发中,大家肯定在pom文件中添加过依赖(现在没有,以后也肯定会有的),不知道大家对<optional>标签的了解有多少,或 ...

  3. AO SDK安装问题

    ao sdk for .net安装时,需要进行验证.net框架,没装vs的时候会提示 arcobjects SDK for the Microsoft.NT Framework requires a ...

  4. docker安装配置redis

    ​ 安装redis docker pull redis 配置数据路径 mkdir -p /home/redis/data docker启动 docker run -d -v /home/redis/d ...

  5. django生命周期流程图与django路由层

    目录 一.django请求生命周期流程图 二.django路由层 1.路由匹配 2.转换器 3.正则匹配 不同版本的区别 正则匹配斜杠导致的区别 4.正则匹配的无名有名分组 分组匹配 无名分组 有名分 ...

  6. CentOS中升级openssl与卸载重装以及提示:error while loading shared libraries: libssl.so.1.1: cannot open shared obje

    场景 在CentOS6中安装sqlserver时提示: Requires:openssl >=1:1.0.1g 所以需要对openssl进行升级 可以通过 openssl version -a ...

  7. OpenCV4.1.0编译时提示“CV_BGR2GRAY”: 未声明的标识符

    OpenCV版本为4.1.0 使用CV_BGR2GRAY时报错: "CV_BGR2GRAY": 未声明的标识符 解决方法一:添加头文件:#include <opencv2/i ...

  8. cmake错误:CMake Error: CMake can not determine linker language for target

    解决方案:因为你的library只有头文件,没有cpp文件 在add_library中增加cpp文件 同时建立一个空的cpp文件即可. 处理后的源代码结构和CMakeLists.txt内容如下所示: ...

  9. C#中串口类SerialPort类的详细用法

    原文链:serialport控件的详细用法

  10. clip-retrieval检索本地数据集

    clip-retrieval检索本地数据集 from clip_retrieval.clip_client import ClipClient, Modality from tqdm import t ...