物理机下电再上电后OpenStack虚拟机启动失败
问题现象描述
在OpenStack集成Ceph场景下,遭遇物理机强制下电或异常下电再重新上电后,虚拟机无法正常启动。
关键过程、根本原因分析
- 虚拟机启动时查看console日志,发现报错如下:
图1 虚拟机启动报错
- 在“/var/log/libvirt/qemu/”目录下查看对应虚拟机的日志信息,看到报错如下:
图2 libvirt报错日志
此时OpenStack运行正常,新下发虚拟机正常使用。结合日志分析判断为异常断电的虚拟机连接后端块存储异常。
结论、解决方案及效果
OpenStack运营维护过程中需要避免异常下电的严重情况发生,在不得不下电的情况下应该及时与租户和虚拟机使用人沟通,提前关闭虚拟机然后再下电。
异常下电后,虚拟机恢复措施如下:
- 查找对应虚拟机实例名称。
nova show $vm_id
vm_id为虚拟机ID,由nova list命令查询获取。
图3 虚拟机信息 - 记录虚拟机实例名称instance_name。
- 获取虚拟机后端存储信息。
virsh dumpxml $instance_name|grep -w source
图4 虚拟机后端存储信息记录标签属性protocol为rbd的source标签中的name属性的值为rbd_name。
instance_name为虚拟机实例名称。
- 对后端存储的卷进行挂载操作。
rbd map $rbd_name rbd unmap $rbd_name
- 重启恢复虚拟机。
nova reboot $vm_id
等待虚拟机重启完成即可正常使用。
父主题: OpenStack&Ceph