OpenStack入门 之 初步认识

写在前面

从 OpenStack 基础知识開始学起,剖析 OpenStack 架构。分析 OpenStack 的各个组件的功能、原理和用法,通过实战演练来掌握 OpenStack 的部署和操作。为今后学习 OpenStack 的高级课程以及基于 OpenStack 构建企业级云计算系统打下基础。

在接下来的几天里。我将会学到以下主要内容:

  • OpenStack 基础知识
  • OpenStack 各组件间的关系社交网络挖掘算法与实践
  • OpenStack 各组件解析(基础)
  • OpenStack 各组件解析(进阶)
  • OpenStack 实际操作
  • OpenStack 扩展话题

接下来我会掌握:

  • 了解 OpenStack 的历史;
  • 了解 OpenStack 的生态圈。
  • 了解 OpenStack 管理的资源;
  • 掌握 OpenStack 的基本组件。

1. 对OpenStack基本了解

OpenStack 是最火的开源软件之中的一个,活跃度呈指数级别上升;

是一组开源项目,诞生之初是由两个项目组成。眼下十几个项目;

是一个云操作系统,OpenStack is a cloud operating system that …

OpenStack具有哪些特点呢?

OpenStack 管理的资源不是单机的而是一个分布的系统。把分布的计算、存储和网络、设备、资源组织起来。形成一个完整的云计算系统。OpenStack 也提供一个UI,这里包含一个图形化的UI: Horizon,也提供命令行的界面,还提供了一套API支持用户开发自己的软件…

OpenStack是一套框架——API。有以下这两个特点:

  1. 它是一个中间层,能够创建管理和销毁虚拟机。可是要完毕这些操作须要依赖于第三方的 Hypervisor,通过这个 Hypervisor 去完毕虚拟化的工作,OpenStack 并不能自己去提供一个虚拟化的执行环境,OpenStack 有个组件叫 Cinder(用来提供块存储服务的),可是 OpenStack 自己并不能进行数据的存储和读写,它须要依赖一个实际的块存储设备的支持,这个设备能够是一个分布式的存储系统,比方说 Ceph,也能够是一个存储设备,比方说 EMC 的 SAN。也能够是存储server的本地硬盘。可是它必须依赖一个存储设备的支持。OpenStack 本身并不具备这个功能。这就是第一方面。OpenStack 是一个中间层。

  2. 框架有一个非常重要的特点。它能提供一批 API 支持应用开发。这也是我们业内对框架的一个定义,OpenStack 当然也有这个特点,云计算的愿景就是让用户能够像用电一样去使用计算。OpenStack 的设计也是朝着这个愿景去做设计的。可是实际上我们平时是不能直接用电的。我们须要用的是电冰箱、电脑、电视等等这些电器。同理,对于云计算来说。提供 API 去支持开发应用这个事情就合情合理的非常的重要了,具备完备的 API 是 OpenStack 的突出长处。

OpenStack 使用 Python 实现的软件。( 分布式系统的逻辑非常复杂。所以用更高级的语言去做,能够把精力很多其它的放在逻辑上。而不是说纠结与底层的细节,由于高级语言的底层机制已经优化的非常好了,C/C++写出来的东西真不一定就高;其实在分布式系统这个领域。有非常多非常好的例证,比方说 OpenStack 用 Python 写的,Hadoop 使用 Java 写的,UC Berkeley 的 Spark 使用 Scala 语言写的。Twitter Storm 是用Clojure 语言开发的,这些都是非常著名的分布式系统,都是用的更高层的语言而不是C )

