- cinder-api:接收 API 请求,调用 cinder-volume 执行操做。
- cinder-scheduler:scheduler 经过调度算法选择最合适的存储节点建立 volume。
- cinder-volume:管理 volume 的服务,与 volume provider 协调工做,管理 volume 的生命周期。运行 cinder-volume 服务的节点被称做为存储节点。

- volume provider:数据的存储设备,为 volume 提供物理存储空间。cinder-volume 支持多种 volume provider,每种 volume provider 经过本身的 driver 与cinder-volume 协调工做。
- Message Queue:Cinder 各个子服务经过消息队列实现进程间通讯和相互协做。由于有了消息队列,子服务之间实现了解耦,这种松散的结构也是分布式系统的重要特征。
- Database:Cinder 有一些数据须要存放到数据库中,通常使用 MySQL。数据库是安装在控制节点上的,好比在咱们的实验环境中,能够访问名称为“cinder”的数据库。
openstack通用设计思路:
与nova重复的不在此赘述
- API 前端服务:能够经过运行多个 API 服务实例轻松实现 API 的高可用,好比运行多个 cinder-api 进程
- Scheduler 调度服务
- Worker 工做服务:在 Cinder 中,这个 Worker 就是 cinder-volume 了。
- Driver 框架:存储节点支持多种 volume provider,包括 LVM, NFS, Ceph, GlusterFS,以及 EMC, IBM 等商业存储系统。cinder-volume 为这些 volume provider 定义了统一的 driver 接口,volume provider 只须要实现这些接口,就能够 driver 的形式即插即用到 OpenStack 中。在 cinder-volume 的配置文件 /etc/cinder/cinder.conf在存储节点上 中 volume_driver 配置项设置该存储节点使用哪一种 volume provider 的 driver,下面的示例表示使用的是 LVM。

- Messaging 服务
- Database