Openstack架构概念图-简单汇总
OpenStack是一个云平台管理的项目,它不是一个软件。这个项目由几个主要的组件组合起来完成一些具体的工作。想要了解openstack,第一步我们可以观察他的概念图:

针对上图的翻译+解释:

上图主要回答了openstack为我们提供什么服务,它的功能有哪些,当然概念图只是为我们提供了一个概念,而正如一开始介绍的那样——OpenStack是一个云平台管理的项目,它不是一个软件,这个项目由几个主要的组件组合起来完成一些具体的工作。搞清楚由哪些组件完成这些功能,我们需要借助下图2,下图为Grizzly的架构图,简述了套件之间是如何运作的:

OpenStack的Grizzly版共有7个不同功能套件,分别是:
运算套件Nova:openstack中的核心,负责计算和实施一些策略,很多组件都要通过他进行调度(Nova中的nova-api负责所以API的调度,初始化大多数部署,执行部分策略)
对象储存套件Swift:分布式对象存储,功能类似于hadoop,可是跟hadoop又有很大不同;在openstack中,swift用于存储创建虚拟机的镜像文件
区块储存套件Cinder:配分块存储,给虚拟机增加一个块存储设备(有点类似于移动硬盘);
网通套件Quantum:通过API来管理的网络架构系统;
身分识别套件Keystone:身份认证功能;
镜像檔管理套件Glance:对镜像文件进行管理;
仪表板套件Horizon:就是一个UI;
以上是针对Openstack组件的一些通俗解释,如果大家觉得不够详尽,可以查阅一下其他资料:但用过百度一下的朋友就肯定会发现,网上流传着好几个不同版本的架构图,几种架构图描述的方式都相差很大,第一眼看上去甚至都不是一个东西,面对这种情况,我们可以假设他们都是对的,然后找出他们之间的联系,这样我们也可以加深对openstack的理解;
现在看一下openstack的逻辑架构:

a) 终端用户通过和nova-api对话来与OpenStack Compute交互。
b) OpenStack Compute守护进程之间通过队列(行为)和数据库(信息)来交换信息,以执行API请求。(交换信息的方式我们以后会讲)
c) OpenStack Glance基本上是独立的基础架构,OpenStack Compute通过Glance API来和它交互。
其各个组件的情况如下:
a) nova-api守护进程是OpenStack Compute的中心。它为所有API查询(OpenStack API 或 EC2 API)提供端点,初始化绝大多数部署活动(比如运行实例),以及实施一些策略(绝大多数的配额检查)。
因此很多相对于openstack独立的基础架构是跟nova-api交换信息的,而不是向其他进程那样使用队列和数据库;
b) nova-compute进程主要是一个创建和终止虚拟机实例的Worker守护进程。基本原理:从队列中接收行为,然后在更新数据库的状态时,执行一系列的系统命令执行他们。
c) nova-volume管理映射到计算机实例的卷的创建、附加和取消。这些卷可以来自很多提供商,比如,ISCSI和AoE。
d) Nova-network worker守护进程类似于nova-compute和nova-volume。它从队列中接收网络任务,然后执行任务以操控网络,比如创建bridging interfaces或改变iptables rules。
e) Queue提供中心hub,为守护进程传递消息。当前用RabbitMQ实现。但是理论上能是python ampqlib支持的任何AMPQ消息队列。
f) SQL database存储云基础架构中的绝大多数编译时和运行时状态。当前广泛使用的数据库是sqlite3(仅适合测试和开发工作),MySQL和PostgreSQL。
g) OpenStack Glance,是一个单独的项目,它是一个compute架构中可选的部分,分为三个部分:
glance-api:glance-api接受API调用;
glance-registry: glance-registry负责存储和检索镜像的元数据,实际的Image Blob存储在Image Store中;
the image store:Image Store可以是多种不同的Object Store,包括OpenStack Object Storage (Swift);
h) 最后,user dashboard是另一个可选的项目。OpenStack Dashboard提供了一个OpenStack Compute界面来给应用开发者和devops staff类似API的功能。当前它是作为Django web Application来实现的。当然,也有其他可用的Web前端。(说白了就是个UI)
接着来看看这个逻辑图在概念图上的映射:

通过这样一张图我们就可以很清楚地了解各个进程的功能,我们同样可以把各组件映射到它的概念图上:

也可以用以下的表示方式来表现它的架构:

或者用思维导图表示:

