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。

你可能感兴趣的:(OpenStack-cinder)