天天看點

Attach Volume 操作(Part II) - 每天5分鐘玩轉 OpenStack(54)cinder-volume 初始化 volume 的連接配接nova-compute 将 volume attach 到 instance

上一節我們讨論了 attach volume 操作中 cinder-api 的工作,本節讨論 cinder-volume 和 nova-compute 如何将 volume attach 到 Instance。

cinder-volume 接收到 initialize_connection 消息後,會通過 tgt 建立 target,并将 volume 所對應的 LV 通過 target export 出來。日志為 /opt/stack/logs/c-vol.log

下面的日志顯示:通過指令 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 完成。

計算節點作為 iSCSI initiator 通路存儲節點 Iscsi Target 上的 volume,并将其 attach 到 instance。日志檔案為 /opt/stack/logs/n-cpu.log

nova-compute 依次執行 iscsiadm 的 new, update, login, rescan 操作通路 target 上的 volume。

計算節點将 iSCSI target 上的 volume 識别為一個磁盤檔案。

然後通過更新 instance 的 XML 配置檔案将 volume 映射給 instance。

我們也可以通過 virsh edit 檢視更新後的 XML。

可以看到,instance 增加了一個類型為 block 的虛拟磁盤,source 就是要 attach 的 volume,該虛拟磁盤的裝置名為 vdb。

手工 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 操作。

本文轉自CloudMan6 51CTO部落格,原文連結:http://blog.51cto.com/cloudman/1794766