问题场景:
删除openstack中的僵尸实例
解决方案:
第一步:计算节点上关闭实例
virsh destroy instance-0000045a
virsh undefine instance-0000045a
第二步:删除nova数据库中记录
SET @bianliang:='instance-uuid';
delete from security_group_instance_association where instance_uuid=@bianliang;
delete from instance_info_caches where instance_uuid=@bianliang;
delete from block_device_mapping where instance_uuid=@bianliang;
delete from instance_actions_events where action_id in (select id from instance_actions where instance_uuid=@bianliang);
delete from instance_actions where instance_uuid=@bianliang;
delete from instance_faults where instance_uuid=@bianliang;
delete from instance_extra where instance_uuid=@bianliang;
delete from instance_system_metadata where instance_uuid=@bianliang;
delete from instance_id_mappings where uuid =@bianliang;
delete from virtual_interfaces where instance_uuid=@bianliang;
delete from instances where uuid=@bianliang;
第三步:删除placement数据库中的记录
placement是负责调度的服务,库中记录了计算节点上云实例的信息,如果不删除这里面的实例记录,会影响资源的调度(即使机器上没有实例,而且dashboard上显示有资源的时候,调度到机器上还是会失败)
SET @bianliang:='instance-uuid';
delete from allocations where sonsumer_id=@bianliang;
我的openstack版本是T版,其他的版本可能表啥的有点区别。