Openstack Havana有66个实例。我认为这些实例是僵尸实例。单击Terminate Success info
时,仪表板显示Terminate Instance
。但该实例仍存在于仪表板上,其状态为Running
。我已经杀死了服务器上的所有qemu-kvm
程序。
在Mysql中,数据库nova
仍然存在大量数据。我不知道从哪里开始删除这些数据。有人可以给我一些建议吗?非常感谢。
答案 0 :(得分:8)
我是在OpenStack的 Icehouse 版本中做到的,也许你可以将它映射到哈瓦那版本:
登录数据库(您应该在控制台中看到> mysql
)
选择nova数据库:
use nova;
将表实例中的行标记为已删除(' s" soft-delete"):
update instances set deleted_at = updated_at, deleted = id, power_state = 0, vm_state = "deleted", terminated_at = updated_at, root_device_name = NULL, task_state = NULL where deleted = 0;
< - '删除' 全部您的实例!如果要为 where-clause 选择其他列,请使用show columns from instances;
。
正确更新表 instance_info_caches 中的缓存:
update instance_info_caches set deleted_at = updated_at, deleted = id where deleted = 0;
更新 fixed_ips 表:
update fixed_ips set instance_id = NULL, allocated = 0, virtual_interface_id = NULL where deleted = 0;
注意:如果列已删除包含值不等于零,那么这似乎是说的方式该行应该被删除。当我通过API删除实例时,OpenStack似乎选择 id 作为已删除的值。
答案 1 :(得分:3)
您可以使用以下命令手动重置VM状态并删除
$ nova reset-state c6bbbf26-b40a-47e7-8d5c-eb17bf65c485
$ nova delete c6bbbf26-b40a-47e7-8d5c-eb17bf65c485
http://docs.openstack.org/admin-guide-cloud/content//reset-state.html
答案 2 :(得分:0)
如何恢复软删除? 我已经使用了以下命令:
update instances set deleted_at = updated_at, deleted = id, power_state = 0, vm_state = "deleted", terminated_at = updated_at, root_device_name = NULL, task_state = NULL where deleted = 0;