LVM恢复已删除的逻辑卷具体方法

LVM中如何恢复已删除的逻辑卷?在执行任何逻辑卷管理相关任务时,如果意外的删除了逻辑卷,则可以使用它的数据还原功能来恢复逻辑卷,下面为大家分享一下LVM中恢复已删除的逻辑卷具体方法。

系统环境

Centos8

现有的文件系统

在开始本文之前已经创建了一个逻辑卷,里面并存放了一些文件。

[root@localhost ~]# pvs
 PV             VG      Fmt  Attr PSize   PFree
 /dev/nvme0n1p2 cl      lvm2 a--  # vgs
 VG      #PV #LV #SN Attr   VSize   VFree
 cl        1   2   0 wz--n- # lvs
 LV      VG      Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
 root    cl      -wi-ao---- 15.00g                                                    
 swap    cl      -wi-ao----  2.00g                                                    
 lv_data vg_data -wi-ao---- 39.99g              
[root@localhost ~]# df -h /data
Filesystem                   Size  Used Avail Use% Mounted on
/dev/mapper/vg_data-lv_data   40G  318M   40G   1% /data

/data目录中的文件如下:

意外删除逻辑卷

为了演示起见,请删除逻辑卷lv_data。

[root@localhost ~]# umount /data
[root@localhost ~]# lvremove -v /dev/vg_data/lv_data
Do you really want to remove active logical volume vg_data/lv_data? [y/n]: y
   Accepted input: [y]
   Removing vg_data-lv_data (253:2)
   Archiving volume group "vg_data" metadata (seqno 2).
   Releasing logical volume "lv_data"
   Creating volume group backup "/etc/lvm/backup/vg_data" (seqno 3).
 Logical volume "lv_data" successfully removed

使用lvs命令打印并确认我们已经删除了逻辑卷lv_data: 由于lv_data卷已删除,可以看到卷组vg_data的剩余空间是40G。

[root@localhost ~]# vgs
 VG      #PV #LV #SN Attr   VSize   VFree
 cl        1   2   0 wz--n- 

开始恢复逻辑卷

