1. 项目介绍​Cinder 是 OpenStack Block Storage 的项目名称;它为来宾虚拟机 (VM) 提供了持久块存储。Cinder块存储是虚拟基础架构中必不可少的组件,是存储虚拟机镜像文件及虚拟机使用的数据的基础。VM镜像是短暂的,它们的存储只维持在那台虚拟机的生命周期,Cinder提供对块存储的管理支持,通过使用iSCSI, 光纤通道或者NFS协议,以及若干私有协议提供后端连接,展现给计算层Nova。​
  2. Cinder的组件​Cinder-api 负责接受和处理Rest请求,并将请求放入RabbitMQ队列。​Cinder-scheduler 处理任务队列的任务,并根据预定策略选择合适的cinder-Volume节点来执行任务。​Cinder-Volume 该服务运行在存储节点上,管理存储空间。每个存储节点都有一个Volume Service,若干个这样的存储节点联合起来可以构成一个存储资源池。负责封装driver,不同的driver负责控制不同的后端存储。​Cinder-backup 提供cinder中的volume的备份管理功能。​Messaging queue 在块存储的组件之间传递消息​Database 保存Volume相关的信息​
  3. 块存储服务的原理

与其他 OpenStack 项目类似,Cinder 的功能通过 API 暴露给仪表板和命令行。它能够通过具有具象状态传输 (Representational State Transfer, REST) 的 HTTP API 来访问对象存储,并使用一个名为 Auth Manager 的 Python 类将身份验证纳入 OpenStack Keystone。​

API 解析所有传入的请求,先验证请求的合法性,并将合法的请求转发给消息队列,调度程序和卷服务器在该队列中执行实际的工作。在创建新的卷时,调度程序将会决定哪台主机应对该卷负责。默认情况下,它会选择拥有最多可用空间的节点。​

卷管理程序管理着可动态附加的块存储设备,这些设备也被称为卷。它们可用作虚拟实例的启动设备,或作为辅助存储进行添加。Cinder 还为快照(卷的只读副本)提供了一种设备。然后可以使用这些快照来创建新的卷,以供读写使用。​

卷通常通过 iSCSI 附加到计算节点。块存储也需要某种形式的后端存储,在默认情况下,该后端存储是本地卷组上的逻辑卷管理,但可以通过驱动程序将它扩展到外部存储阵列或设备。​

  1. 块存储服务的搭建以下所有的步骤将在控制节点(Controller Node)上面进行操作。
  1. 首先配置镜像服务所需要的数据库首先在数