暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

逻辑卷池中某个LUN盘无法识别的问题处理

watson 2024-11-09
299

一、 故障描述

在vg组中,存在多块LUN盘,其中一块LUN盘因某个原因,导致系统无法再识别到,需要利用剩余的LUN盘来恢复数据。这种情况下,因整个vg组不完整,导致vg或者lv无法挂载、识别、读写。

需要强调的是,丢失的LUN盘上要么是没有数据,或者丢失少量数据。如果上面丢失的数据较多,且是关键性的数据,那么这个问题,将转变为物理磁盘介质的数据恢复,需要转由硬件设备厂商或其他数据恢复专家来解决。

二、 测试方式

初始化环境,使用一块盘创建了一个 vg_cs 的vg组,和一个lv_cs 的lvm卷,并挂载到/cs 下,创建了一个testfile的临时文件,其中内容为1到10万的连续数字。

其中vg _cs 中含有sdb和sdc盘。

lv使用默认的顺序读写,故测试数据目前存在在sdb 上,使用:

s trings /dev/sdb | more

可以看到,盘头除了lvm相关的文件系统信息外,后面是文件名和文件内容信息。

三、 故障模拟

此时我们模拟sdc这块磁盘丢失的情况,方法有两种,一是使用dd方式抹掉所有盘数据;二是从存储端拿掉sdc 盘的映射关系。

操作完后,重启主机,可以看到lv中出现unknown状态的卷:

图片

uuid= UMpJuh-6cVh-3Hyc-MrTK-GDwo-TPeC-Wjb4NG 的卷,就是刚才的sdc卷,在/ etc /lvm/backup 中,也可以找到对应的关系。

特别提示:

关于pvs,lvs和vgs中Attr各个字节对应的含义,最准确快速查找的方法是:

man 对应的命令,然后搜索pv_attr 、lv _attr 或者vg _attr ,就有当前版本最准确的解释了。这里为了方便大家快速浏览,三条命令的属性解释见附件一。

四、 恢复过程

直接使用vgcfgrestore来恢复盘头的lvm信息,失败:

图片

提示中,很明显,显示原来sdb设备的uuid找不到了,无法恢复,提示vg _cs的一个p被标记为丢失,恢复失败。

提示:

如何获取丢失盘的uuid?

1、 执行lvm相关操作后,会如上所示,直接提示出来;

2、 pvscan执行时

3、 lvm的备份信息中,即/ etc/lvm/backup/vg_cs 中也可以找到

这时候要用一个新的空盘来恢复,这里我们已经重新映射一个sdd到主机上,使用这个sdd来重建uuid= UMpJuh-6cVh-3Hyc-MrTK-GDwo-TPeC-Wjb4NG 的pv。

图片

提示成功了,这时vg _cs是完整的了。

验证lvm相关的信息:

图片

这时,lv _cs 处于非激活状态,激活

图片

因为少了一部分数据,所以这时候一定要做文件系统修复:

图片

图片

图片

从修复的过程看,丢失的信息其实还是不少的,sdc上的数据肯定都没有了。

最后挂载,验证:

图片
再看看相关数据,都恢复上了。

五、 总结

如果要恢复一个lvm上剩余的数据,也需要给操作系统一个完整的lvm信息,这个才能作为一个完整的文件系统进行挂载,虽然此时数据已经不完整。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论