收起左侧

关于飞牛只读缓存损坏引起的存储空间不能挂载的解决方法

0
回复
24
查看
[ 复制链接 ]

63

主题

4777

回帖

925

牛值

共建版主

社区上线纪念勋章社区共建团荣誉勋章飞牛百度网盘玩家fnOS1.0上线纪念勋章

声明

由于涉及到存储空间和数据请谨慎操作,小白用户不建议自己操作,如果使用此方法造成了数据丢失,本人概不负责。
由于论坛里总是能碰到缓存盘损坏引起的存储空间挂载不上或者是飞牛重启之后没有自动挂载存储空间的问题,在咨询了飞牛官方技术人员以后,这里给动手能力强的小伙伴提供一个自己解决此类问题的办法。
这个方法只适用于设置了SSD缓存加速“只读缓存”损坏或者手动拆掉缓存盘未移除缓存空间的场景(读写缓存比这个要复杂,这个方法不适用。)。
由于本人没有该环境,所以攻略中截图的并不是同一场景下的,但是不影响命令的执行效果,希望大家理解。

解决方法

准备工作:
飞牛开启ssh,用ssh工具连接到飞牛ssh。
执行 sudo -i提权到root模式。
执行命令 lvs查看警报

QQ_1764264795170.png

一、警告信息简单理解:

首先简单的做一下名词解释方便理解:
LV 为逻辑卷
VG 为卷组
PV 为物理卷
图中有“WARNING”字段,后面的提示信息第一行是找不到uuid为 N66gG-dIk9-GrEE-5zmP-LdBG-6278-CQACD5的设备,第二行提示信息是VG为 trim_3035c1la_0bf2_4b6_gbfb_139c6bb8c4d1的卷组丢失了PV为 PN66gG-dIk-GrEE-5zmP-LdBG-6278-CAcD5的物理卷,再下面的两行跟前面两行的意思大体一样。

二、如何判定目标:

图中的场景比较简单,如果我有多个存储空间我们该怎么判断是哪一个呢?

图中LV都为0的两条信息第一条和第二条信息对比:
第二条信息里VG为 trim_37c35328_0385_4865_9fid_edade401dbab含有[ocache_cpool]的信息以及大小为465.63g,我们可以判定为ssd缓存盘,对应的上面的警告信息中有提到这个VG信息。
第一条信息VG为 trim_3035c11a_0bf2_40b6_9bfb_139c6bb8c4d1空间大小约为5.46t,根据我们实际存储空间大小判断,以及上面警告信息中提及的VG信息我们可以判断为目标。

三、找到我们要修改的VG配置文件

执行 cd /etc/lvm/archive/
执行 ll 查看配置文件信息。
QQ_1764264851882.png

信息简单理解

由于我没有相关的场景所以这里回显的信息对不上,这里我主要是给大家讲一下回显信息,
你会发现我们查询到的信息中包含VG信息但是要比VG信息多一串字符这里以 trim_80de69c4_996c_4a92_aff9_402beaa123d9_00000-893469663.vg为例讲解一下 trim_80de69c4_996c_4a92_aff9_402beaa123d9这一段是我们的VG信息,后面的 00000-893469663为配置文件备份标识字段,在你的实际场景中可能会有多个 trim_80de69c4_996c_4a92_aff9_402beaa123d9为前缀的配置文件,比如 trim_80de69c4_996c_4a92_aff9_402beaa123d9_00001-893469663.vg或者 trim_80de69c4_996c_4a92_aff9_402beaa123d9_00002-893469663.vg,这里我们找到最新的备份就可以。

四、备份最后的配置文件

我们回到飞牛的web页面在文件管理我的文件里创建个目录vg用来保存配置文件备份。
cp trim_3035c11a_0bf2_40b6_9bfb_139c6bb8c4d1_00001-893469663.vg /vol1/1000/vg/bak1.vg

五、编辑备份之后的配置文件:

这里可以直接在命令行下编辑,也可以用飞牛的文本编辑器编辑,我这里用命令行演示:
nano /vol1/1000/vg/bak1.vg or vi /vol1/1000/vg/bak1.vg
在配置文件中我们需要确定一下配置文件是否正确,验证lv0内的segment1结构是否一致。图中划线部分是否是 type = "striped"这一段,如果一样那就没问题,如果不一样那就是有问题。
QQ_1764264895449.png

然后我们把光标移动到配置文件尾部,查找是否有 0_corig字段,如果上面提到的字段不一样这里一定有这个字段,内容为图中的结构。
QQ_1764264946184.png

我们把segment1这一段复制下来,替换到配置文件头部的logical_volumes这一段里,图中框选的部分。
QQ_1764264996632.png

删除pv物理卷里(physical_volumes)的pv1的整个代码段。
删除lv逻辑卷里(logical_volumes)的除0之外的代码段。
最后的配置文件结构如图:
QQ_1764265023302.png

六、把修改好的VG配置文件恢复到目标VG:

我们先通过测试模式恢复,检验一下配置文件是否正确。

vgcfgrestore -t -f /vol1/1000/vg/bak1.vg trim_80de69c4_996c_4a92_aff9_402beaa123d9

-t是测试选项,如果没有警告那就说明配置文件正确,那么我们就可以把 -t选项去掉直接恢复到目标卷组。

vgcfgrestore -f /vol1/1000/vg/bak1.vg trim_80de69c4_996c_4a92_aff9_402beaa123d9

七、检查一下是否有告警及激活信息:

1.执行 lvs命令回显如下:

QQ_1764265100831.png

2.查看图中划线的部分如果没有 a代表存储空间没激活,如果没激活可以执行以下命令:

lvchange -ay trim_80de69c4_996c_4a92_aff9_402beaa123d9

如果一切都没问题,我们可以去web端挂载一下,挂载好之后再执行 dmesg查看文件系统是否报错。

再次声明

由于涉及到存储空间和数据请谨慎操作,小白用户不建议自己操作,如果使用此方法造成了数据丢失,本人概不负责。

由于本人能力有限,如有错漏,欢迎评论区指正。

收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则