OpenStack不是什么?

  1. 它不是虚拟化软件(必须知道这点)。OpenStack 尽管管理虚拟机,但不具备虚拟化的功能,它给上层提供一个虚拟化的执行环境,必须得依赖一个第三方的虚拟化软件来实现,比方默认支持的 Linux 内核虚拟机。装完Linux 之后就自己主动带了,集成到 Linux 内核里面了,KVM。另外它还支持 Xen。还支持微软的 Hyper-V。支持 VMware 的 Vshpere。还支持像 Linux Container 和 Docker 这样轻量级的虚拟化技术。总之。OpenStack 本身不提供虚拟化。依赖第三方软件

  2. 须要了解的第二层含义:这个云化和虚拟化实际上是不一样的,云 != 虚拟化,云化的目的是为了实现效用计算,弹性计算,动态资源调度。多租户等这种一些特性;而虚拟化仅仅是实现云计算的这些特性中的一个技术手段而已,而且它没必要的。比方说 IBM 的 Softlayer 是 IBM 如今主推的它的这个云服务,它中间有一个非常大的特点就是,它支持 Bare Metal Server,直译过来就是 “金属裸机”,也就是 Softlayer 在上面不做虚拟化,而是直接用物理server来实现云。直接给用户、租户提供的就是物理server。Softlayer 也能够在上面来实现多租户 、弹性计算等等特性。总之。Softlayer 没有虚拟化,可是 Softlayer 也做了云。第二个样例,OpenStack 有一个孵化的项目叫作 Ironic,为了去通过管理 “金属裸机”来实现云而提出的这样一个项目。

2. OpenStack生态圈

一个成功的开源平台,有三个要素组成,技术+生态+用户;

OpenStack 诞生于2010年;华为是 OpenStack 的黄金会员。

了解一下:

  • 社区的组成
  • 基金会的管理机构
  • 项目的孵化

2-1. 社区组成

  • 个人成员:2014.4/ E版本号/2600+ 。 2014.4/ I版本号/15000+
  • 企业成员:白金成员(8个,不再添加),黄金成员(若干),企业赞助商(OpenStack 基金会基本的资金来源)

一家初创企业 UnitedStack 也是基于 OpenStack 做云服务的。在国内也是云计算这块有影响力的

2-2. 管理机构

  • 技术委员会(Technical Committee,13个人组成。讨论 OpenStack 的技术方向,另一些跨项目的协作问题)。
  • 董事会(讨论 OpenStack 的战略布局,基金会的运营,白金会员的任命,黄金会员的选举,个人会员的选举),
  • 用户委员会(User Committee,中国在西安有个正式的用户组);

2-3. 项目产生与发展

每一个项目经过孵化阶段以后才干够集成公布,OpenStack 为项目的孵化提供了一整套的基础设施和资源。包含代码和文档的管理。还有配置管理。版本号控制等等工具;这些基础设施能够支持全球范围内的大规模的协作开发,这些基础设施和工具本身也是代表了IT领域先进的生产工具。

每半年公布一个版本号。会由技术委员会和版本号公布经理以及项目的 TPL 来共同决定每一个版本号中间要公布哪些 Feature。

3. OpenStack资源管理

OpenStack 作为一个操作系统,管理资源是它的首要任务;OpenStack 管理资源主要有三个方面:计算存储网络

OpenStack 对资源进行管理。而且以服务的形式提供给上层应用或者用户去使用。这些资源的管理是通过OpenStack 中的各个项目来实现的。当中计算资源管理相关的项目是 Nova(又称为 OpenStack Compute)。存储相关的主要有块存储服务 Cinder、对象存储服务 Swift、镜像存储服务 Glance 这三种。

与网络相关的主要是一个和软件定义网络相关的项目叫作 Neutron;另外,Nova 中间有一个管理网络的模块叫作 Nova Network。作为一个比較稳定的遗留组件仍在 OpenStack 里面和 Neutron 并存,我们在小规模部署里面常常为了追求这种稳定。而且降低工作量会去使用 Nova Network 这种一个组件来对网络资源进行管理。

OpenStack 提供的这些服务和公有云上的服务往往有一种相应关系。OpenStack 一直在以追求像亚马逊学习为它的目标,这里以亚马逊的公有云 AWS 为例,看一下 OpenStack 的服务和亚马逊的服务之间的相应的关系:

说明:Keystone 是后台的一个模块一个组件,在 AWS 的服务是看不见的。隐藏在叫作计费系统的后端(DOS系统的后端),AWS 在中国能够免费使用,能够体验一下。

4. OpenStack基本组件

