本节是建立 Volume 的第三部分,也是最后一部分:cinder-volume 的处理过程。api
第一部分和第二部分能够参考前面两个小节。
cinder-volume 经过 driver 建立 volume,日志为 /opt/stack/logs/c-vol.log。ide
与 cinder-api 和 cinder-scheduler 执行方式相似,cinder-volume 也启动了一个 Flow 来完成 volume 建立工做,Flow 的名称为 volume_create_manager。日志
volume_create_manager 首先执行 ExtractVolumeRefTask, OnFailureRescheduleTask, ExtractVolumeSpecTask, NotifyVolumeActionTask 为 volume 建立作准备。ci
接下来 CreateVolumeFromSpecTask 执行 volume 建立任务。io
由于 volume provider 为 LVM, CreateVolumeFromSpecTask 经过 lvcreate 命令在 VG stack-volumes-lvmdriver-1 中建立了一个 1G 的 LV,cinder-volume 将这个 LV 做为volume。 新建立的 LV 命名为“volume-1e7f6bd7-ce11-4a73-b95e-aabd65a5b188”,其格式为“volume-<volume ID>”。 im
最后,CreateVolumeOnFinishTask 完成扫尾工做。
命名
至此,volume 成功建立,Flow volume_create_manager 结束。img
下一节咱们讨论如何将新建的 volume 挂到 instance 上,即 attach 操做。vi