1.Cinder简介2.Cinder架构概述3.Cinder能力及特性Cinder简介OpenStack在Folsom版本开始,将之前在Nova中的部分持久性块存储功能(Nova-Volume)分离出来的组件。为云平台提供统一接口,按需分配的,持久化的块存储服务(类似于AmazonEBS服务)。通过驱动的方式接入不同种类的后端存储(本地存储,网络存储,FCSAN,IPSAN)。核心功能是对卷的管理,允许对卷、卷的类型、卷的快照、卷备份进行处理。虚拟化块存储设备池,通过抽象和自动化在各种传统的后端块存储设备上提供SoftwareDefinedBlockStorage服务使终端用户可以按需、自助的访问块存储资源,而不用感知是什么类型的存储,存储真正部署在哪里Nova-volumeNova日趋庞大Nova核心成员的代码view、BP、bug审核等工作逾来困难Block存储为openstack的关键组件,独立出来以便增强它的功能和可靠性Cinder第一个版本块存储服务增加了NetApp和IBMdriver第三方driver增强接入NFS,呈现为块存储增加从镜像创建卷2012.9.27Folsom2012.7.5之前支持FC挂载,支持LIO多backend支持增加卷的迁移、扩容、限速、加密、复制、类型更改增加HP、华为、EMC等阵列接入编辑、删除quota丰富调度增加卷备份到swift、ceph,增加备份的导入导出数据迁移FCZone管理、Ceilometer集成支持卷池支持一致性组和一致性组快照2013.4~2014.10Grizzy、Havana、Icehouse、Juno2015.4.30Kilo通用的镜像缓存解决方案无中断的备份支持一致性卷组克隆支持获取卷后端存储列表嵌套的配额LVM后端默认使用瘦分配优化卷迁移管理2015.10.15Liberty支持滚动更新一致性组中添加、删除卷更多优化的filters/weighters加密卷的备份支持私有卷增加卷类型描述信息支持返回多个iSCSI路径信息Cinder使命和演进历史Cinder:向虚机提供可用于持久存储的块存储服务。与Nova、Keystone等模块直接交互OpenStack中的Cinder1.Cinder简介2.Cinder架构概述3.Cinder能力及特性CinderClient封装Cinder提供的rest接口,以CLI形式供用户使用CinderAPI对外提供restAPI,对实际操作需求进行解析,对API进行路由寻找相应的处理方法。Cinderscheduler负责收集backend上报的容量、能力信息,根据设定的算法完成卷到指定cinder-volume的调度。Cindervolume多节点部署,使用不同的配置文件、接入不同的backend设备,由各存储厂商插入driver代码与设备交互完成设备容量和能力信息收集、卷和快照操作等。Cinderbackup实现将卷的数据备份到其他存储介质(目前SWIFT/Ceph/TSM提供了驱动)。SQLDB提供存储卷、快照、备份、service等数据,支持Mysql、PG、MSSQL等SQL数据库。模块之间通过AMQP(应用层高级消息队列协议)进行通讯。AMQPAMQPAMQPCinder逻辑架构Cinder组件cinder-apicinder模块对外唯一入口,cinder的endpoint,接收和处理rest请求。cinder-scheduler根据预定的调度过滤策略以及权重计算策略,选择出合适的后端来处理任务。cinder-volume负责与后端存储进行对接,通过各厂商提供的driver将OpenStack操作转换为存储操作。Cinder物理部署Cinder-API,Cinder-Scheduler,Cinder-Volume可以选择部署到一个节点上,也可以分别部署。Cinder-API采用AA模式,Haproxy作为Loadbalance,分发请求到多个CinderAPI。Cinder-Scheduler也采用AA模式,通过RabbitMQ协议(开源的AMQP实现)以负载均衡模式向多个节点分发任务,并以RabbitMQ方式收取Cindervolume上报的能力信息,调度时,scheduler通过在DB中预留资源从而保证数据一致性。Cinder-Volume也采用AA模式,通过调用不同的driver管理不同的存储后端,上报各自backend容量和能力信息,并同时接受请求进行处理执行卷、快照相关的业务,。SAN存储:通过driver对接Cinder-Volume,完成Cinder-Volume下发的操作,定时上报相关信息。CPS:controllerCPS:blockstorage-driverCPS:controllerCinder-APICinder-SchedulerRabbitMQGaussdbCinder-VolumeCinder-APICinder-APICinder-SchedulerCinder-SchedulerCinder-VolumeCinder-VolumeRabbitMQHAproxySAN/FusionStorage/OtherGaussdb1...