删除僵尸实例脚本

在我们创建实例的过程中,由于种种错误的操作,会产生了大量状态为 ERROR 或 BUILD 的僵尸实例,经过进一步研究,发现其主要原因出现在 RabbitMQ 服务,中途有很多连接都 timeout 了。这些僵尸实例创建不成功或者根本就没有运行,只是在 nova 数据库里有纪录而已,直接用 nova delete 命令无法删除,那么如何进行强制删除instance呢?

 

首先,清理instance目录,看看对应的哪些instance是僵尸实例,有的话直接通过# rm -rf删除即可:

比如:instance-00000010是僵尸实例

# ls /var/lib/nova/instances/

可以看到nova文件下先存在的实例:
_base  instance-00000010  instance-00000011

删除实例instance-00000010:

# rm -rf /var/lib/nova/instances/instance-00000010

 

然后清理 nova 数据库,你可以直接登陆数据库后手动删除纪录,具体的操作方法网上有很多。不过这是常见操作,最好还是保存成一个脚本,便于你以后再次使用数据库。方法如下:

# nano deletevm.sh#!/bin/bashmysql -uroot << EOFuse nova;DELETE a FROM nova.security_group_instance_association  AS a INNER JOIN nova.instances AS b ON a.instance_id=b.id where b.uuid='$1';DELETE FROM nova.instance_info_caches WHERE instance_id='$1';DELETE FROM nova.instances WHERE uuid='$1';EOF# chmod +x deletevm.sh

运行脚本,比如删除 ID 为 efc6e9c7-4ef8-4350-9451-83bcfcafe101 的实例:

# ./deletevm.sh efc6e9c7-4ef8-4350-9451-83bcfcafe101
# nova-list

这样你可以看到,现在你的nova中存在的实例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值