cinder卷删除不掉解决方法
现象:创建的卷虚机人为或代码干预导致虚机删除掉但是卷还在in-use的状态,此种情况想要detach卷报错虚机不存在,想删除卷也删不掉
原因为: nova删除虚机时自动分离卷,但由于rabbitmq或者其他原因导致卸载卷不成功,但nova未能对此结果处理,还是将虚机删除掉了,就会导致这种情况
#可以发现虚拟机已经删除掉,但是卷还在挂载着
[root@controller ~]# openstack volume list
+--------------------------------------+------+--------+------+---------------------------------------------------------------+
| ID | Name | Status | Size | Attached to |
+--------------------------------------+------+--------+------+---------------------------------------------------------------+
| 77664599-c422-4f32-afe8-49baa5f8c9f2 | | in-use | 20 | Attached to b4c93fae-6177-47c0-bebe-094dd73f2614 on /dev/vda |
+--------------------------------------+------+--------+------+---------------------------------------------------------------+
#无法删除的卷,导致报错,提示需要修改卷状态
[root@controller ~]# openstack volume delete 77664599-c422-4f32-afe8-49baa5f8c9f2
Failed to delete volume with name or ID '77664599-c422-4f32-afe8-49baa5f8c9f2': Invalid volume: Volume status must be aor \
error or error_restoring or error_extending or error_managing and must not be migrating, attached, belong to a groupapshots \
or be disassociated from snapshots after volume transfer. (HTTP 400) (Request-ID: req-47970140-7b78-4cd1-b84b-9b5)
1 of 1 volumes failed to delete.
#用命令改变卷的状态为available
[root@controller ~]# cinder reset-state 77664599-c422-4f32-afe8-49baa5f8c9f2 --state available
[root@controller ~]# openstack volume list
+--------------------------------------+------+-----------+------+------------------------------------------------------+
| ID | Name | Status | Size | Attached to |
+--------------------------------------+------+-----------+------+------------------------------------------------------+
| 77664599-c422-4f32-afe8-49baa5f8c9f2 | | available | 20 | Attached to b4c93fae-6177-47c0-bebe-094dd73f2614 on |
+--------------------------------------+------+-----------+------+------------------------------------------------------+
#第二次删除还是导致失败
[root@controller ~]# cinder delete 77664599-c422-4f32-afe8-49baa5f8c9f2
Delete for volume 77664599-c422-4f32-afe8-49baa5f8c9f2 failed: Invalid volume: Volume status must be available or error_restoring \
or error_extending or error_managing and must not be migrating, attached, belong to a group, have snapshots associated from snapshots \
after volume transfer. (HTTP 400) (Request-ID: req-156ca339-2971-4ff3-a7a3-520f3a088a5e)
ERROR: Unable to delete any of the specified volumes.
解决方法如下:
- 在控制节点先show一下问题卷 加上debug 调取接口
cinder --debug show 77664599-c422-4f32-afe8-49baa5f8c9f2
#获取到的链接
http://controller:8776/v3/6535a5a0ef0c4e9caa42912d02bd7d54/volumes/77664599-c422-4f32-afe8-49baa5f8c9f2
- 获取token认证
openstack token issue
#获取的token值
gAAAAABexeM59k1IxnaprSQnMRf0eMI8lBD9Q5jlBC97A-8thQ8PFsljLuxqoGo98cnwPfOAbNny7r0T14etakmsL7Smfmjlb25frlSnSqG5mCZOp5chJ0OYtc7P2paGgjn6STlkGxFoaIH7lCe0ehwB-DjYWrCpjC-oH9Wrh1UwaE4Vvmf29rw
- 最后要去数据库查询
volume_attachment表格中这个卷对应的挂载的 id
MariaDB [(none)]> use cinder
MariaDB [cinder]> select * from volume_attachment where volume_id='77664599-c422-4f32-afe8-49baa5f8c9f2';
#获取到的id值
5ed3a5ca-c6b3-4fcd-899a-146f3cf9db80
- 将以上查询到的信息集成修复接口
curl -g -i -X POST
http://controller:8776/v3/6535a5a0ef0c4e9caa42912d02bd7d54/volumes/77664599-c422-4f32-afe8-49baa5f8c9f2/action -H “User-Agent: python-cinderclient” -H “Content-Type: application/json” -H “Accept: application/json” -H "X-Auth-Token:gAAAAABexeM59k1IxnaprSQnMRf0eMI8lBD9Q5jlBC97A-8thQ8PFsljLuxqoGo98cnwPfOAbNny7r0T14etakmsL7Smfmjlb25frlSnSqG5mCZOp5chJ0OYtc7P2paGgjn6STlkGxFoaIH7lCe0ehwB-DjYWrCpjC-oH9Wrh1UwaE4Vvmf29rw" -d ‘{“os-detach”: {“attachment_id”: “5ed3a5ca-c6b3-4fcd-899a-146f3cf9db80”}}’
控制节点执行完此命令 重新查询该卷 已经变为了available状态 重新执行cinder delete id 删除掉就可以了;
[root@controller ~]# openstack volume list
+--------------------------------------+------+-----------+------+-------------+
| ID | Name | Status | Size | Attached to |
+--------------------------------------+------+-----------+------+-------------+
| 77664599-c422-4f32-afe8-49baa5f8c9f2 | | available | 20 | |
+--------------------------------------+------+-----------+------+-------------+
[root@controller ~]# cinder delete 77664599-c422-4f32-afe8-49baa5f8c9f2
Request to delete volume 77664599-c422-4f32-afe8-49baa5f8c9f2 has been accepted.
[root@controller ~]# openstack volume list
为空
ceph存储上也被删除
#删除前
[root@cephnode01 ~]# rbd ls volumes
volume-77664599-c422-4f32-afe8-49baa5f8c9f2
#删除后
[root@cephnode01 ~]# rbd ls volumes
为空
智能推荐
调用removeViewInternal、removeView 屏幕还是显示被删除界面 的解决方法和源码分析
这是在使用Fragmentation时遇到一个问题,在这个库中很多人都遇到这个问题。追求极致体验的我,只好对源码进行修改了。源码的问题,我已经修改了,会在近期开源出来。 下面把这个问题的核心抽取出来,进行分析。 问题: 1、removeViewInternal 后,屏幕上还是显示那个被删除的布局界面 2、虽然屏幕上显示那个被删除的布局界面,但是可以点击事件可以传递到后面的布局上。 3、使用Layo...
Canal学习之Canal报错position位置的mysql binlog被删除解决方法
目录 Canal报错position位置的mysql binlog被删除解决方法 解决方法:不考虑中间的binlog日志,从最新的binlog开始读取 备注:如果adapter客服端有配置了es索引,需要把es索引重建 其他:如果配置了es消费binlog那么如果还要在同服务消费数据获取binlog需要建立两个example Canal报错p...
gitlab-ci500错误、删除项目报错500错误的解决方法
#起因 gitlab备份时不知道需要备份以下三个文件,而后导致了一系列的问题。截至11.11-ee,这个问题依然存在。 #操作前请备份好你的文件 下面是故障信息 解决方法 进入gitlab 命令行 输入如下配置 输入你CI\CD报错的项目名称 得到的结果如下 运行此命令后,下次进入项目的ci / cd设置页面时将生成一个新令牌。 此时你就可以删除项目了,不会再报错500。 方法2: 不太清楚为什么...
201026-Outlook自动删除POP/SMTP邮件分析及解决方法
原因分析:Link When you connect to your POP3 mail server from your first computer, your email messages are downloaded to Outlook. When you connect from your second computer, your email messages are downloa...
猜你喜欢
JPA实现“一对一”映射
一 代码位置 https://gitee.com/cakin24/code/tree/master/08/JpaOneToOneDemo 二 关键代码 1 Student 2 Card 3 测试代码 三 控制台打印 四 数据库数据如下...
面向对象与UML
文章目录 一. 什么是UML 1. 统一建模语言(The Unified Modeling Language,UML) 2. UML基本图形类型 (1). 活动图(activity diagram) (2). 用况图(use case diagram) (3). 顺序图(sequence diagram) (4). 类图(class diagram) (5). 状态图(state diagram)...
SpringBoot之从零搭建博客网站
前言 为什么想要搭建这个博客? 程序员从业8年,期间学过一些东西,用过一些东西,然后遗忘,然后再次翻书,周而复始,少有总结的时候。 少时学编程,有时颇有趣味。有所悟、有所得、豁然开朗、别有洞天的感觉,就像足球场上一个潇洒利落的拉球转身过人,很美妙。 然而一路走来,发现除了书柜里面看过的书,熟稔于胸的并没有多少,总需要一遍遍地翻书。 为了更好地记忆,将点滴记录于斯,算是一个学习日志,便于自己回顾。 ...
struts2标签库常用标签详解
struts2标签库常用标签详解 struts2标签主要分两种: 注意:标签的属性可以被赋值为一个静态的值或一个 OGNL 表达式. 如果在赋值时使用了一个 OGNL 表达式并把它用 %{} 括起来, 这个表达式将会被求值. 1.通用标签库(控制标签、数据标签): 2.表单标签库 <s:property> 将OGNL表达式的内容输出到页面 value属...
