openstack的系统断电后重启出现虚拟机不能启动的情况

时间:2022-09-19 16:49:36

在几台服务器(安装的CentOS7)上安装和配置了一个Openstack(Juno)系统,前几天因为供电事故,导致物理服务器突然断电,来电后启动服务器后,发现虚拟机不能重启了,检查发现是有iSCSI方面的错误(虚拟机除了自己的虚拟硬盘还挂载一个块设备作为第二块硬盘),后面发现解决方法是将虚拟机挂载的块设备先卸载然后重新挂载,就能正常启动虚拟机了。


进一步研究发现相关错误的服务有iscsid.service和target.service相关,可以用system -l status <service-name>查看相关信息。iscsid.service给出的信息大致是iSCSI客户端(initiator)不能连接到(target)。而target.service给出的信息是,无法restore。因此猜想target.service执行的是targetctl命令,该命令有三个动作,save, restore, clear,而target.service执行的是第二个动作,错误是在恢复的时候找不到原来保存的信息,我猜想如果执行了targetctl save之后再突然重启机器会不会就不会出现这个错误了。结果事实证明确实如此,在虚拟机正常运行不关闭的情况下,直接重启物理服务器(之前执行了targetctl save命令保存了相关信息),那么重启之后虚拟机可以正常启动了,相关服务target.service和iscsid.service也不会报错了。


参考资料:


http://blog.csdn.net/u011196209/article/details/10198195

http://docs.openstack.org/openstack-ops/content/maintenance.html