什么是openstack

OpenStack是一个云平台管理的项目,它不是一个软件。

这个项目由几个主要的组件组合起来完成一些具体的工作。

想要了解openstack,第一步我们可以观察他的概念图

针对上图的翻译+解释:

上图主要回答了openstack为我们提供什么服务,它的功能有哪些,当然概念图只是为我们提供了一个概念,而正如一开始介绍的那样——OpenStack是一个云平台管理的项目,它不是一个软件,这个项目由几个主要的组件组合起来完成一些具体的工作。

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的更多相关文章

  1. 视频 - 在 VirtualBox 中部署 OpenStack

    大家新年好,CloudMan 今天给大家带来一件新年礼物. 一直以来大家都反馈 OpenStack 学习有两大障碍:1. 实验环境难搭2. 体系复杂,难道大今天我就先帮大家解决环境问题.前两天我抽空在 ...

  2. 启用 Open vSwitch - 每天5分钟玩转 OpenStack(127)

    Linux Bridge 和 Open vSwitch 是目前 OpenStack 中使用最广泛的两种虚机交换机技术. 前面各章节我们已经学习了如何用 Linux Bridge 作为 ML2 mech ...

  3. Openstack Periodic Task

    Openstack Periodic Task 周期性任务在各个模块的manager.py(computer,scheduler,cell,network)中添加. 添加方法:在模块manager类实 ...

  4. 超千个节点OpenStack私有云案例(1):CERN 5000+ 计算节点私有云

    CERN:欧洲核子研究组织 本文根据以下几篇文章整理而来: https://www.openstack.org/summit/tokyo-2015/videos/presentation/unveil ...

  5. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建

    公司在IDC机房有两台很高配置的服务器,计划在上面部署openstack云平台虚拟化环境,用于承载后期开发测试和其他的一些对内业务.以下对openstack的部署过程及其使用做一详细介绍,仅仅依据本人 ...

  6. 添加 Pool Member - 每天5分钟玩转 OpenStack(123)

    我们已经有了 Load Balance Pool "web servers"和 VIP,接下来需要往 Pool 里添加 member 并学习如何使用 cloud image. 先准 ...

  7. 理解 Neutorn LBaaS - 每天5分钟玩转 OpenStack(120)

    Load Balance as a Service(LBaaS)是 Neutron 提供的一项高级网络服务.LBaaS 允许租户在自己的网络中创建和管理 load balancer. load bal ...

  8. 每天5分钟 玩转OpenStack 目录列表

    最近在学习 OpenStack 的相关知识,一直苦于 OpenStack 的体系庞大以及复杂程度,学习没有进度,停滞不前.偶然机会在 51CTO 上发现了一个热点的专题关于 OpenStack 的,题 ...

  9. openstack七大模块概述

    前言 OpenStack主要由七部分组成,分别是Identify, Image, Network, Compute, Block Storage, Object Storage, Dashboard, ...

  10. RedHat 和 Mirantis OpenStack 产品的版本和功能汇总和对比(持续更新)

    Mirantis 和 Red Hat 作为 OpenStack 商业化产品领域的两大领军企业,在行业内有重要的地位.因此,研究其产品版本发布周期和所支持的功能,对制定 OpenStack 产品的版本和 ...

随机推荐

  1. mysql 删除用户

    select * FROM sys_user_role where user_id in( SELECT id FROM sys_user where login_name='17600311226' ...

  2. scrapy中css选择器初识

    由于最近做图片爬取项目,涉及到网页中图片信息的选择,所以边做边学了点皮毛,有自己的心得 百度图库是ajax加载的,所以解析json数据即可 hjsons = json.loads(response.b ...

  3. python自动化开发-[第十四天]-javascript(续)

    今日概要: 1.数据类型 2.函数function 3.BOM 4.DOM 1.运算符 算术运算符: + - * / % ++ -- 比较运算符: > >= < <= != = ...

  4. Hadoop端口说明

    Hadoop端口说明: 默认端口                            设置位置                                    描述信息 8020        ...

  5. 互斥量、条件变量与pthread_cond_wait()函数的使用,详解(二)

    1.Linux“线程” 进程与线程之间是有区别的,不过linux内核只提供了轻量进程的支持,未实现线程模型.Linux是一种“多进程单线程”的操作系统.Linux本身只有进程的概念,而其所谓的“线程” ...

  6. mysql 批处理命令执行多个sql脚本

    方法1 若有SQL脚本a.sql, b.sql, 其目录在f盘根目录下, 则可再写一个SQL脚本c.sql(假设其目录也在f盘根目录下, 也可以在其他路径下)如下: source f:/a.sql; ...

  7. Part-Three 类与对象

    1.时钟类的完整程序 #include<iostream> using namespace std; class Clock{ public : ,,);//设置函数的默认值,注意!在此处 ...

  8. 记录MySQL的一些基础操作

    MySQL建表操作 root@localhost 08:05:22> create table stu( -> id int(4) not null, -> name char(20 ...

  9. Word设置多级标题

    选中标题1的内容,点击编号图标,选中一个经典的编号模板,如下图 之后,再次点击编号图标,然后选中“定义新的多级列表”,将打开一个对话框 确保标题1的标号正确: 接着,确保标题2的编号正确: 依次类推, ...

  10. XOR 加密

    XOR 是一个神奇的运算符, 观察它的真值表, 很容易得到以下结论: 假设现有 a , b 变量, 则 a ^ 0 == a a ^ 0xff == ~a (取反加1等于作为补码的a的真值的相反数的补 ...