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

ubuntu16 重启之后lvm信息丢失故障恢复

一、背景

1、问题背景

业务有一台物理开发服务器,文件系统有损坏;由于重启时没有检查,导致重启卡住。后面通过断电重新启动之后,无法进入系统;进入救援模式,注释数据盘挂载。重启之后进入系统,发现数据盘做的lvm信息丢失;通过pvs、vgs、lvs均无法看该lvm信息;lsblk 命令查询,也只能看到只有盘符/dev/sdb和分区信息/dev/sdb1

2、主机信息

  • 操作系统: ubuntu16.04
  • 逻辑卷名称:/dev/vg_data/lv_data

二、lvm恢复步骤

1、确认lvm备份信息是否存在

备份目录一般在:/etc/lvm/arcive或者/etc/lvm/backup下

root@Ubuntu-8-70:/etc/lvm# ll
total 108
drwxr-xr-x   4 root root  4096 Nov 23 11:21 ./
drwxr-xr-x 116 root root 12288 Nov 26 09:29 ../
drwx------   2 root root  4096 Nov 26 09:26 archive/
drwx------   2 root root  4096 Nov 26 09:26 backup/root@Ubuntu-8-70:/etc/lvm/archive# ll 
total 24
drwx------ 2 root root 4096 Nov 26 09:26 ./
drwxr-xr-x 4 root root 4096 Nov 23 11:21 ../
-rw------- 1 root root 1338 Aug 13  2020 vg_data_00000-1854432265.vg   ##lvm备份存在root@Ubuntu-8-70:~# cat  /etc/lvm/archive/vg_data_00000-1854432265.vg
# Generated by LVM2 version 2.02.133(2) (2015-10-30): Thu Aug 13 23:57:38 2020contents = "Text Format Volume Group"
version = 1description = "Created *before* executing 'pvscan --cache --activate ay --major 8 --minor 17'"creation_host = "Ubuntu"        # Linux Ubuntu 4.10.0-28-generic #32~16.04.2-Ubuntu SMP Thu Jul 20 10:19:48 UTC 2017 x86_64
creation_time = 1597334258      # Thu Aug 13 23:57:38 2020vg_data {id = "qPdnvh-uHhd-pSdO-1yz3-KgOz-Q3eD-tguAyz"seqno = 2format = "lvm2"                 # informationalstatus = ["RESIZEABLE", "READ", "WRITE"]flags = []extent_size = 8192              # 4 Megabytesmax_lv = 0max_pv = 0metadata_copies = 0physical_volumes {pv0 {id = "e4lnF9-ccfB-6ezE-Dh4Z-WwQj-IvOC-RaYjyP"device = "/dev/sdb1"    # Hint onlystatus = ["ALLOCATABLE"]flags = []dev_size = 21090529280  # 9.82104 Terabytespe_start = 2048pe_count = 2574527      # 9.82104 Terabytes}}logical_volumes {lv_data {id = "wV3cRh-u0YD-nT0C-2Wcf-vAoq-OCwL-QfwxCA"status = ["READ", "WRITE", "VISIBLE"]flags = []creation_host = "Ubuntu"creation_time = 1597333822      # 2020-08-13 23:50:22 +0800segment_count = 1segment1 {start_extent = 0extent_count = 2574527  # 9.82104 Terabytestype = "striped"stripe_count = 1        # linearstripes = ["pv0", 0]}}}
}

2、数据备份,操作前一定要先备份数据

由于数据盘文件系统已经损坏,无法从文件系统侧备份,故使用dd,备份整个/dev/sdb1;数据盘总空间:9.8T,已经使用空间6.6T,需要先准备一个可以容纳整个9.8T磁盘的存储空间。

dd if=/dev/sdb1  of=/backup/sdb_backup.img  bs=64k    conv=noerror,sync status=progress ##参数解析:
if:输入文件,表示需要读取的文件或设备;
of:输出文件,表示需要读取的文件或设备;
bs: 块大小,指定数据读写块的大小,可以适当调整更大的值,值越大相对系统调用就少,整体传输速度会更快些
status=progress   可获取实时的进度信息

3、进行lvm恢复

(1)、恢复物理卷上的元数据

  • 查看备份文件中的物理卷id
