OpenStack-cinder

一、Block Storage Service                                                                                                                     Block Storage Servicet 提供对 volume 从创建到删除整个生命周期的管理。从 instance 的角度看,挂载的每一个 Volume 都是一块硬盘。                                                                 OpenStack 提供 Block Storage Service 的是 Cinder,其具体功能是:                       

1、提供 REST API 使用户能够查询和管理 volume、volume snapshot 以及 volume type     

2、提供 scheduler 调度 volume 创建请求,合理优化存储资源的分配                                    

3、通过 driver 架构支持多种 back-end(后端)存储方式,包括 LVM,NFS,Ceph 和其他        诸如 EMC、IBM 等商业存储产品和方案

二、cinder组                                                                                                                             1、cinder-api:接收API请求,调用cinder-volume,所有的cinder请求都是要通过cinder-           api来处理的。                                                                                                                           cinder-api 对接收到的 HTTP API 请求会做如下处理:                                                                 1)检查客户端传入的参数是否合法有效                                                                                    2)调用 cinder 其他子服务的处理客户端请求                                                                          3)将 cinder 其他子服务返回的结果序列号并返回给客户端                                 

2、cinder-volume:管理volume服务,与volume provider协调工作,管理volume的生命            周期,cinder-volume是运行在存储节点上。                                                                         OpenStack 对 Volume 的操作,最后都是交给 cinder-volume 来完成的。cinder-volume         自身并不管理真正的存储设备,存储设备是由 volume provider 管理的。cinder-volume         与 volume provider 一起实现 volume 生命周期的管理。                                                     

3、cinder-scheduler                                                                                                                      scheduler 通过调度算法选择最合适的存储节点创建 volume。 创建 Volume 时,cinder-        scheduler 会基于容量、Volume Type 等条件选择出最合适的存储节点,然后让其创建          Volume                                                                                                    

4、volume provider                                                                                                                            数据的存储设备,为 volume 提供物理存储空间。 cinder-volume 支持多种 volume                provider,每种 volume provider 通过自己的 driver 与cinder-volume 协调工作。                Cinder 的服务会部署在两类节点上,控制节点和存储节点

三、设计思想

客户(可以是 OpenStack 最终用户,也可以是其他程序)向 API(cinder-api)发送请求:“帮我创建一个 volume”

1、API 对请求做一些必要处理后,向 Messaging(RabbitMQ)发送了一条消息:“让 Scheduler 创建一个 volume”

2、Scheduler(cinder-scheduler)从 Messaging 获取到 API 发给它的消息,然后执行调度算法,从若干计存储点中选出节点 A

3、Scheduler 向 Messaging 发送了一条消息:“让存储节点 A 创建这个 volume”

4、存储节点 A 的 Volume(cinder-volume)从 Messaging 中获取到 Scheduler 发给它的消息,然后通过 driver 在 volume provider 上创建 volume。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 目标 在《Ubuntu16手动安装OpenStack——修改镜像》一文中,我们通过修改镜像,实现了ssh密码访问实...
    VoidKing阅读 2,177评论 2 3
  • 第一章 OpenStack基础 OpenStack管理的资源及提供的服务OpenStack做为一个操作系统,...
    sgt_tiger阅读 13,054评论 4 72
  • 1.环境准备 centos7 1.1、yum安装设置 yum list |grep openstackcentos...
    davisgao阅读 5,536评论 1 16
  • 1、卷创建 cinder create 1)通过glance image 创建cinder create --im...
    marshalzxy阅读 5,887评论 1 0
  • 感恩这个男孩给了我,说出,我想语音的机会~ 感恩爸爸告诉我明天就是腊八节 感恩我可以在家办公。 感恩我有自己喜欢的...
    新芽作伴阅读 183评论 0 2