openstack卷连接状态异常处理方法
背景:最近工作时又发现了一次删除重建虚拟机时,卷连接状态为none,且为in-use(已使用),根据此时的状态发现不能用此卷进行虚拟机创建。
解决办法:解决办法有三种。
1、修改数据库
备份数据库
mysqldump -uroot -p -B --all-databases | gzip > all.sql.gz
use cinder ;
更新卷使用状态
update volumes set status =“available” where id=“卷ID” ;
更新卷连接状态
update volumes set attach_status =“detached” where id=“卷ID” ;
2、快照备份卷,利用快照新建卷创建虚拟机(推荐使用)
cinder snapshot-create --display-name 快照名 卷id
cinder create --snapshot-id 快照id --name 卷名 卷大小
这个方法相当于将之前的卷复制一份出来,新建一台同样的虚拟机
3、如果卷连快照都不能创建,以及出现其他异常情况,可以根据之前配置创建相同规格虚拟机,然后在存储层通过“替换卷”的方式(基于ceph环境)
查看卷是否存在
rbd info -p cinder volume-id
导出卷
rbd export -p cinder 卷名 /tmp/vm1.bk
删除新建虚拟机的卷
rbd rm -p cinder volume-id B
将备份的卷修改名字导入到ceph,实现卷替换。然后开启刚才创建的虚拟机
rbd import -p cinder /tmp/vm1.bk volume-id B
以上方法仅供参考