openstack架构简单介绍J版(更新中)
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版(更新中)的更多相关文章
- 自己动手写处理器之第一阶段(3)——MIPS32指令集架构简单介绍
将陆续上传本人写的新书<自己动手写处理器>(尚未出版).今天是第四篇.我尽量每周四篇 1.4 MIPS32指令集架构简单介绍 本书设计的处理器遵循MIPS32 Release 1架构,所以 ...
- Android平台Camera实时滤镜实现方法探讨(十)--代码地址以及简单介绍(20160118更新)
简单做了个相机和图片编辑模块,时间原因非常多功能还没有做.尚有BUG,见谅,将在以后抽时间改动 代码地址 PS:请点个Star^-^ --------------------------------- ...
- spring mvc简单介绍xml版
spring mvc介绍:其实spring mvc就是基于servlet实现的,只不过他讲请求处理的流程分配的更细致而已. spring mvc核心理念的4个组件: 1.DispatcherServl ...
- 二维码Data Matrix简单介绍及在VS2010中的编译
Data Matrix 二维条码原名Datacode,由美国国际资料公司(International Data Matrix, 简称ID Matrix)于1989年发明.Data-Matrix二维条码 ...
- cocos2d-x on wp8架构简单介绍
1,基于C++的开发架构 支持3大移动平台以及3大桌面平台. 分为图形,声音,物理3大模块,另外还有脚本的导出. 在wp8/win32上的图形是基于d3d的,而在其它平台是基于opengl/openg ...
- 用python做oj上的简单题(持续更新中.......)
本人刚開始接触python,在oj上解一些简单的题,欢迎交流,不喜勿喷. OJ地址链接:acm.sdut.edu.cn http://acm.sdut.edu.cn/sdutoj/showproble ...
- memcached简单介绍及在django中的使用
什么是memcached? Memcached是一个高性能的分布式的内存对象缓存系统,全世界有不少公司采用这个缓存项目来构建大负载的网站,来分担数据库的压力.Memcached是通过在内存里维护一个统 ...
- Spring框架教程IDEA版-----更新中
补充:设计模式中的工厂模式 设计模式党的主要原则:(1)对接口编程,而不是对实现编程 (2)优先使用对象组合而不是继承 在实现接口的方法时: @Override是伪代码,表示重写.(当然不写@Over ...
- 简单介绍一下python Queue中常用的方法
Queue.qsize() 返回队列的大小 Queue.empty() 如果队列为空,返回True,反之False Queue.full() 如果队列满了,返回True,反之FalseQueue.fu ...
随机推荐
- 一分钟了解ruby中的单测
之前用gtest写过很多c++的单测case, 对gtest的强大和灵活印象深刻:最近需要用ruby写一个小工具, 接触了下ruby, 写了代码就要写单测啊(好的单测确实对代码的健壮性和正确性保证上太 ...
- linux+win7双系统重装win7修复grub的办法
本人是debian+win7的双系统, 下面介绍下重装win7的整个过程以及遇到的一些小问题,在查阅相关博客和朋友的帮助下成功修复, 记录下以便以后有不时之需, 也希望能帮助到遇到同样问题的朋友! 首 ...
- php(间接)调用nmap命令时的选项特殊点
使用php调用pythn-nmap时,发现无法正常执行扫描动作 将nmap命令直接写入php,由后者调用,发现仍然无法执行,提示需要添加“-Pn”选项 原来是: 正常情况下:nmap -n host ...
- 浅谈replace()
replace()简单介绍 replace()基本语法是String.replace(searchValue,replaceValue),其中searchValue为字符串或者正则,replaceVa ...
- POJ 2236 Wireless Network [并查集+几何坐标 ]
An earthquake takes place in Southeast Asia. The ACM (Asia Cooperated Medical team) have set up a wi ...
- 使用Xshell上传下载文件
很多时候我们需要在Windows跟Linux之间,或者Linux跟Linux之间传文件,这里我们讲的是使用Xshell实现文件上传下载. 一.使用rz,sz实现Windows,linux上传下载 1. ...
- OJP1147括号匹配加强版(栈)与P1153乱头发节(单调栈)
惨兮兮的被刷掉2%的通过率后在经过思考和dalao的指点后终于A掉了这道题 强烈建议修改这题的样例,实在太迷惑人,各种错误算法都能过 比如说这是一份错误代码,看懂了也不要学思路,和正解不知道差到哪里去 ...
- LCA【SP913】Qtree - Query on a tree II
Description 给定一棵n个点的树,边具有边权.要求作以下操作: DIST a b 询问点a至点b路径上的边权之和 KTH a b k 询问点a至点b有向路径上的第k个点的编号 有多组测试数据 ...
- duboo服务使用thrift协议 + MQ
写一篇博客来记录从 Python 转型到 Java 的学习成果.整体架构: rpc: dubbo + thrift idl: thrift registeration: zookeeper MQ: k ...
- Scrum生命周期
Recently while cleaning up my photo albums I found some interesting old pictures which were captured ...