openstack云计算cinder架构及各组件功能介绍

目录
  • 一 cinder各组件
    • 1、cinder主要组成:
    • 2、cinder各组件功能:
    • 3、nova与cinder的工作原理类似
  • 二 cinder架构图
  • 三 RPC机制
    • AMQP 模型有四个重要的角色:
    • AMQP消息模型
    • RPC 发送请求

一 cinder各组件

1、cinder主要组成:

#cinder-api
#cinder-scheduler
#cinder-volume

2、cinder各组件功能:

Cinder-api 是 cinder 服务的 endpoint,提供 rest 接口,负责处理 client 请求,并将 RPC 请求发送至 cinder-scheduler 组件。

Cinder-scheduler 负责 cinder 请求调度,其核心部分就是 scheduler_driver, 作为 scheduler manager 的 driver,负责 cinder-volume 具体的调度处理,发送 cinder RPC 请求到选择的 cinder-volume。

Cinder-volume 负责具体的 volume 请求处理,由不同后端存储提供 volume 存储空间。目前各大存储厂商已经积极地将存储产品的 driver 贡献到 cinder 社区

3、nova与cinder的工作原理类似

nova主要组成:

#nova-api
#nova-scheduler
#nova-compute
#nova-conductor

二 cinder架构图

openstack组件间通信:调用各组件api提供的rest接口,组件内通信:基于rpc(远程过程调用)机制,而rpc机制是基于AMQP模型实现的

从rpc使用的角度出发,nova,neutron,和cinder的流程是相似的,我们以cinder为例阐述rpc机制

参考链接:https://developer.ibm.com/

三 RPC机制

Openstack 组件内部的 RPC(Remote Producer Call)机制的实现是基于 AMQP(Advanced Message Queuing Protocol)作为通讯模型,从而满足组件内部的松耦合性。AMQP 是用于异步消息通讯的消息中间件协议

AMQP 模型有四个重要的角色:

Exchange:根据 Routing key 转发消息到对应的 Message Queue 中

Routing key:用于 Exchange 判断哪些消息需要发送对应的 Message Queue

Publisher:消息发送者,将消息发送的 Exchange 并指明 Routing Key,以便 Message Queue 可以正确的收到消息

Consumer:消息接受者,从 Message Queue 获取消息

消息发布者 Publisher 将 Message 发送给 Exchange 并且说明 Routing Key。Exchange 负责根据 Message 的 Routing Key 进行路由,将 Message 正确地转发给相应的 Message Queue。监听在 Message Queue 上的 Consumer 将会从 Queue 中读取消息。

Routing Key 是 Exchange 转发信息的依据,因此每个消息都有一个 Routing Key 表明可以接受消息的目的地址,而每个 Message Queue 都可以通过将自己想要接收的 Routing Key 告诉 Exchange 进行 binding,这样 Exchange 就可以将消息正确地转发给相应的 Message Queue。

Publisher可以分为4类:

  • Direct Publisher发送点对点的消息;
  • Topic Publisher采用“发布——订阅”模式发送消息;
  • Fanout Publisher发送广播消息的发送;
  • Notify Publisher同Topic Publisher,发送 Notification 相关的消息。

Exchange可以分为3类:

  • 1.Direct Exchange根据Routing Key进行精确匹配,只有对应的 Message Queue 会接受到消息;
  • 2.Topic Exchange根据Routing Key进行模式匹配,只要符合模式匹配的Message Queue都会收到消息;
  • 3.Fanout Exchange将消息转发给所有绑定的Message Queue。

AMQP消息模型

RPC 发送请求

Client 端发送 RPC 请求由 publisher 发送消息并声明消息地址,consumer 接收消息并进行消息处理,如果需要消息应答则返回处理请求的结果消息。

OpenStack RPC 模块提供了 rpc.call,rpc.cast, rpc.fanout_cast 三种 RPC 调用方法,发送和接收 RPC 请求。

1.rpc.call 发送 RPC 请求并返回请求处理结果,请求处理流程如图 5 所示,由 Topic Publisher 发送消息,Topic Exchange 根据消息地址进行消息转发至对应的 Message Queue 中,Topic Consumer 监听 Message Queue,发现需要处理的消息则进行消息处理,并由 Direct Publisher 将请求处理结果消息,请求发送方创建 Direct Consumer 监听消息的返回结果

图5.RPC.call消息流程

2.rpc.cast 发送 RPC 请求无返回,请求处理流程如图 6 所示,与 rpc.call 不同之处在于,不需要请求处理结果的返回,因此没有 Direct Publisher 和 Direct Consumer 处理。

图 6. RPC.cast 消息流程

3.rpc.fanout_cast 用于发送 RPC 广播信息无返回结果

图 7. RPC.fanout 消息处理

以上就是openstack云计算cinder架构及各组件功能介绍的详细内容,更多关于openstack云计算cinder架构组件的资料请关注我们其它相关文章!

(0)

