openstack中删除虚拟主机,状态一直deleting

来源:互联网 发布:centos ssh免密码登录 编辑:程序博客网 时间:2024/05/22 06:08

一、我重新启动了该机器。之后想删除没有创建成功的虚拟机(没有打开cpu的vt)。结果发现状态一直为deleting状态。在这个状态下创建虚拟机也失败。

 

二、分析:在/var/log/nova/nova-compute.log的log找到例如以下的信息:

---------------------------------------------------------------------------------------------------------

2012-08-13 14:30:45 CRITICAL nova [-] Instance instance-00000002 could not be found.

---------------------------------------------------------------------------------------------------------

接着又发现nova-compute(service nova-compute status)的状态为stop,重新启动不能成功。

 

三、处理:

最后我改动了nova数据库中的instance-00000002的deleted,把它变成1。

mysql> select * from instances\G
mysql> update instances set deleted=1 where uuid=' ****';   (注意:依据不同的版本号deleted的值不定,有些版本号会改成相应的ID号。)

之后,dashboard的页面中发现已经删除了。

重新启动nova-compute,再次创建虚拟机。状态都为active。

 

问题的思考方向:虚拟机的操作(创建、删除等)一定跟nova-compute有关。


----------------------------------------------------------------------------------------------------
2014年3月25日更新
在依照以上操作后,发现尽管实例已经删除。例如以下图:



假设要手动删除一个instance:

 



可是在概况中依旧出现了该实例占用内存、cpu的信息:例如以下图的windows7-vm,这个instance已经做了上面的操作进行删除,可是这里还在显示。


 
然后,为了避免干扰測试,正确删除了testwin后,ssh连接上主机。打开mysql数据库,进入nova数据库。
使用show tables命令找到以下三个表:
quota_classes      #打开发现为空表
quota_usages      #这里面的内容表示为上图中的图饼。
quotas                   #这里面表示的是一些配额的限制值。

这时候,查看quota_usages表
select  *  from quota_usages;

 
将表中的in_use 的值改为0。再刷新dashboard,就看到正常的图饼了。