OpenStack 核心的项目:

Nova 、 Cinder、 Neutron、 Swift、 Keystone、 Glance、 Horizon

4-1. Nova

又被称为 OpenStack Compute,主要作用是控制虚拟机的创建。以及改变它的容量和配置。还能够做虚拟机的销毁,虚拟机的整个生命周期都是由 Nova 来控制的。

Nova的部署执行一般有两种情况:一类是 Nova 作为 Controller 节点去执行,Controller 节点是用来控制其它的一些计算节点的;另外一类节点就是 Compute 节点。是计算节点,上面是执行实际的虚拟机的;

那么有什么差别呢?

  • 在 Compute 节点上部署的 Nova。它上面核心执行的一个东西叫作 Nova Compute,主要是为了去对虚拟机进行控制,它去和 Hypevisor 进行交互。对虚拟机进行控制;
  • 在 Controller 上执行的 Nova 就相对复杂一些。它有 Scheduler、Conductor、Nova Cell;
  • Scheduler 在用户发起请求的时候决定这个虚拟机应该在哪个机器上启动。应该在哪个计算节点上启动。
  • Conductor 是对全部的计算节点进行一个统一的管理;
  • Nova Cell 的作用是级联

    控制虚拟机的生命周期

    控制节点:Scheduler(决定虚拟机的启动位置)、Conductor(对全部的计算节点进行统一管理)、Nova Cell(级联)

    计算节点:对虚拟机进行控制

4-2. Cinder

Cinder 组件基本的用途是提供块存储服务,最核心的两个部分是Scheduler 和 Cinder Volume。有读写存储服务请求的时候。Schduler决定通过哪个Cinder Volume进行读取操作,Cinder Volume是实际控制存储的设备

4-3. Neutron

有一个非常火的一个概念叫作SDN,软件定义网络。在OpenStack里边的一个实现,Neutron 有一个非常大的特点就是提供Plugin模块,这个是用户能够自己去写的。

4-4. Swift

Swift 是一个比較有趣的组件,从OpenStack的诞生之初就已经有Swift的这个项目了,可是它发展到如今还是比較独立的。和其它组件的交互关系比較少,一个相对独立的发展套路,美国有一个公司叫作SwiftStack专门用Swift来做的一个初创公司,Swift是提供对象存储服务的 。提供一个相似于像亚马逊S3或者像国内的七牛这种一个存储服务。

其它的组件假设要用到对象存储的时候,就去Swift里边去写数据,读数据;

Swift能够利用Keystone来做认证

4-5. Glance

用Swift最多的一个组件,主要是用Swift来存虚拟机的镜像、快照等等这样一些东西

4-6. Keystone

主要是为各个组件提供用户的认证、建权等等这种一些服务

4-7. Horizon

图形界面

4-8. Heat

是用来做各个服务的编排的

4-9. Sahara

把Hadoop能够放在OpenStack上去执行的一个组件

4-10. 如图所看到的



上面都仅仅是对组件的简单介绍。兴许博客继续深入剖析。

网络MOOC学习笔记 From 高校帮 《OpenStack 入门 @讲师 李明宇》
By 胡飞
at 2016/3/30 12:48:23

