Detach Volume 操作 - 每天5分钟玩转 OpenStack(55)
2016-07-04 06:25
447 查看
![](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160703-1467498541555018958.jpg)
上一节我们成功地通过 attach 操作为 instance 添加了 volume,而与之相对的操作是 detach,就是将 volume 从 instance 上卸载下来。
下图是 Detach 操作的流程图
![](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160703-1467498541721067251.jpg)
向 cinder-api 发送 detach 请求
cinder-api 发送消息
nova-compute detach volume
cinder-volume 删除 target
下面我们详细讨论每一个步骤。
向 cinder-api 发送 attach 请求
客户(可以是 OpenStack 最终用户,也可以是其他程序)向 cinder-api 发送请求:“请 detach 指定 instance 上的 volume。这里我们将 detach instance “c2”上的 volume “vol-1” 进入 GUI 操作菜单Project -> Compute -> Volumes。
![](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160703-1467498541821036893.jpg)
选择 volume “vol-1”,点击“Manage Attachments”。
![](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160703-1467498541887045272.jpg)
点击 “Detach Volume”。
![](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160703-1467498541987049475.jpg)
再次确认。
![](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160703-1467498542076062861.jpg)
cinder-api 将接收到 detach volume 的请求。日志文件在 /opt/stack/logs/c-api.log。
![](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160703-1467498542164019883.jpg)
cinder-api 发送消息
cinder-api 发送消息 detach 消息。 cinder-api 没有打印发送消息的日志,只能通过源代码查看 /opt/stack/cinder/cinder/volume/api.py,方法为 detach。![](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160703-1467498542250083910.jpg)
Detach 的操作由 nova-compute 和 cinder-volume 共同完成:
首先 nova-compute 将 volume 从 instance 上 detach,然后断开与 iSCSI target 的连接。
最后 cinder-volume 删除 volume 相关的 iSCSI target。
后面两个小节将详细讨论这两个步骤。
nova-compute detach volume
nova-compute 首先将 volume 从 instance 上 detach 。 日志为 /opt/stack/logs/n-cpu.log。![](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160703-1467498542361067256.jpg)
这时通过 virsh edit 可以看到 XML 配置文件中已经不在有 volume 的虚拟磁盘。
![](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160703-1467498542434022460.jpg)
接下来断开与 iSCSI target 的连接。
![](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160703-1467498542550026228.jpg)
具体有下面几个步骤:
将缓存中的数据 Flush 到 volume。
![](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160703-1467498542614058488.jpg)
删除计算节点上 volume 对应的 SCSI 设备。
![](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160703-1467498542701039067.jpg)
通过 iscsiadm 的 logout,delete 操作断开与 iSCSI target 的连接。
![](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160703-1467498542795022779.jpg)
compue-nova 完成了 detach 工作,接下来 cinder-volume 就可以删除 volume 相关的 target 了。
cinder-volume 删除 target
存储节点 cinder-volume 通过 tgt-admin 命令删除 volume 对应的 target。日志文件为 /opt/stack/logs/c-vol.log。![](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160703-1467498542908033673.jpg)
至此 detach volume 操作已经完成,GUI 也会更新 volume 的 attach 信息。
![](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160703-1467498543029093265.jpg)
以上就是 detach volume 的分析,下一节我们讨论 extend 操作。
![](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160703-1467498543097032221.jpg)
相关文章推荐
- Detach Volume 操作 - 每天5分钟玩转 OpenStack(55)
- Tomcat部署Web应用方法总结
- OpenCV 鼠标手动绘制掩码图像
- OpenCV 鼠标手动绘制掩码图像
- 揭开Linux操作系统的Swap交换区之谜
- 揭开Linux操作系统的Swap交换区之谜
- 高效Linux用户需要了解的命令行技能
- 高效Linux用户需要了解的命令行技能
- bootchart--检测linux启动性能的软件
- bootchart--检测linux启动性能的软件
- 掌握 Linux 调试技术
- 掌握 Linux 调试技术
- linux虚拟机拓展大小
- Linux on Power 上的调试工具和技术
- Linux on Power 上的调试工具和技术
- Linux共享库两种加载方式简述
- Linux共享库两种加载方式简述
- Inotify: 高效、实时的Linux文件系统事件监控框架
- Inotify: 高效、实时的Linux文件系统事件监控框架
- linux 内核与用户空间通信之netlink使用方法