删除openstack僵尸实例
openstack的实例记录在nova数据库的instances表中,最简单的方式就是删除该记录。1.回收浮动IP
接触绑定
nova remove-floating-ip vm_namexx.xx.xx.xx
放入ip池
nova floating-ip-delete xx.xx.xx.xx
2.删除实例记录
2.1强制删除
默认mysql会开启外键关联,直接删除被关联的数据会产生如下错误
Cannot delete or update a parent row: a foreign key constraint fails
可通过关闭(SET FOREIGN_KEY_CHECKS=0;)来消除错误,删除完毕后在开启(SET FOREIGN_KEY_CHECKS=1;)。
use nova;
select id,display_name,uuid from instances;
set FOREIGN_KEY_CHECKS=0;
delete from instances where id='...';
set FOREIGN_KEY_CHECKS=1;
2.2.关联删除
即不关闭外键关联,在删除实例记录之前,先删除所有有关的数据。
2.2.1查询实例各项信息
select id,display_name,uuid frominstances;
2.2.2删除security_group_instance_association表中数据
delete fromsecurity_group_instance_association where instance_uuid='...';
2.2.3删除instance_info_caches表中数据
delete from instance_info_caches where instance_uuid='...'
2.2.4删除block_device_mapping表中数据
delete from block_device_mapping whereinstance_uuid='...';
2.2.5 删除fixed_ips表中数据
update fixed_ips set instance_uuid=NULL and whereinstance_uuid ='...';
2.2.6 删除instance_actions_events表中数据
delete A from instance_actions_events as Ainner join instance_actions as B on A.action_id = B.id where B.instance_uuid ='...';
2.2.7 删除instance_actions表中数据
delete from instance_actions whereinstance_uuid = '...';
2.2.8 删除instance_faults表中数据
delete from instance_faults whereinstance_uuid='...';
2.2.9 删除instance_system_metadata表中数据
delete from instance_system_metadata whereinstance_uuid='...';
2.2.10删除virtual_interfaces表中数据
delete from virtual_interfaces whereinstance_uuid='...';
2.2.11删除instances表中数据
delete from instances where uuid='...';
附上一键删除脚本
mysql -uroot -p <<EOF
use nova;
delete from security_group_instance_association where instance_uuid='$1';
delete from instance_info_caches where instance_uuid ='$1';
delete from block_device_mapping where instance_uuid='$1';
update fixed_ips set instance_uuid=NULL where instance_uuid ='$1';
delete A from instance_actions_events as A inner join instance_actions as B on A.action_id = B.id where B.instance_uuid = '$1';
delete from instance_actions where instance_uuid = '$1';
delete from instance_faults where instance_uuid='$1';
delete from instance_system_metadata where instance_uuid='$1';
delete from virtual_interfaces where instance_uuid='$1';
delete from instances where uuid='$1';
EOF
页:
[1]