上一節咱們討論了 attach volume 操做中 cinder-api 的工做,本節討論 cinder-volume 和 nova-compute 如何將 volume attach 到 Instance。api
cinder-volume 接收到 initialize_connection 消息後,會經過 tgt 建立 target,並將 volume 所對應的 LV 經過 target export 出來。日誌爲 /opt/stack/logs/c-vol.logspa
下面的日誌顯示:經過命令 tgtadm --lld iscsi --op show --mode target 看到已經將 1GB(1074MB)的 LV /dev/stack-volumes-lvmdriver-1/volume-1e7f6bd7-ce11-4a73-b95e-aabd65a5b188 經過 Target 1 export 出來了。日誌
Initialize connection 完成。ci
計算節點做爲 iSCSI initiator 訪問存儲節點 Iscsi Target 上的 volume,並將其 attach 到 instance。日誌文件爲 /opt/stack/logs/n-cpu.logget
nova-compute 依次執行 iscsiadm 的 new, update, login, rescan 操做訪問 target 上的 volume。it
計算節點將 iSCSI target 上的 volume 識別爲一個磁盤文件。io
而後經過更新 instance 的 XML 配置文件將 volume 映射給 instance。配置
咱們也能夠經過 virsh edit 查看更新後的 XML。 date
能夠看到,instance 增長了一個類型爲 block 的虛擬磁盤,source 就是要 attach 的 volume,該虛擬磁盤的設備名爲 vdb。im
手工 Shut off 並 Start instance,經過 fdisk -l 查看到 volume 已經 attach 上來,設備爲 vdb
GUI 界面也會更新相關 attach 信息
如今若是咱們在存儲節點執行 tgt-admin --show --mode target,會看到計算節點做爲 initiator 已經鏈接到 target 1。cinder-volume 剛剛建立 target 的時候是沒有 initiator 鏈接的,你們能夠將下面的截圖與以前的日誌作個對比。
以上就是 attach volume 的所有內容,下一節咱們討論 detach 操做。