当前位置: 首页 > news >正文

缓存元数据损坏操作步骤(lvmcache修复)

现象为:机械盘丢失cvol-cmeta卷

如图所示,lvm逻辑卷中缺失缓存的lvm,这边以只读cache为例

日志现象报错信息为:lvmcache_cvol failed  manual repair required!

lvmcache_cvol failed: manual repair required! 这类报错,本质上是 LVM cache 池(cache-pool)的元数据或数据区域出现了损坏,导致 LVM 在激活卷组时自检失败。


根据社区大量案例和官方文档.常见成因可以归纳为以下 3 类:

缓存盘掉线或损坏

• 典型的 SSD 故障、RAID 卡掉盘、SATA/电源线接触不良等都会使 cache-pool 的 data LV 或 metadata LV 无法读取,从而触发自检错误 。
• 如果 cachemode 设为 writeback,缓存盘一旦离线,尚未写回的数据就会丢失,LVM 会拒绝激活逻辑卷 。

异常掉电/强制关机导致元数据不一致

• writeback 模式下,脏数据只存在于缓存盘,系统突然断电会使 cache metadata 与 origin LV 不同步,重启后自检报错 。

缓存池空间耗尽

• 当 SSD 使用率达到 100 %,新的写入无法分配缓存块,metadata 区域可能出现“非法指针”,从而触发 thin_check / cache_check 失败 。

下面是修复的操作步骤方法:

操作步骤:

cache_repair -i /dev/mapper/ug_212DBF_1729051027_pool3-volume1_lvmcache_cvol-cmeta -o /meta_repaired.img

#这条命令的作用是读取指定的损坏的缓存元数据文件(/dev/mapper/ug_212DBF_1729051027_pool3-volume1_lvmcache_cvol-cmeta),尝试对其进行修复,并将修复后的元数据保存到指定的输出文件(/meta_repaired.img)中。

PS:提示报错The output file should either be a block device是因为提示输入需要块设备才可以.这时候需要使用DD命令将ug_212DBF_1729051027_pool3-volume1_lvmcache_cvol-cmeta变为块设备

dd if=/dev/mapper/ug_212DBF_1729051027_pool3-volume1_lvmcache_cvol-cmeta of=/meta.img

创建一个与 /meta.img 同大小的空文件 /meta_repaired.img

cp /meta.img /meta_repaired.img

再次执行修复缓存元数据的命令:

cache_repair -i /meta.img -o /meta_repaired.imgcache_repair 
#会读取损坏的元数据镜像,尝试修正内部指针、校验和等错误,生成一份 新的、尽量可用的元数据镜像。-i /meta.img	
#输入文件:损坏的 cache-pool 元数据卷-o /meta_repaired.img	
#输出文件:修复后的元数据镜像,之后可用来 替换原元数据卷。

操作步骤:

修复出来的元数据检查是否还存在损坏:

cache_check /meta_repaired.img

正常现象是输出:

如果元数据有问题是输出:

操作步骤:

将修复回来的元数据覆盖到原来损坏的meta卷中:

dd if=/meta_repaired.img of=/dev/mapper/ug_212DBF_1729051027_pool3-volume1_lvmcache_cvol-cmeta

(1)检查:

lvscan是否有出现pool3-volume1

(2)操作可能出现的报错:
lvremove /dev/ug_212DBF_1729051027_pool3/volume1
#移除lv

PS:上面提示253:1被占用

使用命令查看是被什么占用:
ls /sys/dev/block/253:1/holders/

使用命令解除占用:
dmsetup remove /dev/dm-4

再移除使用命令移除:
lvremove /dev/ug_212DBF_1729051027_pool3/volume1

检查是否被移除:
lvscan

可以看到已经没有pool3了,说明已经被移除

操作步骤:

/etc/lvm/archive找到带有cache缓存的备份卷恢复

使用命令恢复vg卷和lv卷:
vgcfgrestore -f  ug_212DBF_1729051027_pool3_00005-1420884903.vg ug_212DBF_1729051027_pool3

PS:需要grep筛选或vi进去查看找有cache信息的vg备份卷来进行恢复

恢复的时候,要恢复的卷组名称需要跟图示红框对应才可以.

恢复以后进行激活卷组:
lvchange -ay /dev/ug_212DBF_1729051027_pool3/volume1
检查data卷是否有恢复出来:
 ls /dev/mapper/

最后尝试挂载data卷:
mount /dev/ug_212DBF_1729051027_pool3/volume1 /volume3
正常以后重启storage服务即可:
systemctl restart storage_serv

http://www.dtcms.com/a/330468.html

相关文章:

  • 微软推出AI恶意软件检测智能体 Project Ire
  • 截断重要性采样(TIS)在医疗AI大模型训练中的优化路径
  • 嵌入式领域,ROM和RAM的区别
  • pytorch学习笔记-Loss的使用、在神经网络中加入Loss、优化器(optimizer)的使用
  • 基于SpringBoot+Vue的轻手工创意分享平台(WebSocket即时通讯、协同过滤算法、Echarts图形化分析)
  • 依托AR远程协助,沟通协作,高效流畅
  • 七、SpringBoot工程日志设置
  • [前端算法]动态规划
  • 【保姆级教程】CentOS 7 部署 FastDFS 全流程(避坑指南)
  • 【Docker】安装kafka案例
  • 深入解析 Spring IOC 容器在 Web 环境中的启动机制
  • ActiveReports 19.1 Crack
  • 新手向:Python条件语句(if-elif-else)使用指南
  • 初识HTML
  • 云原生俱乐部-k8s知识点归纳(1)
  • AI 编程实践:用 Trae 快速开发 HTML 贪吃蛇游戏
  • 游戏行业DevOps实践:维塔士集团基于Atlassian工具与龙智服务构建全球化游戏开发协作平台
  • LLM 中 语音编码与文本embeding的本质区别
  • 网络流初步
  • 版本更新!FairGuard-Mac加固工具已上线!
  • 【Unity3D实例-功能-移动】角色行走和奔跑的相互切换
  • Unity2022 + URP + Highlight plus V21配置和使用
  • Linux下使用Samba 客户端访问 Samba 服务器的配置(Ubuntu Debian)
  • 一颗TTS语音芯片给产品增加智能语音播报能力
  • 【无标题】卷轴屏手机前瞻:三星/京东方柔性屏耐久性测试进展
  • python自学笔记8 二维和三维可视化
  • 【深度学习】深度学习基础概念与初识PyTorch
  • 【C#补全计划】泛型约束
  • 从0开始的中后台管理系统-7(订单列表功能实现,调用百度地图打点以及轨迹图动态展示)
  • 数据结构--------堆