相关推荐

  • OpenStack Identity(Keystone)身份服务、体系结构与中间件讲解

    OpenStack Identity(Keystone)服务为运行OpenStack Compute上的OpenStack云提供了认证和管理用户.帐号和角色信息服务,并为OpenStack Object Storage提供授权服务. Keystone体系结构 Keystone 有两个主要部件:验证和服务目录 验证:提供了一个基于令牌的验证服务,主要有以下几个概念: 租户(Tenant) 使用OpenStack相关服务的一个组织.一个租户映射到一个Nova的"project-id",在对

  • OpenStack Keystone的基本概念详细介绍

    OpenStack Keystone的基本概念理解 Keystone简介 Keystone(OpenStack Identity Service)是OpenStack框架中,负责身份验证.服务规则和服务令牌的功能, 它实现了OpenStack的Identity API.Keystone类似一个服务总线, 或者说是整个Openstack框架的注册表, 其他服务通过keystone来注册其服务的Endpoint(服务访问的URL),任何服务之间相互的调用, 需要经过Keystone的身份验证, 来获

  • openstack云计算组件keystone部署及操作使用技巧

    目录 一 前言 二 版本信息 三 部署keystone step 1:准备阶段 step 2:部署mariadb step 3:部署keystone step 4:配置web server整合keystone 四 keystone操作 part 1:创建keystone的catalog part 2:创建域,租户,用户,角色,把四个元素关联到一起 part 3:使用Bootstrap完成part1和part2二者的工作 part 4:创建用于后期测试用的项目,用户,租户,建立关联 part 5:

  • openstack云计算keystone架构源码分析

    目录 keystone架构 Keystone API Router Services (1) Identity Service (2) Resource Service (3) Assignment Service (4) Token Service (5) Catalog Service (6) Policy ServicePolicy Service Backend Driver keystone管理这些概念的方法 keystone-10.0.0代码结构展示 keystone服务启动 key

  • openstack云计算cinder架构及各组件功能介绍

    目录 一 cinder各组件 1.cinder主要组成: 2.cinder各组件功能: 3.nova与cinder的工作原理类似 二 cinder架构图 三 RPC机制 AMQP 模型有四个重要的角色: AMQP消息模型 RPC 发送请求 一 cinder各组件 1.cinder主要组成: #cinder-api #cinder-scheduler #cinder-volume 2.cinder各组件功能: Cinder-api 是 cinder 服务的 endpoint,提供 rest 接口,

  • openstack云计算组件glance功能镜像及版本介绍

    目录 一 什么是glance 二 为何要有glance 三 glance的功能 四 glance的两个版本 v1 v2 五 镜像的数据存放 六 镜像的访问权限 七 镜像及任务的各种状态 7.1 镜像的状态: 7.2 任务的状态 八 glance包含的组件 九 glance与openstack其他服务的关系 十 glance工作流程详解 注解: A client REST API Glance Domain Controller Registry Layer Glance Store 十一 Dis

  • openstack云计算keystone组件工作流程及服务关系

    目录 一 什么是keystone 二 为何要有keystone 三 keystone的功能 四 keystone概念详解 第一部分 endpoint举例 V3新增的概念: 第二部分 第三部分 五 keystone内包含的组件 六 keystone与openstack其他服务的关系 七 keystone与其他组件协同工作流程 八 keystone工作流程详解 一 什么是keystone keystone是OpenStack的身份服务,暂且可以理解为一个'与权限有关'的组件. 二 为何要有keyst

  • openstack云计算组件glance部署及操作步骤

    目录 一 简单架构图示参考 二 部署glance step 1:glance关于数据库的操作 step 2:glance关于keystone的操作 step 3:安装软件包 step 4:配置/etc/glance/glance.conf step 5: 初始化数据库glance step 6:启动glance且设置开机启动 三 验证 一 简单架构图示参考 二 部署glance yum install memcached python-memcachedsystemctl enable memc

  • OpenStack云计算快速入门教程(1)之OpenStack及其构成简介

    该教程基于Ubuntu12.04版,它将帮助读者建立起一份OpenStack最小化安装.我是五岳之巅,翻译中多采用意译法,所以个别词与原版有出入,请大家谅解.我不是英语专业,我觉着搞技术最重要的就是理解,而不是四级和考研中那烦人的英译汉,所以我的目标是忠于原意.通俗表达,Over.英文原文在这里(http://docs.openstack.org/es@***/openstack-compute/starter/content/ ,请将ex@***中的@去掉,CU屏蔽的F词),下面步入正题: 第

  • CentOS 6.4下安装部署OpenStack云计算平台的方法

    前言 OpenStack 是一个开源的 IaaS(基础设施及服务)云计算平台,让任何人都可以自行建立和提供云端运算服务. OpenStack 由一系列相互关联的项目提供云基础设施解决方案的各个组件,核心项目(9 个): 1.计算 (Compute) - Nova: 2.网络和地址管理 - Neutron: 3.对象存储 (Object) - Swift: 4.块存储 (Block) - Cinder: 5.身份 (Identity) - keystone: 6.镜像 (Image) - Glan

  • Vue实现typeahead组件功能(非常靠谱)

     前言 之前那个typeahead写的太早,不满足当前的业务需求. 而且有些瑕疵,还有也不方便传入数据和响应数据.. 于是就推倒了重来,写了个V2的版本 看图,多了一些细节的考虑;精简了实现的逻辑代码 效果图 实现的功能 1: 鼠标点击下拉框之外的区域关闭下拉框 2: 支持键盘上下键选择,支持鼠标选择 3: 支持列表过滤搜索 4: 支持外部传入列表JSON格式的映射 5: 支持placeholder的传入 6: 选中对象的响应(.sync vue2.3的组件通讯的语法糖) 7: 箭头icon的映

  • Vue.js仿微信聊天窗口展示组件功能

    源码:https://github.com/doterlin/vue-wxChat 演示地址:https://doterlin.github.io/vue-wxChat/ 运行 # install dependencies npm install # serve with hot reload at localhost:8080 npm run dev # build for production with minification npm run build 介绍 支持文本和图片的展示(后续将

随机推荐