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

 更新时间:2022年04月20日 09:03:05   作者:林海峰  
这篇文章主要为大家介绍了openstack云计算之cinder架构及各组件功能介绍,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

一 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架构组件的资料请关注脚本之家其它相关文章!

相关文章

  • openstack 重启的服务命令整理总结

    openstack 重启的服务命令整理总结

    这篇文章主要介绍了openstack 重启的服务命令整理总结的相关资料,这里对 openstack 的服务命令进行了详细的介绍,openstack 的服务命令比较多,需要的朋友可以参考下
    2016-11-11
  • 基于CentOS的OpenStack环境部署详细教程(OpenStack安装)

    基于CentOS的OpenStack环境部署详细教程(OpenStack安装)

    这篇文章主要介绍了基于CentOS的OpenStack环境部署(OpenStack安装),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • OpenStack手动分布式部署Glance(Queens版)

    OpenStack手动分布式部署Glance(Queens版)

    这篇文章主要介绍了OpenStack手动分布式部署Glance(Queens版),Glance为云平台虚拟机提供镜像服务,例如:上传镜像、删除镜像等,需要的朋友可以参考下
    2023-03-03
  • openstack使用openvswitch实现vxlan的方法

    openstack使用openvswitch实现vxlan的方法

    这篇文章主要介绍了openstack使用openvswitch实现vxlan的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • openstack共享80、443端口的实例代码

    openstack共享80、443端口的实例代码

    这篇文章主要介绍了openstack共享80、443端口的实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • 什么是OpenStack 开源的云计算管理平台项目

    什么是OpenStack 开源的云计算管理平台项目

    OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台
    2016-11-11
  • Openstack 使用migrate进行数据库升级实现方案详细介绍

    Openstack 使用migrate进行数据库升级实现方案详细介绍

    这篇文章主要介绍了Openstack 使用migrate进行数据库升级详细介绍的相关资料,数据库表或者增加字段等是必然的事情,如何比较容易的进行这些数据库升级的适配和管理,这里提供实现方法,需要的朋友可以参考下
    2016-12-12
  • OpenStack Tempest的正确的打开方式

    OpenStack Tempest的正确的打开方式

    Tempest 是一个旨在为云计算平台 OpenStack 提供集成测试的开源项目。它是基于 unittest2 和 nose 建立的灵活且易于扩展及维护的自动化测试框架,使得 OpenStack 相关测试效率得到大幅度提升。
    2017-01-01
  • OpenStack API的使用套路分享

    OpenStack API的使用套路分享

    近期有openstack和vmware相关的开发需求,N年前从事虚拟化运维的时候玩过了,所以对它俩的API使用套路早忘得一干二净。这次借这个机会把使用套路做个文档并分享出来,希望可以帮到有需要的盆友
    2023-02-02
  • 浅谈openstack中使用linux_bridge实现vxlan网络

    浅谈openstack中使用linux_bridge实现vxlan网络

    这篇文章主要介绍了浅谈openstack中使用linux_bridge实现vxlan网络,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03

最新评论