openstack——理解煤渣服务

,,,,煤渣是openstack中提供块存储服务的组件,主要是为虚拟机实例提供虚拟磁盘。

通过某种协议(SAS, SCSI,圣,iSCSI等)挂接裸硬盘,然后分区,格式化创建的文件,或者直接使用裸硬盘存储数据的方式叫做块存储,每个裸硬盘通常也叫做卷(卷)。

通过nfs, cifs等协议,需要挂载的远程文件系统,叫做文件系统存储。

<强>一、理解块存储服务

<>强,,,,在openstack中提供对卷从创建到删除整个生命周期的管理,从虚拟机实例的角度来看,挂载的每一个卷都是一块硬盘.openstack提供块存储服务的是煤渣,具体功能如下:


,,,,提供api使用户能够查询和管理卷,卷快照以及卷类型

,,提供scheuler调度卷创建请求,合理优化存储资源的分配

,,通过司机架构支持多种后端存储方式

 openstack -理解煤渣服务



1) cinder-api

,,,,接收api请求,调用cinder-volume


2) cindere-volume

,,,,管理卷的服务,体积与供应商协调工作,管理体积的生命周期,运行cinder-volum的服务的节点被称作为存储节点


3) cinder-scheduler

,,调度器通过调度算法选择最合适的存储节点创建卷


4)体积提供者

数据的存储设备,为卷提供物理存储空间


5)消息队列

煤渣各个子服务通过消息列队实现进程间通信和相互协作


6)数据库存储渣一些数据库,一般使用mysql




<强>二、煤渣流程

<强>  openstack -理解煤渣服务

<强>

,,1)用户向API发送请求

<强>,, 2)api对请求做一些必要的处理后,向消息传递(rabbitmq)发送信息,让调度器创建一个卷

,,3)调度程序从消息获取到api发送的消息,然后执行调度算法,从若干存储节点选出节点一个

,,4)调度程序向消息发送一条消息,让存储节点创建卷

,,5)存储节点的体积从消息中获取到调度器发给它的消息,然后通过司机在体积提供者上创建卷


三、煤渣组件详解

,,,, 1, cinder-api

cinder-api是整个煤渣组件的门户,所有的煤渣的请求都首先由nova-api处理,它向外界暴露了若干HTTP REST API接口,在kesystone中可以查询到cinder-api的端点。

 

,客户端可以将请求发送到endponits指定的地址,向cinder-api请求操作,大部分的api请求都可以在仪表板上进行

cinder-api对接收到的http api请求会做如下处理:

检查客户端传入的参数是否合法有效

调用煤渣其他子服务的处理客户端请求

将煤渣其他子服务返回的结果序列号返回给客户端


2, cinder-scheduler

创建体积时,cinder-scheduler会基于容量、体积等型条件选择出最合适的存储节点,然后让其创建卷

(1)过滤调度器

过滤调度器是cinder-schedule默认的调度器

在/etc/煤渣/煤渣。配置中,煤渣通过schedulerdriver, schedulerdefault_filters和调度器defaultweighers三个参数来配置cinder-scheuler

皁penstack——理解煤渣服务"

调度器调度过程如下:

通过过滤器(过滤器)选择满足条件的存储节点

通过权重计算(权重)选择最优(权重最大)的存储节点


(2)滤波器

当滤波器调度程序需要执行调度操作时,会让过滤器对计算节点进行判断,过滤器返回真实或者假

配置文件中schedulerdefaultfilters选项指定过滤调度器使用的过滤器,默认如下

皁penstack——理解煤渣服务"

过滤调度器将按照列表中顺序依次过滤

& lt; 1比;AvailabilityZoneFilter

为提高容灾性和提供隔离服务,可以将存储节点和计算节点划分不同可用性区域,创建体积时,需要指定体积所属的可用性区域

 openstack -理解煤渣服务

openstack——理解煤渣服务