openstack 上的instance运行正常,但是power_state状态为NOSTATE,导致instance热迁移失败
现象
1、再一次热迁移时候发现迁移时候报以下错误
2、查看实例,发现虚拟机运行正常,但是 power_state 为 NOSTATE
查找原因
列出该虚拟机的历史操作
列出该实例的迁移记录
发现实际instance启动在node-53节点上,但是数据库记录在node-27节点上
manager.py 捕获到 InstanceNotFound 设置 vm_power_state=NOSTATE
得到原因
由于之前 migrate ERROR 导致 instance 实际启动的节点和数据库记录的节点不一致,comoute 通过 manager.py 捕获到 InstanceNotFound, 所以把 vm_power_state 状态置为 NOSTATE
解决方案
更新数据库,将数据库中的instance对应的host、node更新成实际instance启动的节点信息。硬重启虚拟机