Detach Volume 操作 - 每天5分钟玩转 OpenStack(55)
上一节我们成功地通过 attach 操作为 instance 添加了 volume,而与之相对的操作是 detach,就是将 volume 从 instance 上卸载下来。
下图是 Detach 操作的流程图
-
向 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。
选择 volume “vol-1”,点击“Manage Attachments”。
点击 “Detach Volume”。
再次确认。
cinder-api 将接收到 detach volume 的请求。日志文件在 /opt/stack/logs/c-api.log。
cinder-api 发送消息
cinder-api 发送消息 detach 消息。 cinder-api 没有打印发送消息的日志,只能通过源代码查看 /opt/stack/cinder/cinder/volume/api.py,方法为 detach。
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。
这时通过 virsh edit 可以看到 XML 配置文件中已经不在有 volume 的虚拟磁盘。
接下来断开与 iSCSI target 的连接。
具体有下面几个步骤:
-
将缓存中的数据 Flush 到 volume。
-
删除计算节点上 volume 对应的 SCSI 设备。
-
通过 iscsiadm 的 logout,delete 操作断开与 iSCSI target 的连接。
compue-nova 完成了 detach 工作,接下来 cinder-volume 就可以删除 volume 相关的 target 了。
cinder-volume 删除 target
存储节点 cinder-volume 通过 tgt-admin 命令删除 volume 对应的 target。日志文件为 /opt/stack/logs/c-vol.log。
至此 detach volume 操作已经完成,GUI 也会更新 volume 的 attach 信息。
以上就是 detach volume 的分析,下一节我们讨论 extend 操作。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
mac下使用docker-for-mac代替docker-toolbox
为什么使用Docker for Mac 启动时不需要再使用dokcer-machine设定启动的默认的环境,省去了使用virtualbox的过程; 享受和在linux下使用docker一样的体验. 总之,新工具更方便! mac下启动docker的工具发展 最开始使用boot2docker 再到Docker Toolbox 最近新出的 Docker for Mac 如何配置和使用Docker for Mac 基础配置 使用docker for mac基本的机器要求 1. Mac must be a 2010 or newer model, with Intel’s hardware support for memory management unit (MMU) virtualization; i.e., Extended Page Tables (E
- 下一篇
基于Docker的SaaS解决方案
容器技术加速应用云化 使用Docker的开发者都知道:在日常的运维开发过程中,开发人员和运维人员最大的冲突在于版本的不一致和应用程序的隔离问题。比如说,由于企业内存在开发、测试、预发、生产等N个环境,并且不同应用的开发语言可能不同。这就很容易导致同一个应用可能会由环境差异出现各种问题或者是在同一环境里,不同的应用之间产生冲突。 图一 容器技术加速应用云化 Docker的出现很好地解决了应用的隔离和一致性交付的问题。Docker本身的含义包括两类:第一类是打包格式;第二类是一种运行方式。在主机上安装Docker之后,通过将应用打包成镜像,实现各类环境中的无差别运行,同时镜像之间相互隔离。 既然Docker具有如此之大的优势,那么我们究竟要用Docker完成什么工作呢? 图二 Docker使用情况的调研结果 上图显示的是国外的开发者针对Docker的使用情况所做的调研结果。可以清楚地看到,DevOps的接受程度越来越高,并且有统计显示,80%的DevOps会基于容器技术来做。在微服务中,Docker的隔离运行环境对于服务的管理起到了很大的帮助; 此外,Docker还可以满足云端水平扩展、恢...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7设置SWAP分区,小内存服务器的救世主
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS关闭SELinux安全模块