title : OPENSTACK架构简单介绍

openstack的发展及历史

openstack是什么?

OpenStack是一个美国国家航空航天局和Rackspace合作研发的云端运算‎软件,以Apache许可证授权。而且是一个自由软件和开放源码项目。

通俗点来讲,openstack就是一个用python编写的linux软件,openstack是一个开源云平台

openstack能干嘛?

openstack最基础的功能就是产生云主机(vm虚拟机)。用这些虚拟机能够做你想做的非常多事。比如产生一台windows虚拟机,你能够用它写word文档、上网、qq聊天……它在功能上与物理机差点儿没有区别(桌面云);你也能够用它来作为server使用,在他上面搭建网站什么的(server)

openstack的长处

相似vmware workstation这种软件不也能够产生虚拟机吗,干嘛搞得这么麻烦。

1.vmware workstation要收费,费用并不低;而且相当有局限性

2.openstack免费并开源。想怎么搞就怎么搞,拓展性强。

干嘛要产生虚拟机呢,直接用物理机不好吗?

1.通常一台物理机或者一群物理机仅仅能实现一个功能。而安装openstack后这群物理机就能够做好多事,能够实现多种功能

2.物理机维护成本高。资源可调度性差,发生问题后补救较为困难,openstack则在这 三方面解决的比較好

……

