openstack架构

终于正式进入 OpenStack 部分了。 今天开始,CloudMan 将带着大家一步一步揭开 OpenStack 的神秘面纱。
OpenStack 已经走过了 6 个年头。 每半年会发布一个版本,版本以字母顺序命名。现在已经到第 12 个版本 Liberty(字母 L)。 OpenStack最初只有两个模块(服务),现在已经有 20+(见下图),每个模块作为独立的子项目开发。

面对如此庞大的阵容,作为初学者我们如何起步呢? 这也是 CloudMan 写这个系列教程的初衷: 通过实际操作帮助初学者由浅入深地学习和实践 OpenStack,并最终具备实施 OpenStack 的能力。
我们会把学习的重点放在 OpenStack 最核心的地方。 那什么是核心呢?请看下图

作为 IaaS 层的云操作系统,OpenStack 为虚拟机提供并管理三大类资源:计算、网络和存储。
这三个就是核心,所以我们的学习重点就是: 搞清楚 OpenStack 是如何对计算、网络和存储资源进行管理的。 在 20+ 模块中,管理这三类资源的核心模块其实不多,这几个模块就是我们的重点了。
要达到这个目的,我们自然需要研究 OpenStack 的整体架构。 架构里哪些核心模块负责管理计算资源、网络资源和存储资源?模块之间如何协调工作? 同时我们会构建一个实验环境,进到各个模块的内部,通过实际操作真正理解和掌握 OpenStack。
好,下面我们就从架构开始吧。
OpenStack 架构
架构是个好东西,它能帮助我们站在高处看清楚事物的整体结构,避免过早地进入细节而迷失方向。
下图是 OpenStack 的 Conceptual Architecture

中间菱形
是虚拟机,围绕 VM 的那些长方形代表 OpenStack 不同的模块(OpenStack 叫服务,后面都用服务这个术语),下面来分别介绍。
Nova:管理 VM 的生命周期,是 OpenStack 中最核心的服务。
Neutron:为 OpenStack 提供网络连接服务,负责创建和管理L2、L3 网络,为 VM 提供虚拟网络和物理网络连接。
Glance:管理 VM 的启动镜像,Nova 创建 VM 时将使用 Glance 提供的镜像。
Cinder:为 VM 提供块存储服务。Cinder 提供的每一个 Volume 在 VM 看来就是一块虚拟硬盘,一般用作数据盘。
Swift:提供对象存储服务。VM 可以通过 RESTful API 存放对象数据。作为可选的方案,Glance 可以将镜像存放在 Swift 中;Cinder 也可以将 Volume 备份到 Swift 中。
Keystone:为 OpenStack 的各种服务提供认证和权限管理服务。简单的说,OpenStack 上的每一个操作都必须通过 Keystone 的审核。
Ceilometer:提供 OpenStac k监控和计量服务,为报警、统计或计费提供数据。
Horizon:为 OpenStack 用户提供一个 Web 的自服务 Portal。
在上面的这些服务中,哪些是 OpenStack 的核心服务呢? 核心服务就是如果没有它,OpenStack 就跑不起来。 很显然
Nova 管理计算资源,是核心服务。
Neutron 管理网络资源,是核心服务。
Glance 为 VM 提供 OS 镜像,属于存储范畴,是核心服务。
Cinder 提供块存储,VM怎么也得需要数据盘吧,是核心服务。
Swift 提供对象存储,不是必须的,是可选服务。
Keystone 认证服务,没它 OpenStack 转不起来,是核心服务。
Ceilometer 监控服务,不是必须的,可选服务。
Horizon 大家都需要一个操作界面吧。
现在核心服务有了,接下来我们将镜头拉近点,看看核心服务内部的组成结构。 Logical Architecture

在 Logical Architecture 中,可以看到每个服务又由若干组件组成。 以 Neutron 为例,包含

