前天终于把openstack的主要组件安装完成,想着创建instance来试试效果,以最小配置创建instance失败,然后左调试,右调试,不停的测试创建instance,一不小心就达到了租户配额的10个instance限额,再创建就被系统拒绝了。然而从dashboard界面还不能删除instance,一直卡顿在删除状态,愁死我了,instance创建失败的问题还没解决,又出现这僵尸实例问题,没法删除和新建实例调试了。

   经过一番百度,google,终于找到删除僵尸实例的方法,由于我的实例是没有创建成功的,所以compute节点上实际是没有实例数据的,只是在数据库中有相应的记录,按着网上的方法,删除了相关实例的数据库条目。具体如下:

   登陆mysql,试用nova数据库,找出要删除的实例id,然后删除

Openstack 还原租户配额_资源限额

delete from instances where id = ‘12’;

直接删除会触发外键限制错误,需先暂时关闭外键检查,

set foreign_key_checks=0;

delete from instances where id = ‘12’;

恢复外键检查

set foreign_key_checks=0;


    至此,虽然实例数据库数据已删除,但是租户配额显示的实例占用情况还存在,这是因为配额检查时的相关数据库条目还存在,需更新相关的配额限制数值;经过几番搜索,找到了相关的配额数据库表项quota_usages。详见链接:http://blog.csdn.net/hackerain/article/details/8223125;

查看quota_usages资源占用情况:(示例只启用了一个最小实例)

Openstack 还原租户配额_ 僵尸实例_02

 更新相关资源条目即可

update quota_usages set in_use=0 where resource = "instances";

update quota_usages set in_use=0 where resource = "ram";

update quota_usages set in_use=0 where resource = "cores";


再开打dashboard,资源限额已还原,可以继续创建实例了。