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
相关文章:
ubuntu16 重启之后lvm信息丢失故障恢复
一、背景 1、问题背景 业务有一台物理开发服务器,文件系统有损坏;由于重启时没有检查,导致重启卡住。后面通过断电重新启动之后,无法进入系统;进入救援模式,注释数据盘挂载。重启之后进入系统,…...
【华为OD-E卷 - 热点网站统计 100分(python、java、c++、js、c)】
【华为OD-E卷 - 热点网站统计 100分(python、java、c、js、c)】 题目 企业路由器的统计页面,有一个功能需要动态统计公司访问最多的网页URL top N。请设计一个算法,可以高效动态统计Top N的页面 输入描述 每一行都是一个URL或…...
Ubuntu下安装Android Sdk
下载android sdk命令行工具 https://developer.android.com/studio?hlzh-cn#command-tools mkdir android-sdk cd android-sdk unzip commandlinetools-linux-11076708_latest.zip 添加环境变量到~/.bashrc export ANDROID_HOME$HOME/android-sdk export PATH$PATH:$ANDRO…...

【JVM】总结篇-类的加载篇之 类的加载器 和ClassLoader分析
文章目录 类的加载器ClassLoader自定义类加载器双亲委派机制概念源码分析优势劣势如何打破Tomcat 沙箱安全机制JDK9 双亲委派机制变化 类的加载器 获得当前类的ClassLoader clazz.getClassLoader() 获得当前线程上下文的ClassLoader Thread.currentThread().getContextClassLoa…...

怎样修改el-table主题样式
起因:el-table有主题样式,部分需要单独设置 环境:ideanodejs插件谷歌浏览器 第一步:找到scss文件: 谷歌浏览器打开表格页面,ctrlshifti打开开发者工具,点击后鼠标移动到表格单元格上单击一下…...

MySQL(二)MySQL DDL数据库定义语言
1. MySQL DDL数据库定义语言 1.1. MySQL定义语言 进入MySQL mysql -u root -p(回车后输入密码,即可进入mysq1)1.1.1. 数据库操作 (1)查看数据库 mysql>show databases;注:MySQL语句分隔符为“;” mysql库很重要它里面有…...
Spring Boot 项目启动报 NoClassDefFoundError 异常的原因分析与解决方案 - jackson 版本不一致
目录 报错: 问题分析: 解决方案: 方案 1:对 Jackson 版本进行统一 方案 2:升级 Springfox 版本 方案 3:替换 Springfox 为 springdoc-openapi(推荐) 方案 4:排除冲突的 Jack…...

原型与原型链
什么是原型(对象) 在JavaScript中,每个对象都具有一个原型对象prototype,目的是:利用原型对象实现在同一原型链中的原型方法共享 在理解原型对象前,需要先了解什么是构造函数 构造函数 用来初始化对象的…...

【Linux】信号处理
一、Linux系统信号 1、常见的系统信号 常见的Linux系统信号 信号值描述1SIGHUP挂起(hang up)进程2SIGINT中断进(interrupt)程3SIGQUIT停止(stop)进程9SIGKILL无条件终止(terminate)…...

5个不同类型的mysql数据库安装
各种社区版本下载官方地址:MySQL :: MySQL Community Downloads 一、在线YUM仓库(Linux) 选择 MySQL Yum Repository 选择对应版本下载仓库安装包(No thanks, just start my download.) 下载方法1:下载到本…...