openstack的历史(參考http://www.ibm.com/developerworks/cn/cloud/library/cl-openstack-overview/)

OpenStack 是由 Rackspace Cloud 和 NASA 在 2010 年发起的。集成了 NASA 的 Nebula 平台的代码与 Rackspace 的 Cloud Files 平台。第一个核心模块被称为 Compute and Object Storage(计算和对象存储),但更常见的是它们的项目名称。即 Nova 和 Swift。

OpenStack 使用了 YYYY.N 表示法。基于公布的年份以及当时公布的主版本号来指定其公布。比如。2011 (Bexar) 的第一次公布的版本号号为 2011.1,而下一次公布(Cactus)则被标志为 2011.2。次要版本号进一步扩展了点表示法(比如,2011.3.1)。

开发者常常依据代号来指定发行版本号,发行版是按字母顺序排列的。

Austin 是第一个主发行版,其次是 Bexar、Cactus 、Diablo、Essex、Folsom、Grizzly、Havana、Icehouse、Jonu、Kilo。

这些代号是通过 OpenStack 设计峰会上的民众投票选出的,一般使用峰会地点附近的地理实体名称。具体版本号变更情况请点击这里

opnstack模块

服务 项目名称 说明
Dashboard Horizon 提供了一个基于web的自服务门户,与OpenStack底层服务交互,诸如启动一个实例。分配IP地址以及配置訪问控制。
Compute Nova 在OpenStack环境中计算实例的生命周期管理。按需响应包括生成、调度、回收虚拟机等操作。

Networking Neutron 确保为其它OpenStack服务提供网络连接即服务,比方OpenStack计算。为用户提供API定义网络和使用。基于插件的架构其支持众多的网络提供商和技术。

Object Storage Swift 通过一个 RESTful,基于HTTP的应用程序接口存储和随意检索的非结构化数据对象。它拥有高容错机制,基于数据复制和可扩展架构。

它的实现并像是一个文件server须要挂载文件夹。

在此种方式下,它写入对象和文件到多个硬盘中,以确保数据是在集群内跨server的多份复制。

Block Storage Cinder 为运行实例而提供的持久性块存储。它的可插拔驱动架构的功能有助于创建和管理块存储设备。
Identity Keystone 为其它OpenStack服务提供认证和授权服务,为全部的OpenStack服务提供一个端点文件夹。

Image Glance 存储和检索虚拟机磁盘镜像,OpenStack计算会在实例部署时使用此服务。
Telemetry Ceilometer 为OpenStack云的计费、基准、扩展性以及统计等目的提供监測和计量。
Orchestration Heat 既能够使用本地HOT模板格式,亦可使用AWS CloudFormation模板格式,来编排多个综合的云应用,通过OpenStack本地REST API或者是CloudFormation相兼容的队列API。
Data processing Trove 提供可扩展和稳定的云数据库即服务的功能,可同一时候支持关系性和非关系性数据库引擎。

概念架构

服务架构

启动一个虚拟机实例会包括非常多服务之间的交互。

下图展示了一个普通的OpenStack环境的概念架构。

网络架构(三节点网络架构)

服务布局

各节点之间的通信由网络负责,各组件之间的通信由rabbit消息队列负责

openstack各服务及组件之间的功能

Identity service (Keystone)

Keystone服务运行下面功能:

1.跟踪用户及其权限。

2.提供一个文件夹可用服务的API端点。

keystone 各组件概念:

1.用户:使用OpenStack云服务的用户、系统或者服务,身份服务验证用户提交的请求。用户须要登录。然后可能会分配令牌已訪问资源。多用户能够直接分配给特定的租户。而且表现就像他们包括在该租户内。

2.认证信息:确认用户身份的数据。比方username和password。username和API键。或者由身份服务提供的认证令牌

3.认证:确认用户身份的过程。

OpenStack身份服务通过验证用户提供的认证信息确认请求。当认证信息被验证后,OpenStack认证服务发给用户认证令牌,在兴许的请求中用户将使用该令牌。

4.令牌:文本形式的字母-数字字符串,使用该字符串訪问OpenStack的API和资源。令牌在有限的时间内是有效的,可能在不论什么时间被取消。

5.租户:分组或隔离资源的容器,租户也用于分组或隔离身份对象。基于服务操作者,租户可能映射为客户、账户、组织或项目

6.服务:一个OpenStack服务,比方Compute(nova),对象存储(Swift),镜像服务(glance)。服务提供了一个或多个端点(endpoint),在端点内用户能够訪问资源或者运行操作。

6.API端点:网络可訪问的地址,一般是URL地址,通过该地址能够訪问服务。假设正在使用扩展的模板,一个端点模板会被创建,该模板表示全部可用服务的模板。

7.角色:定义了运行特定操作的用户权限的集合。在身份服务中,发给用户的令牌包括角色的列表。被用户訪问的服务确定怎样解释用户拥有的角色和每一个角色能够訪问的操作和资源。

8.KeyStoneclient:OpenStack身份服务API的命令行接口。比方:运行keystone service-create和keystone endpoint-creat在OpenStack中注冊服务。

keystone服务拓扑

1.

2.这张图有点老,可是基本意思没什么差异

Image service (Glance)

glance功能

它提供了一个REST API,使您能够查询虚拟机镜像元数据和检索实际的镜像。

在简易的对象存储系统,你能够通过镜像服务在不同的地方存储虚拟机镜像。如OpenStack对象存储文件系统。

openstack镜像服务支持在它上面上运行的大量的周期性程序的缓存。通过应答服务可保持集群的可靠性和一致性。其它的定期的进程包括审查、更新和回收。

glance组件

1.glance-api 接收镜像API的调用。比如:镜像的发现,检索和存储

2.glance-registry 存储、处理和恢复镜像的元数据,元数据包括像大小,类型等

安全注意:这是一个glance内部私有服务,仅供glance服务使用,不要给其它用户授权

3.Database 存放镜像元数据。用户是能够依据个人喜好选择数据库的,多数的部署使用MySQL或SQLite。

4.Storage repository for image files 支持多类型的普通文件系统、对象存储、RADOS块设备、HTTP和亚马逊S3.请注意某些仓库仅仅能做仅仅读使用



点这儿镜像服务具体介绍镜像服务讲的比較具体

Compute service (Nova)

compute代号为nova,他依据需求来提供虚拟机。比如虚拟机创建虚拟机热迁移。

先借一张图来说明虚拟机的创建流程



这张图出自http://blog.csdn.net/xuriwuyun/article/details/16845601 在复习面试的时候也是看的这个博客。感谢

Networking service (Neutron)

Dashboard (Horizon)

Block Storage (Cinder)

Object Storage (Swift)

Orchestration (Heat)

Telemetry (Ceilometer)

Database (Trove)

Data processing service (Sahara)

openstack架构简单介绍J版(更新中)的更多相关文章

  1. 自己动手写处理器之第一阶段(3)——MIPS32指令集架构简单介绍

    将陆续上传本人写的新书<自己动手写处理器>(尚未出版).今天是第四篇.我尽量每周四篇 1.4 MIPS32指令集架构简单介绍 本书设计的处理器遵循MIPS32 Release 1架构,所以 ...

  2. Android平台Camera实时滤镜实现方法探讨(十)--代码地址以及简单介绍(20160118更新)

    简单做了个相机和图片编辑模块,时间原因非常多功能还没有做.尚有BUG,见谅,将在以后抽时间改动 代码地址 PS:请点个Star^-^ --------------------------------- ...

  3. spring mvc简单介绍xml版

    spring mvc介绍:其实spring mvc就是基于servlet实现的,只不过他讲请求处理的流程分配的更细致而已. spring mvc核心理念的4个组件: 1.DispatcherServl ...

  4. 二维码Data Matrix简单介绍及在VS2010中的编译

    Data Matrix 二维条码原名Datacode,由美国国际资料公司(International Data Matrix, 简称ID Matrix)于1989年发明.Data-Matrix二维条码 ...

  5. cocos2d-x on wp8架构简单介绍

    1,基于C++的开发架构 支持3大移动平台以及3大桌面平台. 分为图形,声音,物理3大模块,另外还有脚本的导出. 在wp8/win32上的图形是基于d3d的,而在其它平台是基于opengl/openg ...

  6. 用python做oj上的简单题(持续更新中.......)

    本人刚開始接触python,在oj上解一些简单的题,欢迎交流,不喜勿喷. OJ地址链接:acm.sdut.edu.cn http://acm.sdut.edu.cn/sdutoj/showproble ...

  7. memcached简单介绍及在django中的使用

    什么是memcached? Memcached是一个高性能的分布式的内存对象缓存系统,全世界有不少公司采用这个缓存项目来构建大负载的网站,来分担数据库的压力.Memcached是通过在内存里维护一个统 ...

  8. Spring框架教程IDEA版-----更新中

    补充:设计模式中的工厂模式 设计模式党的主要原则:(1)对接口编程,而不是对实现编程 (2)优先使用对象组合而不是继承 在实现接口的方法时: @Override是伪代码,表示重写.(当然不写@Over ...

  9. 简单介绍一下python Queue中常用的方法

    Queue.qsize() 返回队列的大小 Queue.empty() 如果队列为空,返回True,反之False Queue.full() 如果队列满了,返回True,反之FalseQueue.fu ...

随机推荐

  1. Aras增加新用户

    Aras中新增用户,这里特别提醒,用户密码下面的可以登陆必须勾选,如不勾选刚出现不能登陆的情况. 增加用户后,将用户加入至与原同事一样的Identities(例如Sales/All Employees ...

  2. HDU 2256 Problem of Precision (矩阵快速幂)(推算)

    Problem of Precision Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  3. 利用 ildasm 修改被编译后DLL文件

    在开发中遇到这样一个场景,需要修改一个dll文件(.NET程序集)中某些地方的类型名称,但没有源代码,只能修改IL代码. 操作步骤如下: 1. 运行ildasm ildasm是由微软提供的.NET程序 ...

  4. 【费用流】bzoj3280 小R的烦恼

    类似bzoj1221 http://www.cnblogs.com/autsky-jadek/p/4174087.html 只不过大学有多个,所以我们另开一个节点汇总所有'S->大学'的边,然后 ...

  5. Eclipse / Pycharm | 使用过程中的一些问题笔记

    最近有比较多的用到这两款工具,其中也遇到一些问题,知道了一些快捷键 快捷键什么的这里就不讲了,去网上搜搜,经常使用下,自然就熟悉了 主要记录一下我遇到的几个问题 文章目录 Pycharm出现的部分快捷 ...

  6. CHBTC

    蛙人高频交易拆单策略-带手续费拆单策略及原理说明 - 王宇 warensoft - 博客园 CHBTC

  7. How can I create a dump of SQL Server?

    https://blogs.msdn.microsoft.com/askjay/2009/12/29/basic-debugging-concepts-and-setup/ You can creat ...

  8. JAVA EE 学习笔记

    http://www.cnblogs.com/kuangdaoyizhimei/category/701794.html http://www.cnblogs.com/liunanjava/p/445 ...

  9. ZooKeeper服务器是用Java创建的,它在JVM上运行。

    ZooKeeper服务器是用Java创建的,它在JVM上运行. 创建配置文件 使用命令 vi conf/zoo.cfg 和所有以下参数设置为起点,打开名为 conf/zoo.cfg 的配置文件. $ ...

  10. WebApi单元测试记录

    一.MessageHandler不一定是全局的,也可以只应用到指定的Router上 .定义一个handler // Pipelines HttpMessageHandler affiliateShip ...