root@Ubuntu-8-70:~# cat  /etc/lvm/archive/vg_data_00000-1854432265.vg        
............physical_volumes {pv0 {id = "e4lnF9-ccfB-6ezE-Dh4Z-WwQj-IvOC-RaYjyP"device = "/dev/sdb1"    # Hint onlystatus = ["ALLOCATABLE"]flags = []dev_size = 21090529280  # 9.82104 Terabytespe_start = 2048pe_count = 2574527      # 9.82104 Terabytes}}
............root@Ubuntu-8-70:~# pvcreate --uuid e4lnF9-ccfB-6ezE-Dh4Z-WwQj-IvOC-RaYjyP  --restorefile  /etc/lvm/archive/vg_data_00000-1854432265.vg   /dev/sdb1Physical volume "/dev/sdb1" successfully created

(2)、恢复卷组的元数据

vgcfgrestore vg_data

(3)、查看卷组上的逻辑卷并激活

root@Ubuntu-8-70:~# lvs --all --options +devices vg_data   ##列出卷组的逻辑卷,恢复的逻辑卷处于未激活状态root@Ubuntu-8-70:~#  lvchange --activate y vg_data/lv_data  ##激活逻辑卷root@Ubuntu-8-70:~# mount /dev/vg_data/lv_data   /work    ##尝试挂载

备注:取消/etc/fstab中/work开机挂载注释,重启服务器验证是否能正常开机和正常挂载

三、修复文件系统(额外工作,如果文件系统没有这个问题,则无需处理)

1、问题表现

root@Ubuntu-8-70:/work# cd /work/root@Ubuntu-8-70:/work# ll -t    ##出现报错提示
ls: cannot access 'nohup.out': Structure needs cleaning
total 1065472
..........
-??????????   ? ?        ?                 ?            ? nohup.out

2、修复处理

root@Ubuntu-8-70:~# umount -l /work   ## 卸载有问题的分区root@Ubuntu-8-70:~# fsck.ext4 -y  /dev/vg_data/lv_data  ##-y:参数自动确认yes选项,避免交互式操作,一定要记得加上;fsck.ext4用于检查和修复 ext4 文件系统的工具root@Ubuntu-8-70:~# mount -a    ##重新挂载数据盘root@Ubuntu-8-70:/work# ll   ##验证修复结果
total 1065584
drwxr-xr-x.  18 root      root            4096 Nov 26 09:30 ./
drwxr-xr-x.  29 root      root            4096 Nov 25 10:00 ../
.......
p--S------    1 402656438 543168512          0 Oct 24  1994 nohup.out|
.......root@Ubuntu-8-70:/work# rm -rf nohup.out
http://www.lryc.cn/news/516790.html

相关文章:

  • 【华为OD-E卷 - 热点网站统计 100分(python、java、c++、js、c)】
  • Ubuntu下安装Android Sdk
  • 【JVM】总结篇-类的加载篇之 类的加载器 和ClassLoader分析
  • 怎样修改el-table主题样式
  • MySQL(二)MySQL DDL数据库定义语言
  • Spring Boot 项目启动报 NoClassDefFoundError 异常的原因分析与解决方案 - jackson 版本不一致
  • 原型与原型链
  • 【Linux】信号处理
  • 5个不同类型的mysql数据库安装
  • python学习笔记—12—布尔类型、if语句
  • 分数阶傅里叶变换代码 MATLAB实现
  • 《数据结构》期末考试测试题【中】
  • openwrt 清缓存命令行
  • RP2K:一个面向细粒度图像的大规模零售商品数据集
  • .NET Core FluentAPI
  • 【C++数据结构——查找】顺序查找(头歌实践教学平台习题)【合集】
  • HTTP Scheme 通常指的是在 URL 中用于指定使用 HTTP 协议的方案(scheme)
  • 基于Matlab的变压器仿真模型建模方法(13):单相升压自耦变压器的等效电路和仿真模型
  • 【Vue.js】监听器功能(EventListener)的实际应用【合集】
  • 【Shell脚本】Docker构建Java项目,并自动停止原镜像容器,发布新版本
  • 【iOS Swift Moya 最新请求网络框架封装通用】
  • 前端批量下载文件
  • 【pytorch-lightning】架构一览
  • MongoDB相关使用问题
  • DevSecOps自动化在安全关键型软件开发中的实践、Helix QAC Klocwork等SAST工具应用
  • 常见的显示器分辨率及其对应的像素数量
  • TDengine + MQTT :车联网时序数据库如何高效接入
  • maven的中国镜像有哪些
  • ModelScope ms-swift:轻量级模型微调框架
  • 深度解析与实践:HTTP 协议