python学习笔记—12—布尔类型、if语句
1. 布尔类型 (1) 定义 (2) 比较运算符 (3) 代码演示 1. 手动定义 bool_1 True bool_2 False print(f"bool_1的内容是:{bool_1}, 类型是:{type(bool_1)}") print(f"bool_2的内容是:{bool_2}, 类型是:{type(bool…...

分数阶傅里叶变换代码 MATLAB实现
function Faf myfrft(f, a) %分数阶傅里叶变换函数 %输入参数: %f:原始信号 %a:阶数 %输出结果: %原始信号的a阶傅里叶变换N length(f);%总采样点数 shft rem((0:N-1)fix(N/2),N)1;%此项等同于fftshift(1:N),起到翻…...

《数据结构》期末考试测试题【中】
《数据结构》期末考试测试题【中】 21.循环队列队空的判断条件为?22. 单链表的存储密度比1?23.单链表的那些操作的效率受链表长度的影响?24.顺序表中某元素的地址为?25.m叉树第K层的结点数为?26. 在双向循环链表某节点…...

openwrt 清缓存命令行
一、查看缓存 : free -m 二、清缓存:echo 3 > /proc/sys/vm/drop_caches 三、详解。 释放物理页缓存 echo 1 > /proc/sys/vm/drop_caches 释放可回收的slab对象,包含inode and dentry echo 2 > /proc/sys/vm/drop_caches 同时…...

RP2K:一个面向细粒度图像的大规模零售商品数据集
这是一种用于细粒度图像分类的新的大规模零售产品数据集。与以往专注于相对较少产品的数据集不同,我们收集了2000多种不同零售产品的35万张图像,这些图像直接在真实的零售商店的货架上拍摄。我们的数据集旨在推进零售对象识别的研究,该研究具…...
.NET Core FluentAPI
目录 约定配置 主要规则 两种配置方式 Data Annotation Fluent API Fluent API配置 Fluent API众多方法 选择 约定配置 主要规则 表名采用DbContext中的对应的DbSet的属性名。数据表列的名字采用实体类属性的名字,列的数据类型采用和实体类属性类型最兼容…...

【C++数据结构——查找】顺序查找(头歌实践教学平台习题)【合集】
目录😋 任务描述 相关知识 一、根据输入数据建立顺序表 二、顺序表的输出 三、顺序查找算法 测试说明 通关代码 测试结果 任务描述 本关任务:实现顺序查找的算法 相关知识 为了完成本关任务,你需要掌握: 根据输入数据建立…...
HTTP Scheme 通常指的是在 URL 中用于指定使用 HTTP 协议的方案(scheme)
HTTP Scheme 通常指的是在 URL 中用于指定使用 HTTP 协议的方案(scheme)。URL(统一资源定位符)中的 scheme 部分指明了访问资源所使用的协议。对于 HTTP,有两个主要的 scheme: - **http**:表示…...

基于Matlab的变压器仿真模型建模方法(13):单相升压自耦变压器的等效电路和仿真模型
1.单相升压自耦变压器的基本方程和等效电路 单相升压自耦变压器的接线原理图如图1所示。在建立自耦变压器的基本方程时,仍然把它看成是从双绕组变压器演变而来。在图1中,设节点a到节点b部分的绕组的匝数为,对应于双绕组变压器的原边绕组;节点c到节点a部分的绕组的绕组匝数为…...

【Vue.js】监听器功能(EventListener)的实际应用【合集】
目录 🤔在实际开发过程中,我遇到了一个颇为棘手的小问题 😋解决这个小问题 问题出现的原因剖析 解决方法阐述 问题成功解决! 📖相关知识总结 基本概念 使用方法 实际应用场景 🤔在实际开发过程中…...

RPA+AI:自动化办公机器人开发指南
RPAAI:自动化办公机器人开发指南 系统化学习人工智能网站(收藏):https://www.captainbed.cn/flu 文章目录 RPAAI:自动化办公机器人开发指南摘要引言技术融合路径1. 传感器层:多模态数据接入2. 决策层&…...
AI推理服务的高可用架构设计
AI推理服务的高可用架构设计 在传统业务系统中,高可用架构主要关注服务冗余、数据库容灾、限流熔断等通用能力。而在AI系统中,尤其是大模型推理服务场景下,高可用架构面临更加复杂的挑战,如推理延迟敏感性、GPU资源稀缺性、模型版本切换频繁等问题。本节将专门探讨如何构建…...

【题解-洛谷】B3622 枚举子集(递归实现指数型枚举)
题目:B3622 枚举子集(递归实现指数型枚举) 题目描述 今有 n n n 位同学,可以从中选出任意名同学参加合唱。 请输出所有可能的选择方案。 输入格式 仅一行,一个正整数 n n n。 输出格式 若干行,每行…...

【win | docker开启远程配置】使用 SSH 隧道访问 Docker的前操作
在主机A pycharm如何连接远程主机B win docker? 需要win docker配置什么? 快捷配置-主机B win OpenSSH SSH Server https://blog.csdn.net/z164470/article/details/121683333 winR,打开命令行,输入net start sshd,启动SSH。 或者右击我的电脑&#…...

C++11 Move Constructors and Move Assignment Operators 从入门到精通
文章目录 一、引言二、基本概念2.1 右值引用(Rvalue References)2.2 移动语义(Move Semantics) 三、移动构造函数(Move Constructors)3.1 定义和语法3.2 示例代码3.3 使用场景 四、移动赋值运算符ÿ…...

物联网嵌入式开发实训室建设方案探讨(高职物联网应用技术专业实训室建设)
一、建设背景与目标 在当今数字化时代,物联网技术正以前所未有的速度改变着人们的生活和工作方式。从智能家居到工业自动化,从智能交通到环境监测,物联网的应用场景无处不在。根据市场研究机构的数据,全球物联网设备连接数量预计…...
如何自动部署GitLab项目
如何自动部署 原理 GitLab有预制的钩子, 在代码提交/合并等事件中,会自动调用WebHoos, 即向该URL发送POST请求在布署服务器上监听该POST, 验证通过后执行相关的布置Shell脚本, 即可完成自动布署 配置环境 安装Python和Pip 2.如果需要, 安装python的requests模块和argparse模…...

VTK 显示文字、图片及2D/3D图
1. 基本环境设置 首先确保你已经安装了VTK库,并配置好了C开发环境。 #include <vtkSmartPointer.h> #include <vtkRenderWindow.h> #include <vtkRenderWindowInteractor.h> #include <vtkRenderer.h> 2. 显示文字 2D文字 #include &l…...

CSS 平铺+自动换行效果
先上效果图 样式 <template><div class"activity-questions"><h1>活动题库</h1><div v-if"loading" class"loading">加载中...</div><div v-else><div v-if"questions.length 0" clas…...
Python爬虫实战:研究mechanize库相关技术
1. 引言 随着互联网数据量的爆炸式增长,网络爬虫已成为数据采集和信息挖掘的重要工具。Python 作为一种功能强大且易于学习的编程语言,拥有丰富的爬虫相关库,如 Requests、BeautifulSoup、Scrapy 等。Mechanize 库作为其中的一员,特别擅长处理复杂的表单提交和会话管理,为…...