Openstack无法从仪表板中删除实例

时间:2014-03-05 10:25:15

标签: openstack

Openstack Havana有66个实例。我认为这些实例是僵尸实例。单击Terminate Success info时,仪表板显示Terminate Instance。但该实例仍存在于仪表板上,其状态为Running。我已经杀死了服务器上的所有qemu-kvm程序。

在Mysql中,数据库nova仍然存在大量数据。我不知道从哪里开始删除这些数据。有人可以给我一些建议吗?非常感谢。

3 个答案:

答案 0 :(得分:8)

我是在OpenStack的 Icehouse 版本中做到的,也许你可以将它映射到哈瓦那版本:

  1. 登录数据库(您应该在控制台中看到> mysql

  2. 选择nova数据库:

    use nova;

  3. 将表实例中的行标记为已删除(' 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;

  4. 正确更新表 instance_info_caches 中的缓存:

    update instance_info_caches set deleted_at = updated_at, deleted = id where deleted = 0;

  5. 更新 fixed_ips 表:

    update fixed_ips set instance_id = NULL, allocated = 0, virtual_interface_id = NULL where deleted = 0;

  6. 注意:如果列已删除包含值不等于零,那么这似乎是说的方式该行应该被删除。当我通过API删除实例时,OpenStack似乎选择 id 作为已删除的值。

    来源http://www.databaseskill.com/4605135/

答案 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;