一、OpenStack入门 之 初步认识的更多相关文章

  1. OpenStack入门之初步认识

    一.OpenStack 入门 之 基础知识 二.OpenStack 入门 之 基本组件 三.OpenStack 入门 之 各组件解析(基础) 四.OpenStack 入门 之 各组件解析(进阶) 五. ...

  2. OpenStack入门科普

    看完OpenStack入门科普,看这一篇就够啦!这篇文章,做些记录. 一.OpenStack简介:OpenStack就是为了云计算服务的.简单来说,它是一个操作系统,一套软件,一套IaaS软件. 1. ...

  3. 前端学习 node 快速入门 系列 —— 初步认识 node

    其他章节请看: 前端学习 node 快速入门 系列 初步认识 node node 是什么 node(或者称node.js)是 javaScript(以下简称js) 运行时的一个环境.不是一门语言. 以 ...

  4. vue 快速入门 系列 —— 初步认识 vue

    其他章节请看: vue 快速入门 系列 初步认识 vue vue 是什么 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架. 所谓渐进式,就是你可以一步一步.有阶段 ...

  5. openstack 入门1

    介绍 Rackspace & NASA软件开源项目的组合安装配置复杂基础设施资源的系统管理平台 (网络,计算,存储)个人打井 vs 自来水厂 组件&原理 Horizon -- UI模块 ...

  6. JAVA入门[5]-初步搭建SpringMVC站点

    一.新建Module 1.新建Module,类型如下图所示: 2.为项目添加Spring框架支持,操作步骤如下: 首先在Module右键->Add Framework Support: 2.Sp ...

  7. 部署OpenStack问题汇总(六)-- OpenStack入门需要知道的概念

    本博客已经添加"打赏"功能,"打赏"位置位于右边栏红色框中,感谢您赞助的咖啡. 一.网络问题-network 更多网络原理机制可以参考<OpenStack ...

  8. OpenStack入门之【OpenStack-havana】之单网卡-All In One 安装(基于CentOS6.4)

    这篇文章是自己的一篇老文,分享下,请君慢用.... =========================================== [特别申明]:经过了一段时间的不断学习加不断的测试得出本文, ...

  9. OpenStack入门篇(二十二)之实现阿里云VPC的SDN网络

    1.修改/etc/neutron/neutron.conf配置 [root@linux-node1 ~]# vim /etc/neutron/neutron.conf [defalut] ... co ...

随机推荐

  1. ③bootstrap文本使用基础案例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. 2017阿里云双11-云服务器ECS优惠活动最强解读和购买指南

    本站之前介绍了<爆款云服务器,限时2折起>,这其实是阿里云双11之前的预热活动:四款低配的机型,二折给用户(每个用户限购一台),非常的实惠,有很多阅读了本站文章的用户都一次性购买了三年的. ...

  3. Java面试题技术类

    目录 1.面向对象编程的三大特性是什么? 2.String 和StringBuffer的区别 3.说出ArrayList,Vector, LinkedList的存储性能和特性 4.Collection ...

  4. JAVA的免费天气api接口调用示例

    step1:选择本文所示例的接口"免费天气api" url:https://www.juhe.cn/docs/api/id/39/aid/87 step2:每个接口都需要传入一个参 ...

  5. 运维必须掌握的150个Linux命令

    线上查询及帮助命令(1个)man 目录操作命令(6个)ls tree pwd mkdir rmdir cd 文件操作命令(7个)touch cp mv rm ln find rename 文件查看及处 ...

  6. Linux系列教程(二十三)——Linux的服务管理

    前面我们讲解Linux软件包管理之源码包.脚本安装包时,我们介绍了rpm包和源码包由于安装位置的不同,会对服务的启动造成影响,具体是什么,本篇博客我们来详细介绍. 1.Linux服务管理总览 我们可以 ...

  7. 《java.util.concurrent 包源码阅读》02 关于java.util.concurrent.atomic包

    Aomic数据类型有四种类型:AomicBoolean, AomicInteger, AomicLong, 和AomicReferrence(针对Object的)以及它们的数组类型, 还有一个特殊的A ...

  8. 一位有着工匠精神的博主写的关于IEnumerable接口的详细解析

    在此,推荐一位有着工匠精神的博主写的一篇关于IEnumerable接口的深入解析的文章:http://www.cnblogs.com/zhaopei/p/5769782.html#autoid-0-0 ...

  9. redis在Linux上的安装和简单使用

    一.官方文档介绍方式 这里演示的版本是Redis4.0.6,Linux系统是CentOS6.7,Jdk1.7,Jedis2.8.1 下载,解压,编译: $ wget http://download.r ...

  10. linux 安装 cenos7 和 jdk

    安装一个虚拟机安装cenos7 版本的 安装完虚拟机后必备工具 第一步. 配置网路 设置桥接网路设置静态网络参考 下面博文 http://www.cnblogs.com/Jerry1104/p/758 ...