Openstack计算节点断电虚拟机磁盘数据恢复 - 简书 (jianshu.com)

背景

线上一台openstack计算节点突然宕机,造成上面的虚拟机启动之后服务正常进入操作系统,也无法进行正常迁移,通过进入虚拟机管理页面发现磁盘数据找不到,我们存储使用的是ceph。
报错信息:/run/initramfs/rdsosreport.txt failed to mount /sysroot
报错如下图:

image.png
image.png

解决办法

上面的错误可能会出现两种不同的情况。
第一种,你可以先通过命令查看一下/dev/mapper/是否有类似*-root的目录文件,如果有可以直接尝试修复

xfs_repair  /dev/mapper/*-root

第二种,在/dev/mapper/下只有一个control文件,并没有*-root类似的文件,那我们需要找到磁盘文件并进行修复

image.png

查看虚拟机状态

openstack server show 虚拟机ID
image.png
image.png

登录到异常的计算节点查看虚拟机

virsh list --all
image.png

在ceph中查找磁盘

rbd ls pool名 | grep 磁盘ID
image.png

查看磁盘属性

rbd info pool名/磁盘ID

这里我更换了一个物理磁盘ID查看没有变更前的状态

image.png

取消磁盘属性

 rbd feature disable pool名/磁盘ID exclusive-lock object-map fast-diff deep-flatten
image.png

映射磁盘文件到本地

rbd map 磁盘ID -p pool名

修复磁盘文件系统

xfs_repair /dev/rbd0
# 如果修复失败可以加-L参数(会清空日志,丢失部分文件)
xfs_repair -L /dev/rbd0
image.png

取消映射磁盘设备

rbd unmap 磁盘ID -p vms

重启虚拟机即可

作者:跑腿打杂临时工
链接:https://www.jianshu.com/p/c7da7852f0dd
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

发表评论

邮箱地址不会被公开。 必填项已用*标注