deles 发表于 2012-9-16 19:43:12

强制删除 OpenStack Nova (Essex) 实例





上周在新版的 OpenStack (Essex) 上测了瞬间启动1000个 m1.tiny (512mb RAM) 实例的情况,主要看看 OpenStack 能否在短时间内正确处理大量创建实例请求以及各个节点、资源分配等情况。结果留下了大量状态为 ERROR 或 BUILD 的僵尸实例,这个结果和上个版本 Diablo 测试的情况差不多,没有明显改进,进一步调查发现主要原因在
RabbitMQ 服务,中途有很多连接都 timeout 了。这些僵尸实例没有运行或者创建不成功,只是在 nova 数据库里有纪录而已,直接用 nova delete 命令无法删除,那么如何强制删除呢?



# nova list+--------------------------------------+--------+--------+-------------------+|                  ID                  |Name| Status |      Networks   |+--------------------------------------+--------+--------+-------------------+| 6fc5696c-ed65-4e99-8fce-87dfc3cf36d9 |c23   | BUILD| private=10.0.0.23 || 98f5f421-581f-43d2-b1c7-f27cf5b61f02 |c30   | BUILD| private=10.0.0.30 || b768ebeb-4d73-4c31-8ec5-6bb2e90d4303 |c63   | ERROR| private=10.0.0.63 || b79e213b-055c-414f-a9f1-f230ed9aaae1 |c95   | ERROR| private=10.0.0.95 || efc6e9c7-4ef8-4350-9451-83bcfcafe101 |c12   | ACTIVE | private=10.0.0.12 |+--------------------------------------+--------+--------+-------------------+


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



# ls /var/lib/nova/instances/_baseinstance-00000023instance-00000030 # rm -rf /var/lib/nova/instances/instance-00000023


然后清理 nova 数据库,可以登陆数据库后手动删除纪录,不过这是常见操作,最好还是保存成一个脚本方便以后使用:



# vi 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


8月15日更新,才过了不到一个月,OpenStack 又更改了数据库表结构和字段,上面的脚本改为:



#!/bin/bashmysql -uroot << EOFuse nova;DELETE FROM nova.security_group_instance_association where instance_uuid='$1';DELETE FROM nova.instance_info_caches WHERE instance_uuid='$1';DELETE FROM nova.instances WHERE uuid='$1';EOF


运行脚本,比如删除 ID 为
6fc5696c-ed65-4e99-8fce-87dfc3cf36d9 的实例:



# ./deletevm.sh 6fc5696c-ed65-4e99-8fce-87dfc3cf36d9 # nova list+--------------------------------------+--------+--------+-------------------+|                  ID                  |Name| Status |      Networks   |+--------------------------------------+--------+--------+-------------------+| 98f5f421-581f-43d2-b1c7-f27cf5b61f02 |c30   | BUILD| private=10.0.0.30 || b768ebeb-4d73-4c31-8ec5-6bb2e90d4303 |c63   | ERROR| private=10.0.0.63 || b79e213b-055c-414f-a9f1-f230ed9aaae1 |c95   | ERROR| private=10.0.0.95 || efc6e9c7-4ef8-4350-9451-83bcfcafe101 |c12   | ACTIVE | private=10.0.0.12 |+--------------------------------------+--------+--------+-------------------+






janneyabc 发表于 2013-3-14 04:51:14

没看完~~~~~~ 先顶,好同志

LXY3800 发表于 2013-5-15 23:33:54

支持一下:lol

7007 发表于 2013-5-16 10:02:04

在一辆拥挤的公车上,一位女郎忽然叫了起来:别挤啦!别挤啦!把人家的奶都挤出来啦!(她拿着酸奶呢)。

云深处 发表于 2013-5-17 15:37:56

精典之极就是精斑!!!

狐狸情 发表于 2013-5-18 04:28:29

很多女明星不红的原因是因为没有张开腿*^_^*
页: [1]
查看完整版本: 强制删除 OpenStack Nova (Essex) 实例