事件过程:
1 由于机房中2台风扇故障导致刀片机过热,需要停机维护,因此关闭了刀片机。刀片机中安装的是CentOS6.3,其中部署了kvm并虚拟了6台服务器。
2 维护结束,再次启动刀片机后,发现其中2台服务器没有自启动,因此打算人工启动。但出现无法启动的问题,如图
3 谷歌了一下报错信息,很快找到了解决办法(看来出这种问题并不少见)如下:
在宿主操服务器作系统中使用 virsh managedsave-remove 虚拟机名
例如:
# virsh managedsave-remove mg2
执行了这段命令以后就可以正常启动虚拟机了。
4 问题原因分析:在虚拟机运行过程中关闭宿主服务器就有可能导致这问问题,个人推测是由于宿主服务器中的kvm虚拟机控制器与安装在kvm中的虚拟机会话被异常重置,因此使用virsh managedsave-remove命令删除会话,kvm重建会话后就可以正常使用了。
顺便吐个槽:2011年就有人出过这种问题,怎么还没解决,看来这个bug优先级不高啊。
ps,虚拟机日志路径在/root/.virt-manager/virt-manager.log,可以通过查看日志排查;
ps2,如果删除会话时,还出现如下信息,
Domain xxxx has no manage save image; removal skipped
而虚拟机仍不能启动,那说明宿主机内存不足,需要调整内存。