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.mzph.cn/web/65281.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React函数组件中与生命周期相关Hooks详解

React 函数组件及其钩子渲染流程是 React 框架中的核心概念之一。以下是对该流程的详细解析: 一、React 函数组件基础 定义: React 函数组件是一个接收 props 作为参数并返回 React 元素的函数。它们通常用于表示 UI 的一部分,并且不保留内部…

水一篇水水水

为了拿推广卷,但不想把我原本完整的文章拆成零散的多篇,只能出此下策随便发一篇,认真写的都笔记专栏里 网络是由若干节点和连接这些节点的链路构成,表示诸多对象及其相互联系。 在1999年之前,人们一般认为网络的结构都…

PDFelement 特别版

Wondershare PDFelement Pro 是一款非常强大的PDF编辑软件,它允许用户轻松地编辑、转换、创建和管理PDF文件。这个中文特别版的软件具有许多令人印象深刻的功能,PDFelement Pro 提供了丰富的编辑功能,可以帮助用户直接在PDF文件中添加、删除、…

C语言的正则表达式

C语言中的正则表达式 引言 正则表达式是一种用于描述字符串模式的工具,它可以用来进行字符串匹配、查找、替换等操作。在编程中,正则表达式被广泛应用于数据验证、信息提取等场景。C语言虽然没有内置的正则表达式支持,但通过一些库我们同样…

【OpenCV】使用Python和OpenCV实现火焰检测

1、 项目源码和结构(转) https://github.com/mushfiq1998/fire-detection-python-opencv 2、 运行环境 # 安装playsound:用于播放报警声音 pip install playsound # 安装opencv-python:cv2用于图像和视频处理,特别是…

GO随想:GO的并发等待

协程并发等待技术——WaitGroup 类型和 errgroup 包 waitgroup 阻塞等待多个并发任务执行完成。WaitGroup 类型主要包含下面几个方法。 func (wg *WaitGroup) Add(delta int) func (wg *WaitGroup) Done() func (wg *WaitGroup) Wait() 第一个是 Add 方法,在任务运…

深入理解Mybatis原理》MyBatis的sqlSessi

sqlSessionFactory 与 SqlSession 正如其名,Sqlsession对应着一次数据库会话。由于数据库会话不是永久的,因此Sqlsession的生命周期也不应该是永久的,相反,在你每次访问数据库时都需要创建它(当然并不是说在Sqlsession…

《HarmonyOS第一课》焕新升级,赋能开发者快速掌握鸿蒙应用开发

随着HarmonyOS NEXT发布,鸿蒙生态日益壮大,广大开发者对于系统化学习平台和课程的需求愈发强烈。近日,华为精心打造的《HarmonyOS第一课》全新上线,集“学、练、考”于一体,凭借多维融合的教学模式与系统课程设置&…

springboot集成整合工作流,activiti审批流,整合实际案例,流程图设计,流程自定义,表单配置自定义,代码demo流程

前言 activiti工作流引擎项目,企业erp、oa、hr、crm等企事业办公系统轻松落地,一套完整并且实际运用在多套项目中的案例,满足日常业务流程审批需求。 一、项目形式 springbootvueactiviti集成了activiti在线编辑器,流行的前后端…

《探秘计算机视觉与深度学习:开启智能视觉新时代》

《探秘计算机视觉与深度学习:开启智能视觉新时代》 一、追溯起源:从萌芽到崭露头角二、核心技术:解锁智能视觉的密码(一)卷积神经网络(CNN):图像识别的利器(二&#xff0…

设计模式-结构型-适配器模式

在软件开发中,随着系统的不断扩展和模块的不断增加,往往会遇到不同模块之间接口不兼容的情况。此时,如果我们能通过某种方式将一个接口转化为另一个接口,那么开发工作将变得更加灵活和高效。适配器模式(Adapter Patter…

Vmware安装centos

用来记录自己安装的过程 一、创建虚拟机安装centos镜像 点击完成后,等待一会会进入centos的系统初始化界面 二、centos初始化配置 三、配置网络 1、虚拟网络编辑器,开启VMnet1、VMnet8的DHCP vmware左上角工具栏,点击【编辑】->【虚拟网…

Unity-Mirror网络框架-从入门到精通之Chat示例

文章目录 前言Chat聊天室Authentication授权ChatAuthenticatorChat示例中的授权流程聊天Chat最后 前言 在现代游戏开发中,网络功能日益成为提升游戏体验的关键组成部分。Mirror是一个用于Unity的开源网络框架,专为多人游戏开发设计。它使得开发者能够轻…

知识问答系统

文章目录 早期的问答系统基于信息检索的问答系统基于知识库的问答系统CommunityQA/FAQ-QA:基于问答对匹配的问答系统Hybrid QA Framework混合问答系统框架早期的问答系统 20世纪六七十年代,早期的NLIDB(Natural Language Interface toData bBase)伴随着人工智能的研发逐步兴起…

第3章:Go语言复合数据类型

第3章:Go语言复合数据类型 1. 数组 1.1 数组声明和初始化 // 方式1:声明固定长度数组 var numbers [5]int // 声明一个包含5个整数的数组,默认零值// 方式2:初始化数组 arr1 : [5]int{1, 2, 3, 4, 5} // 完全初始化// 方式3&…

uniapp-vue3 实现, 一款带有丝滑动画效果的单选框组件,支持微信小程序、H5等多端

采用 uniapp-vue3 实现, 是一款带有丝滑动画效果的单选框组件,提供点状、条状的动画过渡效果,支持多项自定义配置,适配 web、H5、微信小程序(其他平台小程序未测试过,可自行尝试) 可到插件市场下载尝试&…

深度学习GPU服务器推荐:打造高效运算平台

文章来源于百家号:GPU服务器厂家 在深度学习和人工智能领域,一个高性能的GPU服务器是研究和开发工作的关键。今天,我们将为大家推荐一款基于详细硬件配置表的深度学习GPU服务器,它专为高效运算和数据处理而设计。 一、机箱设计 …

2025第1周 | JavaScript中的正则表达式

目录 1. 正则表达式是个什么东东?1.1 怎么定义正则1.2 对象字面量方式1.3 类创建方式 2. 怎么使用2.1 实例方法2.1.1 exec方法2.1.2 test方法 2.2 字符串中的方法2.2.1 match/matchAll2.2.2 replace/replaceAll2.2.3 split2.2.4 search 3. 规则3.1 修饰符3.2 字符类…

大模型LLM-Prompt-OPTIMAL

1 OPTIMAL OPTIMAL 具体每项内容解释如下: Objective Clarity(目标清晰):明确定义任务的最终目标和预期成果。 Purpose Definition(目的定义):阐述任务的目的和它的重要性。 Information Gat…

78、使用爱芯派2_AX630C开发板 3.2T高有效算力 低功耗 支持AI-ISP真黑光实验

基本思想:使用爱心元智最新的版本开发板进行实验 AX630C、AX620Q 都是 620E 这一代 一、参考这个官方教程,先把代码在本地交叉编译完成 https://github.com/AXERA-TECH/ax620e_bsp_sdk 然后在拷贝到620c设备上 root@ax630c:~/ax620e_bsp_sdk/msp/out/arm64_glibc/bin# ./…