前天终于把openstack的主要组件安装完成,想着创建instance来试试效果,以最小配置创建instance失败,然后左调试,右调试,不停的测试创建instance,一不小心就达到了租户配额的10个instance限额,再创建就被系统拒绝了。然而从dashboard界面还不能删除instance,一直卡顿在删除状态,愁死我了,instance创建失败的问题还没解决,又出现这僵尸实例问题,没法删除和新建实例调试了。
经过一番百度,google,终于找到删除僵尸实例的方法,由于我的实例是没有创建成功的,所以compute节点上实际是没有实例数据的,只是在数据库中有相应的记录,按着网上的方法,删除了相关实例的数据库条目。具体如下:
登陆mysql,试用nova数据库,找出要删除的实例id,然后删除
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资源占用情况:(示例只启用了一个最小实例)
更新相关资源条目即可
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,资源限额已还原,可以继续创建实例了。