OpenStack学习笔记(四)Cinder组件

Cinder主要架构

与nova类似,cinder也采用的是松散的架构理念,由cinder-api统一管理外部对cinder的调用,cinder-scheduler负责调度合适的节点去构建volume存储。volume-provider通过driver负责具体的存储空间,然后cinder内部依旧通过消息队列queue沟通,解耦各子服务支持异步调用。

OpenStack学习笔记(四)Cinder组件

 

 

cinder-sheduler筛选机制

cinder-sheduler通过filter进行删选,允许使用第三方的filter,自定义筛选内容。

OpenStack学习笔记(四)Cinder组件

 

cinder-api

创建一个卷的流程(cinder-api部分)

OpenStack学习笔记(四)Cinder组件

 

scheduler

通过名为volume_create_scheduler的Flow执行调度。

OpenStack学习笔记(四)Cinder组件

 

cinder-volume

当cinder-volume接收到消息,才真正开始实际创建volume,cinder-volume通过driver来创建volume,方式类同于cinder-scheduler,也是通过Flow(名称为 volume_create_manager)的方式

OpenStack学习笔记(四)Cinder组件

 

了解一下LVM 和Ceph

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

我们来了解一下LVM 和Ceph。

LVM是Linux环境下对磁盘分区进行管理的一种机制,其实际是建立在硬盘和分区之上的一个逻辑层,形成一个存储池。用来提高磁盘分区管理的灵活性。PV是指物理卷(操作系统识别到的物理硬盘),VG是指卷组(也就是物理卷进行逻辑整合后形成的逻辑上连成一片的逻辑硬盘),LV是指逻辑卷(将整块的VG根据功能或者其他因素和划分为不同的分区,每个分区为一个LV)

举个栗子:PV比作地球的一个板块,VG则是一个地球(将各个物理卷(板块)在逻辑上连接起来成为地球),在地球上划分一个区域并标记为亚洲,则亚洲就相当于一个LV(也可以按照其他规则划分,比如国家,那中国就是一个LV)

 

 

创建完成之后,通过attach操作将此volume挂载到虚拟机上,这样虚拟机就成功获得该volume作为虚拟硬盘使用