通过上述的几个图,我们基本上可以梳理清Openstack的架构了,通过比较不同表达方式,可以更透彻地理解一个事物,就像学生时代一直强调的一题多解一样,希望能以这样的方式加深大家对Openstack架构的理解。
Openstack架构概念图-简单汇总的更多相关文章
- openstack架构简单介绍J版(更新中)
title : OPENSTACK架构简单介绍 openstack的发展及历史 openstack是什么? OpenStack是一个美国国家航空航天局和Rackspace合作研发的云端运算软件,以A ...
- OpenStack 架构 - 每天5分钟玩转 OpenStack(15)
终于正式进入 OpenStack 部分了. 今天开始,CloudMan 将带着大家一步一步揭开 OpenStack 的神秘面纱. OpenStack 已经走过了 6 个年头. 每半年会发布一个版本,版 ...
- 发现 OpenStack: 架构、功能和交互
原文:http://www.ibm.com/developerworks/cn/cloud/library/cl-openstack-overview/index.html OpenStack 是由 ...
- OpenStack入门篇(二)之OpenStack架构
1.OpenStack 架构 中间菱形是虚拟机,围绕 VM 的那些长方形代表 OpenStack 不同的模块(OpenStack 叫服务,后面都用服务这个术语),下面来分别介绍. Nova:管理 VM ...
- openstack架构
终于正式进入 OpenStack 部分了. 今天开始,CloudMan 将带着大家一步一步揭开 OpenStack 的神秘面纱. OpenStack 已经走过了 6 个年头. 每半年会发布一个版本,版 ...
- Openstack 架构简述
概述 在学习OpenStack的过程中,感觉对整个OpenStack的架构稍稍有些了解,所以将这些记录下来,一来防止自己忘记,二来也可以对有需要的人提供帮助 本文章相关的灵感/说明/图片来自于http ...
- 模糊系统架构和简单实现--AForge.NET框架的使用(四)
原文:模糊系统架构和简单实现--AForge.NET框架的使用(四) 先说一下,为什么题目是简单实现,因为我实在没有弄出好的例子. 我原来用AForge.net做的项目中的模糊系统融入了神经网络和向量 ...
- OpenStack部署的简单模型
记录下看到的openstack部署的简单模型,方便自己以后定位问题 规划网络部署节点为一个controller节点(包含网络节点),两个compute节点.controller节点有3个网卡,分别为e ...
- O015、OpenStack 架构
参考https://www.cnblogs.com/CloudMan6/p/5340622.html 终于正式进入OpenStack 部分了. 今天开始正式学习OpenStack,OpenSt ...
随机推荐
- The Tomcat connector configured to listen on port 8080 failed to start. The port may already be in use or the connector may be misconfigured
springboot 8080端口被占用报错:The Tomcat connector configured to listen on port 8080 failed to start. The p ...
- webrtc 实时视频 .net websocket信令服务器
这篇文章主要参考了 Webrtc WebSocket实现音视频通讯,非常感谢提供代码 前端部分完全是从这篇文章复制过来的,只是修改了webscket的url,还有加入了webrtc-adapterjs ...
- Linux自制编译内核
今天我们来自己学习编译内核并使用它.自制内核是个人定制版,定制自己专属的内核环境. 我们先看看编译步骤有哪些: 步骤: 1.# tar xf linux-3.10.37.tar.xz -C /usr/ ...
- 4.1Python数据处理篇之Matplotlib系列(一)---初识Matplotlib
目录 目录 前言 (一)matplotlib的介绍 (二)画一个简单的画布 ==1.源代码== ==2.展示效果== (三)画布按键的功能介绍 ==1.对于画布功能键的排序== ==(1)主页== = ...
- IE8以下兼容
<!--[if lt IE 9]><script type="text/javascript">alert('IE版本太低,请升级后使用');</sc ...
- Android Studio 运行找不到夜神模拟器
夜神模拟器开着,Android studio 找不到模拟器 解决方法:1.进入CMD,转到夜神安装目录 cd D:\Program Files (x86)\Nox\bin 2.执行命令:nox_adb ...
- 深入浅出的webpack构建工具---devTool中SourceMap模式详解(四)
阅读目录 一:什么是SourceMap? 二:理解webpack中的SourceMap的eval,inline,sourceMap,cheap,module 三:开发环境和线上环境如何选择source ...
- Mongodb数据库连接
Mongodb数据库连接 1. 首先我们需要 在包中安装 mongodb, 使用命令: npm install mongodb; 在安装包后,我们需要引用该包:如下: var mongo = requ ...
- async源码学习 - 全部源码
因为工作需要,可能我离前端走远了,偏node方向了.所以异步编程的需求很多,于是乎,不得不带着学习async了. 我有个习惯,用别人的东西之前,喜欢稍微搞明白点,so就带着看看其源码. github: ...
- NPOI DataTable导出excel
/// <summary> /// DataTable导出到Excel文件 /// </summary> /// <param name="dtSource&q ...