openstack 虚机热迁移问题:虚机状态一直处于迁移中的情况处理
前提:在偶尔的虚机热迁移中,发现虚机一直属于迁移状态中。 但是查看后台流量监控,发现没有流量已经下来了。然后在目标机器上查看,发现kvm已经在目标机器上。
1、查看kvm 实际所处宿主机方法;
a、拿到一直处于迁移状态的虚机ID
b、查看虚机对应的kvm实例名称
web界面:管理员 | 系统 | 虚拟机管理器 | 选择“compute-8.ops.ft1”
通过实例ID,获取到实例名称: instance-00000a57
c、在目标宿主机上查看 kvm 实例是否存在:
d、 在原宿主机上查不到现有的实例进程。
所以问题来了: 虚机一直处于迁移中,但是kvm 已迁移到目标宿主机。
解决办法:
第一种:如果虚机可以重启。 在后台修改虚机状态,然后重启虚机后重新迁移。
1、修改状态 # openstack server set --state active d28c79b3-460b-4163-981a-b5d9f5eb9d00
2、重启
3、重新迁移
第二种:修改数据库记录,(必须确认处于以上问题,否则后期无法通过控制台操作虚机)
1、修改状态 # openstack server set --state active d28c79b3-460b-4163-981a-b5d9f5eb9d00
2、进入nova库中修改 instances 表记录
# UPDATE instances SET host='目标宿主机' where hostname='实例名称';
# UPDATE instances SET launched_on='目标宿主机' where hostname='实例名称';
# UPDATE instances SET node='目标宿主机' where hostname='实例名称';
附:查看 instances 表结构
# desc instances;