标签:
从 OpenStack 基础知识开始学起,剖析 OpenStack 架构,分析 OpenStack 的各个组件的功能、原理和使用方法,通过实战演练来掌握 OpenStack 的部署和操作。为今后学习 OpenStack 的高级课程以及基于 OpenStack 构建企业级云计算系统打下基础。
在接下来的几天里,我将会学到以下主要内容:
本次笔记的内容有:
OpenStack 是最火的开源软件之一,活跃度呈指数级别上升; 是 一组开源项目,诞生之初是由两个项目组成,目前十几个项目; 是一个 云操作系统,OpenStack is a cloud operating system that …
OpenStack 管理的资源不是单机的而是一个分布的系统,把分布的计算、存储、网络、设备、资源组织起来,形成一个完整的云计算系统;OpenStack 也提供一个 UI,这里包括一个图形化的 UI:Horizon,也提供命令行的界面,还提供了一套 API 支持用户开发自己的软件…
OpenStack 是用 Python 实现的软件。( 分布式系统的逻辑非常复杂,所以用更高级的语言去做,可以把精力更多的放在逻辑上,而不是说纠结与底层的细节,因为高级语言的底层机制已经优化的非常好了,C/C++ 写出来的东西性能不一定就真高;事实上在分布式系统这个领域,有很多很好的例证,比方说 OpenStack 用 Python 写的,Hadoop 使用 Java 写的,UC Berkeley 的 Spark 使用 Scala 语言写的,Twitter Storm 是用 Clojure 语言开发的,这些都是很著名的分布式系统,都是用的更高层的语言而不是 C )
[ OpenStack 具有哪些特点呢?]
OpenStack 是一套框架 —— API,有下面这两个特点:
[ OpenStack 不是什么?]
一个成功的开源平台,有三个要素组成,技术 + 生态 + 用户; OpenStack 诞生于2010年;华为是 OpenStack 的黄金会员;
了解一下:
一家初创企业 UnitedStack 也是基于 OpenStack 做云服务的,在国内也是云计算这块有影响力的
每个项目经过孵化阶段以后才能够集成发布,OpenStack 为项目的孵化提供了一整套的基础设施和资源,包括代码和文档的管理,还有配置管理,版本控制等等工具;这些基础设施能够支持全球范围内的大规模的协作开发,这些基础设施和工具本身也是代表了 IT 领域先进的生产工具;
每半年发布一个版本,会由技术委员会和版本发布经理以及项目的 TPL 来共同决定每个版本中间要发布哪些 Feature。
OpenStack 作为一个操作系统,管理资源是它的首要任务;OpenStack 管理资源主要有三个方面:计算、存储 和 网络。
OpenStack 对资源进行管理,并且以服务的形式提供给上层应用或者用户去使用。这些资源的管理是通过 OpenStack 中的各个项目来实现的。其中计算资源管理相关的项目是 Nova(又称为 OpenStack Compute);存储相关的主要有块存储服务 Cinder、对象存储服务 Swift、镜像存储服务 Glance 这三种;
与网络相关的主要是一个和软件定义网络相关的项目叫作 Neutron;另外,Nova 中间有一个管理网络的模块叫作 Nova Network,作为一个比较稳定的遗留组件仍在 OpenStack 里面和 Neutron 并存,我们在小规模部署里面经常为了追求这种稳定,并且减少工作量会去使用 Nova Network 这样的一个组件来对网络资源进行管理。
OpenStack 提供的这些服务和公有云上的服务往往有一种对应关系,这里以亚马逊的公有云 AWS 为例,看一下 OpenStack 的服务和亚马逊的服务之间的对应的关系:
说明:Keystone 是后台的一个模块一个组件,在 AWS 的服务是看不见的,隐藏在叫作计费系统的后端(DOS系统的后端),AWS 在中国可以免费使用,可以体验一下。
OpenStack 核心的项目:Nova 、 Cinder、 Neutron、 Swift、 Keystone、 Glance、 Horizon
又被称为 OpenStack Compute,主要作用是控制虚拟机的创建,以及改变它的容量和配置,还可以做虚拟机的销毁,虚拟机的整个生命周期都是由 Nova 来控制的;
Nova 的部署运行一般有两种情况:一类是 Nova 作为 Controller 节点去运行,Controller 节点是用来控制其它的一些计算节点的;另外一类节点就是 Compute 节点,是计算节点,上面是运行实际的虚拟机的;
[ 那么有什么区别呢?]
Cinder 组件主要的用途是提供块存储服务,最核心的两个部分是 Scheduler 和 Cinder Volume。有读写存储服务请求的时候,Scheduler 决定通过哪个 Cinder Volume 进行读取操作,Cinder Volume 是实际控制存储的设备。
有一个非常火的概念叫作 SDN,软件定义网络,Neutron 是在 OpenStack 里边的一个实现, 有一个很大的特点就是提供 Plugin 模块,这个是用户可以自己去写的。
Swift 是一个比较有趣的组件,从 OpenStack 的诞生之初就已经有 Swift 的这个项目了,但是它发展到现在还是比较独立的,和其它组件的交互关系比较少,是一个相对独立的发展套路,美国有一个公司叫作 SwiftStack,是专门用 Swift 来做的一个公司,Swift 是提供对象存储服务的 ,提供一个类似于像亚马逊 S3 或者像国内的七牛这样的一个存储服务。 其他的组件如果要用到对象存储的时候,就去 Swift 里边去写数据,读数据; Swift 可以利用 Keystone 来做认证。
需要使用 Swift 最多的一个组件,主要是用 Swift 来存虚拟机的镜像、快照等等这样一些东西。
主要是为各个组件提供用户的认证、建权等等这样的一些服务。
图形界面。
是用来做各个服务的编排的。
把 Hadoop 能够放在 OpenStack 上去运行的一个组件。
上面都只是对组件的简介,后续博客继续深入剖析。
标签:
原文地址:http://www.cnblogs.com/leetieniu2014/p/5414506.html