鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

物理机下电再上电后OpenStack虚拟机启动失败

问题现象描述

在OpenStack集成Ceph场景下,遭遇物理机强制下电或异常下电再重新上电后,虚拟机无法正常启动。

关键过程、根本原因分析

  1. 虚拟机启动时查看console日志,发现报错如下:
    图1 虚拟机启动报错
  2. “/var/log/libvirt/qemu/”目录下查看对应虚拟机的日志信息,看到报错如下:
    图2 libvirt报错日志

    此时OpenStack运行正常,新下发虚拟机正常使用。结合日志分析判断为异常断电的虚拟机连接后端块存储异常。

结论、解决方案及效果

OpenStack运营维护过程中需要避免异常下电的严重情况发生,在不得不下电的情况下应该及时与租户和虚拟机使用人沟通,提前关闭虚拟机然后再下电。

异常下电后,虚拟机恢复措施如下:

  1. 查找对应虚拟机实例名称。
    nova show $vm_id

    vm_id为虚拟机ID,由nova list命令查询获取。

    图3 虚拟机信息
  2. 记录虚拟机实例名称instance_name。
  3. 获取虚拟机后端存储信息。
    virsh dumpxml $instance_name|grep -w source
    图4 虚拟机后端存储信息

    记录标签属性protocol为rbd的source标签中的name属性的值为rbd_name。

    instance_name为虚拟机实例名称。

  4. 对后端存储的卷进行挂载操作。
    rbd map $rbd_name
    rbd unmap $rbd_name

    rbd_name为步骤3中获取的。

  5. 重启恢复虚拟机。
    nova reboot $vm_id

    等待虚拟机重启完成即可正常使用。