删除僵尸实例脚本
2013-12-30 08:20
197 查看
在我们创建实例的过程中,由于种种错误的操作,会产生了大量状态为 ERROR 或 BUILD 的僵尸实例,经过进一步研究,发现其主要原因出现在 RabbitMQ 服务,中途有很多连接都 timeout 了。这些僵尸实例创建不成功或者根本就没有运行,只是在 nova 数据库里有纪录而已,直接用 nova delete 命令无法删除,那么如何进行强制删除instance呢?
首先,清理instance目录,看看对应的哪些instance是僵尸实例,有的话直接通过# rm -rf删除即可:
比如:instance-00000010是僵尸实例
可以看到nova文件下先存在的实例:
_base instance-00000010 instance-00000011
删除实例instance-00000010:
然后清理 nova 数据库,你可以直接登陆数据库后手动删除纪录,具体的操作方法网上有很多。不过这是常见操作,最好还是保存成一个脚本,便于你以后再次使用数据库。方法如下:
运行脚本,比如删除 ID 为 efc6e9c7-4ef8-4350-9451-83bcfcafe101 的实例:
这样你可以看到,现在你的nova中存在的实例。
首先,清理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中存在的实例。
相关文章推荐
- 删除僵尸实例的shell脚本
- openstack 删除僵尸实例
- Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
- OpenStack Juno 删除僵尸实例
- TCL 脚本实例: 从文件中删除字符串
- openstack 数据库实例删除脚本
- nova essex 手动删除僵尸实例
- [编程实例]vbs脚本删除桌面上的快捷方式腾讯QQ
- OpenStack Juno删除僵尸实例 - 虚机实例相关nova表
- ORACLE 11G 单实例 磁盘文件系统 DG 归档日志删除脚本 基于RED HAT LINUX 5.3 X86 64BIT
- openstack essex 删除僵尸实例
- openstack folsom 删除僵尸实例
- shell脚本删除30天之前的备份文件实例
- openstack 删除僵尸实例 删除实例 删除instance(非屏蔽外键)
- Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
- openstack 删除僵尸实例 删除实例 删除instance(非屏蔽外键)
- openstack shell脚本 利用curl 删除实例 API
- 通过loadrunner 11常规通用的C语言API类型的Vuser 方式,测试验证MySQL数据库插入、查询、修改、删除数据性能脚本实例
- Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
- 删除openstack僵尸实例