本節是建立 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