现在,让我们看看如何还原已删除的逻辑卷。每当我们执行与LVM相关的任何任务(时,所有内容都将被记录在/etc/lvm/archive.下。并使用vgcfgbackup命令备份卷组配置并将其存储在/etc/lvm/backup下。

[root@localhost ~]# ll /etc/lvm/backup/
total 8
-rw-------. 1 root root 1746 Mar  9 16:27 cl
-rw-------. 1 root root 1147 Apr  8 10:20 vg_data
[root@localhost ~]# ll /etc/lvm/archive/
total 24
-rw-------. 1 root root 1740 Dec 29  2019 cl_00000-1531402016.vg
-rw-------. 1 root root 1740 Mar  9 16:27 cl_00001-790744555.vg
-rw-------. 1 root root 1747 Mar  9 16:27 cl_00002-1369752011.vg
-rw-------. 1 root root 1150 Apr  8 09:52 vg_data_00000-919482485.vg
-rw-------. 1 root root 1155 Apr  8 09:54 vg_data_00001-1289102393.vg
-rw-------. 1 root root 1763 Apr  8 10:20 vg_data_00002-1932879749.vg

在上面删除逻辑卷的步骤中,使用lvremove -v /dev/vg_data/lv_data命令时,可以看到输出的详细信息,有archiving和create backup。 下面列出并检查有多少个卷组元数据备份可用:

[root@localhost ~]# vgcfgrestore --list vg_data
 
 File:  /etc/lvm/archive/vg_data_00000-919482485.vg
 Couldn't find device with uuid l5rSrt-SRfc-KQNw-Tm29-gx4D-ihBw-Xzum3L.  Couldn't find device with uuid v6wYGZ-0dGA-8ecB-kec8-r2zv-gCJi-gulSAD.
 VG name:     vg_data
 Description: Created *before* executing 'vgcreate vg_data /dev/sda /dev/sdb'
 Backup Time: Thu Apr  8 09:52:49 2021
 
 File:  /etc/lvm/archive/vg_data_00001-1289102393.vg
 VG name:     vg_data
 Description: Created *before* executing 'lvcreate -l 100%FREE -n lv_data vg_data'
 Backup Time: Thu Apr  8 09:54:45 2021
 
 File:  /etc/lvm/archive/vg_data_00002-1932879749.vg
 VG name:     vg_data
 Description: Created *before* executing 'lvremove -v /dev/vg_data/lv_data'
 Backup Time: Thu Apr  8 10:20:53 2021

 File:  /etc/lvm/backup/vg_data
 VG name:     vg_data
 Description: Created *after* executing 'lvremove -v /dev/vg_data/lv_data'
 Backup Time: Thu Apr  8 10:20:53 2021

--list选项列出与VG有关的元数据备份和存档文件。 我们要恢复的事删除卷组之前的存档,所以选择下面圈出来的/etc/lvm/archive/vg_data_00002-1932879749.vg文件。 在恢复之前,使用--test选项来试运行一下:

[root@localhost ~]# vgcfgrestore vg_data -f /etc/lvm/archive/vg_data_00002-1932879749.vg --test
 TEST MODE: Metadata will NOT be updated and volumes will not be (de)activated.
 Restored volume group vg_data.

试运行没问题之后,去掉--test选项,然后再执行一次:

[root@localhost ~]# vgcfgrestore vg_data -f /etc/lvm/archive/vg_data_00002-1932879749.vg
 Restored volume group vg_data.

可看到成功恢复卷组vg_data

-f选项读取由vgcfgbackup创建的元数据文件。

使用lvs查看lv_data逻辑卷是否已恢复,并且使用lvscan查看逻辑卷是否激活:

[root@localhost ~]# lvs
 LV      VG      Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
 root    cl      -wi-ao---- 15.00g                                                    
 swap    cl      -wi-ao----  2.00g                                                    
 lv_data vg_data -wi------- 39.99g                                                    
[root@localhost ~]# lvscan
 ACTIVE            '/dev/cl/swap' [2.00 GiB] inherit
 ACTIVE            '/dev/cl/root' [15.00 GiB] inherit
 inactive          '/dev/vg_data/lv_data' [39.99 GiB] inherit

可看到lv_data已恢复,但是状态是未激活。下一步就激活逻辑卷。

激活逻辑卷

使用lvchange命令将逻辑卷激活:

[root@localhost ~]# lvchange -ay /dev/vg_data/lv_data
[root@localhost ~]# lvscan
 ACTIVE            '/dev/cl/swap' [2.00 GiB] inherit
 ACTIVE            '/dev/cl/root' [15.00 GiB] inherit
 ACTIVE            '/dev/vg_data/lv_data' [39.99 GiB] inherit
[root@localhost ~]# lvs
 LV      VG      Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
 root    cl      -wi-ao---- 15.00g                                                    
 swap    cl      -wi-ao----  2.00g                                                    
 lv_data vg_data -wi-a----- 39.99g                                          

上图可以看到”/dev/vg_data/lv_data”逻辑卷已激活。

挂载并检验

挂载文件系统:

[root@localhost ~]# mount /dev/vg_data/lv_data /data/
[root@localhost ~]# df -h /data
Filesystem                   Size  Used Avail Use% Mounted on
/dev/mapper/vg_data-lv_data   40G  318M   40G   1% /data

可以看到文件都已经存在了。

总结

本文已经成功地从卷组的元数据中恢复被删除的逻辑卷。

原创文章,作者:晴川运维,如若转载,请注明出处:https://baike.qcidc.com/16029.html

(0)
晴川运维晴川运维
上一篇 2025年10月21日
下一篇 2025年10月21日

相关推荐

  • Linux下more命令高级用法

    我们在 Linux 环境下工作时,每天肯定会跟各种各样的文本文件打交道。这些文件,有时候会非常长,无法在一屏的空间内显示完全。所以,在查看这种文件时,我们需要分页显示。这时,我们就…

    Linux系统 2025年6月10日
  • PowerShell文件夹共享及磁盘映射

    PowerShell是一种功能强大的脚本语言和shell程序框架,主要用于Windows计算机方便管理员进行系统管理并有可能在未来取代Windows上的默认命令提示符,下面为大家详…

    Linux系统 2025年6月4日
  • 在Django中使用ElasticSearch

    Elasticsearch可以使我们快速,近乎实时地存储,搜索和分析大量数据,并在几毫秒内给出答复。之所以能够获得快速的搜索响应,是因为它可以直接搜索索引,而不是直接搜索文本。 什…

    Linux系统 2025年6月8日
  • 详解Linux chkconfig 命令

    Linux chkconfig 命令用于检查,设置系统的各种服务。这是Red Hat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务,其中包括各…

    Linux系统 2025年9月20日
  • 详解搭建rsync服务器方法

    rsync是可以实现增量备份的工具。配合任务计划,rsync能实现定时或间隔同步,配合inotify或sersync,可以实现触发式的实时同步,下面讲解一下搭建rsync服务器方法…

    Linux系统 2025年10月5日
  • 详解YARN常用操作

    YARN (Yet Another Resource Negotiator,另一种资源协调者)是一 种新的 Hadoop 资源管理器,它是一个通用资源管理系统和调度平台,可为上层应…

    Linux系统 2025年6月23日
  • Linux常用命令fdformat命令具体使用方法

    Linux fdformat命令用于对指定的软碟机装置进行低阶格式化。 使用这个指令对软碟格式化的时候,最好指定像是下面的装置: /dev/fd0d360 磁碟机 A: ,磁片为 …

    Linux系统 2025年10月18日
  • 集群和分布式具体区别

    集群和分布式,都是描述的一组计算机。集群的所有节点跑的是同样的任务,而分布式系统的节点跑的是分解后的任务,下面为大家详细讲解一下集群和分布式不同。 单机结构 我想大家最最最熟悉的就…

    Linux系统 2025年7月2日
  • Linux中通过osquery监控文件的完整性

    osquery 是 SQL 驱动的分析和监控操作系统的工具,是操作系统分析框架,支持 OS X 和 Linux 系统。osquery 能帮助监控和分析低水平的操作系统,提供更直观的…

    Linux系统 2025年6月8日
  • 简单介绍一下机器码与字节码

    什么是机器码 机器码(machine code),学名机器语言指令,有时也被称为原生码(Native Code),是电脑的CPU可直接解读的数据。 通常意义上来理解的话,机器码就是…

    Linux系统 2025年9月16日

发表回复

登录后才能评论