1、Cinder下发的流程
(1)Cinder-api接受上层发送的创建请求,然后把请求下发给Cinder-scheduler调度服务
(2)Cinder-scheduler调度服务,计算出哪个主机更适合创建,计算出来之后再把请求下发到Cinder-Volume进行真正的创建操作
(3)Cinder-Volume是真正执行创建操作的,但是再创建之前要知道你的Cinder-Driver驱动是什么,然后调用驱动进行创建卷的操作,有点类似于Nova-Compute
注意:以上三个小组件都是在控制节点上的
(4)Cinder-Driver驱动(在每个计算节点上都会有Cinder-Driver),例如Cinder-create创建磁盘发起的操作是openstack里面的命令,存储是不知道,这时候驱动的作用就是把这些命令转化成对应厂商存储能明白的指令
(5)在Cinder中,控制节点的Cinder组件是负责创建的,虚拟机所在节点的Nova是负责挂载操作,在日志文件中可以看到挂载的操作,挂载也叫附加,虚拟机所在节点/var/log/nova/nova-compute.log,控制节点在/var/log/cinder/volume.log
(6)挂载操作,实际上是先挂载给物理机(也就是虚拟机所在的节点),再通过物理机的映射操作把挂载的云硬盘转为虚拟机的vda或者vdb。在物理机的/etc/libvirt/qemu/instance-0000000f.xml配置文件里面,找到/dev/disk/by-path/ip-192.168.100.10:3260-iscsi-iqn.2010-10.org.openstack:volume-fadda155-4300-4698-b0ba-1da5659d3f5b-lun-0这一行,查看这个路径发现实际上这是个链接文件,指向的是../sda,然后再通过instance这个文件转换成vda或者vdb,所以在虚拟机中呈现的vda或者vdb实际上就是sdb