分享

openstack创建的虚拟机无法删除

string2020 发表于 2014-3-2 18:00:11 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 4 33987
提示: 作者被禁止或删除 内容自动屏蔽

已有(4)人评论

跳转到指定楼层
pig2 发表于 2014-3-2 18:22:31
本帖最后由 pig2 于 2014-3-2 18:23 编辑
在我们创建实例的过程中,由于种种错误的操作,会产生了大量状态为 ERROR 或 BUILD 的僵尸实例,主要原因出现在 RabbitMQ 服务,中途有很多连接都 timeout 了。这些僵尸实例创建不成功或者根本就没有运行,只是在 nova 数据库里有纪录而已,直接用 nova delete 命令无法删除,可以进行强制删除。下面方法你可以尝试一下。

首先,清理instance目录,看看对应的哪些instance是僵尸实例,有的话直接通过# rm -rf删除即可:
比如:instance-00000010是僵尸实例
  1. # ls /var/lib/nova/instances/
复制代码
可以看到nova文件下先存在的实例:
_base  instance-00000010  instance-00000011
删除实例instance-00000010:
  1. # rm -rf /var/lib/nova/instances/instance-00000010
复制代码
然后清理 nova 数据库,你可以直接登陆数据库后手动删除纪录,具体的操作方法网上有很多。不过这是常见操作,最好还是保存成一个脚本,便于你以后再次使用数据库。方法如下:
  1. # nano deletevm.sh
  2. #!/bin/bash
  3. mysql -uroot << EOF
  4. use nova;
  5. DELETE a FROM nova.security_group_instance_association
  6. AS a INNER JOIN nova.instances AS b
  7. ON a.instance_id=b.id where b.uuid='$1';
  8. DELETE FROM nova.instance_info_caches WHERE instance_id='$1';
  9. DELETE FROM nova.instances WHERE uuid='$1';
  10. EOF
  11. # chmod +x deletevm.sh
复制代码

运行脚本
,比如删除 ID 为 efc6e9c7-4ef8-4350-9451-83bcfcafe101 的实例:
  1. # ./deletevm.sh efc6e9c7-4ef8-4350-9451-83bcfcafe101  
复制代码
  1. # nova-list  
复制代码
这样你可以看到,现在你的nova中存在的实例。




回复

使用道具 举报

string2020 发表于 2014-3-2 19:35:37
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

string2020 发表于 2014-3-2 19:54:12
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

SuperTong 发表于 2014-3-26 08:43:22
新手路过,看看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条