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,也可以是存储服务器的本地硬盘,但是它必须依赖一个存储设备的支持,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
    在上面不做虚拟化,而是直接用物理服务器来实现云,直接给用户、租户提供的就是物理服务器,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上去运行的一个组件


时间: 2024-10-26 01:35:32

OpenStack入门 之 初步认识的相关文章

一、OpenStack入门 之 初步认识

OpenStack入门 之 初步认识 写在前面 从 OpenStack 基础知识开始学起,剖析 OpenStack 架构,分析 OpenStack 的各个组件的功能.原理和使用方法,通过实战演练来掌握 OpenStack 的部署和操作.为今后学习 OpenStack 的高级课程以及基于 OpenStack 构建企业级云计算系统打下基础. 在接下来的几天里,我将会学到以下主要内容: OpenStack 基础知识 OpenStack 各组件间的关系社交网络挖掘算法与实践 OpenStack 各组件解

OpenStack入门之初步认识

一.OpenStack 入门 之 基础知识 二.OpenStack 入门 之 基本组件 三.OpenStack 入门 之 各组件解析(基础) 四.OpenStack 入门 之 各组件解析(进阶) 五.OpenStack 入门 之 实际操作 六.OpenStack 入门 之 扩展话题 七.OpenStack 入门 之 若干讨论 写在前面 从 OpenStack 基础知识开始学起,剖析 OpenStack 架构,分析 OpenStack 的各个组件的功能.原理和使用方法,通过实战演练来掌握 Open

OpenStack入门到实战视频教程全集下载(罗勇老师经典教程系列)

全网最经典的openstack 视频教程,现在免费了! 罗老师讲得实在是太好了,目前绝对是全网最好的openstack 入门视频,而且讲得特别细,非常适合初学者学习,收集了好久终于齐了,现在贡献给大家.<openstack实战演练与开发入门>http://pan.baidu.com/s/1mgN3oX6 罗老师,很善于总结与分享,个人博客干货也不少.http://yongluo2013.github.io/ 课程介绍 2.OpenStack概论3.实例:OpenStack自动安装(Fuel)4

二、OpenStack入门 之 架构分析

OpenStack入门 之 架构分析 写在前面 学习目标: 了解 OpenStack 各组件的逻辑关系: 了解 OpenStack 的各组件的通信和部署关系: 了解 OpenStack 的工作流程: 接下来我会掌握: OpenStack 组件间的逻辑关系: OpenStack 的API: OpenStack 组件间的通信关系: OpenStack 中几种不同的存储: OpenStack 工作流程: OpenStack 的部署架构: OpenStack 各组件之间的关系有:逻辑关系,通信关系,部署

(转)OpenStack入门

第一部分 OpenStack及其构成简介 一.云计算 云计算是一种计算模型,它将诸如运算能力.存储.网络和软件等资源抽象成为服务,以便让用户通过互联网远程享用,付费的形式也如同传统公共服务设施一样.因需而定.提供方便.动态改变和无限的虚拟化扩展能力是云计算的几个重要特征. 不同的“云”对应着不同的基础设施.下面是三种广义的“云”: l 基础设施即服务(IaaS) l 平台即服务(PaaS) l 软件即服务(SaaS) 译者注:Open为开放之意,Stack则是堆砌,OpenStack合起来如其名

三、OpenStack入门 之 各组件解析

OpenStack入门 之 各组件解析 写在前面 学习目标: 掌握 OpenStack 的各组件的架构和功能 本次笔记的内容有: Nova 组件解析 Swift 组件解析 Cinder 组件解析 Neutron 组件解析 Horizon 组件解析 Glance 组件解析 Keystone 组件解析 是常用的 7 个组件: 负责虚拟机创建.管理和销毁.提供计算资源服务的 Nova: 提供对象存储服务的分布式存储 Swift: 提供块存储服务的 Cinder: 提供虚拟机镜像管理和存储服务的 Gla

四、OpenStack入门 之 各组件解析(进阶)

OpenStack入门 之 各组件解析(进阶) 学习目标: 掌握更多组件的架构和功能 本次笔记的内容有: Ceilmeter 组件解析 Heat 组件解析 Trove 组件解析 Sahara 组件解析 Ironic 组件解析 1. Ceilometer组件解析 又称为 OpenStack Telemetry(远程测量收集数据),是 OpenStack 里面做 metering 的项目.Ceilometer 的主要目的是 为计费提供数据支持. OpenStack 本身不提供计费的功能,Ceilom

六、OpenStack入门 之 扩展话题

OpenStack入门 之 扩展话题 写在前面 学习目标: 了解 OpenStack 的自动化部署 了解 Hadoop 云化时存在的问题 了解 Ceph 的简介及 Ceph 在 OpenStack 中的应用 了解 OpenStack 与 Docker 本次笔记的内容有: OpenStack 自动化部署 Hadoop 云化时存在的问题 基于 OpenStack 实现 Hadoop 云化 Ceph 简介 Ceph 在 OpenStack 中的应用 OpenStack 与 Docker 1. Open

七、OpenStack入门 之 若干讨论

几个讨论题 仅供参考,如有雷同,纯属呵(qiao)呵(he) 1. 讨论:如何回馈 OpenStack 社区 张三: 积极关注并回馈社区,贡献代码,争取成为 committer: 积极将研发使用中遇到的问题及代码 ,回馈到社区: 将 issue.idea.丰富的 feature 提交到 bluePrint,提交到社区: 利用自己的一切资源致力于扩大中国 IT 力量在国际的影响力!(评:看到这句好欣慰!我想如果有更多这样的同学在,中国的 IT 前途很有希望): 李四: 关注各种社区并加入到符合自己