Openstack计算节点断电虚拟机磁盘数据恢复
Openstack计算节点断电虚拟机磁盘数据恢复 - 简书 (jianshu.com)
背景
线上一台openstack计算节点突然宕机,造成上面的虚拟机启动之后服务正常进入操作系统,也无法进行正常迁移,通过进入虚拟机管理页面发现磁盘数据找不到,我们存储使用的是ceph。
报错信息:/run/initramfs/rdsosreport.txt failed to mount /sysroot
报错如下图:
解决办法
上面的错误可能会出现两种不同的情况。
第一种,你可以先通过命令查看一下/dev/mapper/是否有类似*-root的目录文件,如果有可以直接尝试修复
xfs_repair /dev/mapper/*-root
第二种,在/dev/mapper/下只有一个control文件,并没有*-root类似的文件,那我们需要找到磁盘文件并进行修复
查看虚拟机状态
openstack server show 虚拟机ID
登录到异常的计算节点查看虚拟机
virsh list --all
在ceph中查找磁盘
rbd ls pool名 | grep 磁盘ID
查看磁盘属性
rbd info pool名/磁盘ID
这里我更换了一个物理磁盘ID查看没有变更前的状态
取消磁盘属性
rbd feature disable pool名/磁盘ID exclusive-lock object-map fast-diff deep-flatten
映射磁盘文件到本地
rbd map 磁盘ID -p pool名
修复磁盘文件系统
xfs_repair /dev/rbd0
# 如果修复失败可以加-L参数(会清空日志,丢失部分文件)
xfs_repair -L /dev/rbd0
取消映射磁盘设备
rbd unmap 磁盘ID -p vms
重启虚拟机即可
作者:跑腿打杂临时工
链接:https://www.jianshu.com/p/c7da7852f0dd
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。