Neutron Server、Neutron plugins 和 Neutron agents
Network provider
消息队列 Queue
数据库 Neutron Database
在后面 Neutron 章节我们会展开学习这些组件。
这里想要强调一点: 上面是 Logical Architecture,描述的是 Neutron 服务各个组成部分以及各组件之间的逻辑关系。 而在实际的部署方案上,各个组件可以部署到不同的物理节点上。
OpenStack 本身是一个分布式系统,不但各个服务可以分布部署,服务中的组件也可以分布部署。 这种分布式特性让 OpenStack 具备极大的灵活性、伸缩性和高可用性。 当然从另一个角度讲,这也使得 OpenStack 比一般系统复杂,学习难度也更大。
openstack架构的更多相关文章
- 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是一个云平台管理的项目,它不是一个软件.这个项目由几个主要的组件组合起来完成一些具体的工作.想要了解openstack,第一步我们可以观察他的概念图: 针对上图的翻译+解释: 上图主 ...
- OpenStack入门篇(二)之OpenStack架构
1.OpenStack 架构 中间菱形是虚拟机,围绕 VM 的那些长方形代表 OpenStack 不同的模块(OpenStack 叫服务,后面都用服务这个术语),下面来分别介绍. Nova:管理 VM ...
- openstack架构简单介绍J版(更新中)
title : OPENSTACK架构简单介绍 openstack的发展及历史 openstack是什么? OpenStack是一个美国国家航空航天局和Rackspace合作研发的云端运算软件,以A ...
- Openstack 架构简述
概述 在学习OpenStack的过程中,感觉对整个OpenStack的架构稍稍有些了解,所以将这些记录下来,一来防止自己忘记,二来也可以对有需要的人提供帮助 本文章相关的灵感/说明/图片来自于http ...
- O015、OpenStack 架构
参考https://www.cnblogs.com/CloudMan6/p/5340622.html 终于正式进入OpenStack 部分了. 今天开始正式学习OpenStack,OpenSt ...
- 浅谈OpenStack架构
首先,先来了解,什么是OpenStack? OpenStack是一个云平台管理的项目,它不是一个软件.这个项目由几个主要的组件组合起来完成一些具体的工作.OpenStack是一个旨在为公共及私有云 ...
- 全面认识openstack:OpenStack架构详解
OpenStack构架知识梳理 OpenStack既是一个社区,也是一个项目和一个开源软件,提供开放源码软件,建立公共和私有云,它提供了一个部署云的操作平台或工具集,其宗旨在于:帮助组织运行为虚拟 ...
随机推荐
- PX4地面站QGroundControl在ubuntu下的安装
1.引言 相信很多玩开源无人机的朋友手上都有一架无人机,而不是仅仅停留在理论的学习和程序的学习.放飞自己组装的无人机才是乐趣所在,那么这本文就介绍玩无人机必不可少的地面站软件qgroundcontro ...
- Python基础 List和Tuple类型
python 创建list python 内置一种数据类型是列表: 列表是一种有序的集合,可以随时添加和 删除其中的元素,list 中的元素是按照顺序排列的.构建list 直接用 [ ], list ...
- linux 操作系统之磁盘管理
磁盘管理 存储设备:硬盘 , U盘 , 移动硬盘 , 光盘 , 软件. 组装一台电脑 无法被修改 df -h #查看磁盘分区的情况 , 可用的. 查看磁盘或者目录的内容 df “df” 常用的 “-i ...
- python matplotlibmat 包mplot3d工具 三维视图透视取消
https://stackoverflow.com/questions/23840756/how-to-disable-perspective-in-mplot3d 简单的解决方法是 ax = fig ...
- Hibernate学习笔记一
1 框架体系结构 2 hibernate入门 2.1 ORM框架 Hibernate是一个数据持久化层的ORM框架. Object:对象,java对象,此处特指JavaBean Relational: ...
- vuetify.js框架 下拉框数据改变DOM原数据未清除
今天遇到一个奇怪的bug 需求很简单,就是将“引擎能力”下拉框选中的值作为筛选条件传入到“样本类型”下拉框中,默认“样本类型”下拉框显示所有样本类型 看图: 如图所示,功能很简单. 其实还是对vuet ...
- [原创]用python实现系统状态监测和故障转移
#coding: utf-8 import socket import select import time import os import threading def ser(): s = soc ...
- BZOJ3224_普通平衡树_KEY
题目传送门 平衡二叉树(Balanced Binary Tree)具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树.平衡二叉树的常用实现方法有红 ...
- Uber优步北京第一组奖励政策
优步北京第一组: 定义为2015年6月1日凌晨前(不含6月1日)激活的司机(以优步后台数据显示为准) 滴滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机 ...
- vijos p1027休息中的小呆
休息中的小呆 描述 当大家在考场中接受考验(折磨?)的时候,小呆正在悠闲(欠扁)地玩一个叫“最初梦想”的游戏.游戏描述的是一个叫pass的有志少年在不同的时空穿越对抗传说中的大魔王chineseson ...