zoukankan      html  css  js  c++  java
  • openstack宿主机故障,虚拟实例恢复

    前言: 因为机房服务器运行不稳定的原因导致计算节点挂掉,然后上面的Centos7虚拟机在迁移之后开机报错。这个解决方法同样适用于其它操作系统的虚拟机。基于镜像创建的虚拟机实例。

    I/O error, can't read device /dev/vda 的报错信息

    首先做疏散先把虚拟实例从宿主机上面疏散到其它主机,关闭云主机。

    1.找到虚拟机的ID可以通过dashboard界面或者使用openstack server list命令,找到虚拟机的ID;然后查看虚拟机的详细信息。

    比如:

    nova show 8fa3d2eb-2401-48a9-850a-f800314c6950
    
    # 与这个命令相同功能的命令还有
    openstack server show ID
    

    连接到所在的计算节点,实例名称确定是哪台主机。

    注意要主机是开机状态才能看到

    通过ID可以确定该虚拟机实例的数据目录,如果openstack没有对接存储的话那么在这个目录下就会存在数据文件,因为对接了ceph所以信息在libvirt.xml的文件里面。

    cat /var/lib/nova/instances/8fa3d2eb-2401-48a9-850a-f800314c6950/libvirt.xml 里面就是它的vda的ID。

    2.当找到这个磁盘的ID之后,在ceph集群里面去查看这个设备

    rbd ls volumes | grep 8fa3d2eb-2401-48a9-850a-f800314c6950
    

    3.取消它原来有的一些属性

    # 查看卷
    rbd info volumes/0859147d-27aa-49a5-8373-7c515c4f3a02_disk
    
    #取消它原来有的一些属性;根据ceph的提示操作,因为有的属性linux不支持。
    rbd feature disable exclusive-lock object-map fast-diff  deep-flatten --image 8fa3d2eb-2401-48a9-850a-f800314c6950_disk -p volumes
    

    4.把它映射到本地

    rbd map 8fa3d2eb-2401-48a9-850a-f800314c6950_disk -p volumes
    
    # 如果映射不了执行下这个命令。
    rbd flatten volumes/8fa3d2eb-2401-48a9-850a-f800314c6950_disk
    

    5.使用命令修复

    # 有的可能修复不了就只能做好丢失数据的准备了
    xfs_repair -L /dev/rbd0p1
    
    可以ls /dev/rbd* 查看一下,rbd0p1表示的事一个启动分区。
    

    6.取消映射

    rbd unmap 8fa3d2eb-2401-48a9-850a-f800314c6950_disk -p volumes
    

    这个时候再重新启动就正常了。
    感谢网上上传资料分享的博客,我搜集并处理了故障,终结了出来,希望更多的人看到早日跳出坑!

  • 相关阅读:
    HUT1674 火柴棒等式
    HUT1694 零用钱 贪心
    HDU2201 熊猫阿波的故事
    HUT1685 奶牛的锻炼 DP
    HUT1675 找啊找啊找GF DP
    HUT1673 传纸条
    HUT1697 棋盘覆盖
    TYVJ1185 营业额统计 Splay
    HUT2602 01背包 记录路径
    POJ3468 A Simple Problem with Integers Splay树
  • 原文地址:https://www.cnblogs.com/gshelldon/p/14183586.html
Copyright © 2011-2022 走看看