• 在LVM中恢复已删除的逻辑卷


    本文介绍如何恢复已删除的逻辑卷,如要执行恢复将使用vgcfgrestore命令

    在执行任何逻辑卷管理相关任务时,如果意外的删除了逻辑卷,则可以使用它的数据还原功能来恢复逻辑卷。在下面的步骤中,将演示如何通过删除卷组中的任何一个逻辑卷,并恢复已删除的逻辑卷。

    系统环境

    Centos8

    现有的文件系统

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

    [root@localhost ~]# pvs
      PV             VG      Fmt  Attr PSize   PFree 
      /dev/nvme0n1p2 cl      lvm2 a--  <19.00g <2.00g
      /dev/sda       vg_data lvm2 a--  <20.00g     0 
      /dev/sdb       vg_data lvm2 a--  <20.00g     0 
    [root@localhost ~]# vgs
      VG      #PV #LV #SN Attr   VSize   VFree 
      cl        1   2   0 wz--n- <19.00g <2.00g
      vg_data   2   1   0 wz--n-  39.99g     0 
    [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-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
    

    在LVM中恢复已删除的逻辑卷在LVM中恢复已删除的逻辑卷
    /data目录中的文件如下:
    在LVM中恢复已删除的逻辑卷在LVM中恢复已删除的逻辑卷

    意外删除逻辑卷

    为了演示起见,请删除逻辑卷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
    

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

    [root@localhost ~]# vgs
      VG      #PV #LV #SN Attr   VSize   VFree 
      cl        1   2   0 wz--n- <19.00g <2.00g
      vg_data   2   0   0 wz--n-  39.99g 39.99g
    
    开始恢复逻辑卷

    现在,让我们看看如何还原已删除的逻辑卷。每当我们执行与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
    

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

    [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文件。
    在LVM中恢复已删除的逻辑卷在LVM中恢复已删除的逻辑卷
    在恢复之前,使用--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.
    

    在LVM中恢复已删除的逻辑卷在LVM中恢复已删除的逻辑卷
    试运行没问题之后,去掉--test选项,然后再执行一次:

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

    在LVM中恢复已删除的逻辑卷在LVM中恢复已删除的逻辑卷
    可看到成功恢复卷组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
    

    在LVM中恢复已删除的逻辑卷在LVM中恢复已删除的逻辑卷
    可看到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                                           
    

    在LVM中恢复已删除的逻辑卷在LVM中恢复已删除的逻辑卷
    上图可以看到"/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
    

    在LVM中恢复已删除的逻辑卷在LVM中恢复已删除的逻辑卷
    可以看到文件都已经存在了。

    总结

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

  • 相关阅读:
    关于 锁的四种状态与锁升级过程 图文详解
    悲观锁与乐观锁的实现(详情图解)
    面试三轮我倒在了一道sql题上——sql性能优化
    我的程序跑了60多小时,就是为了让你看一眼JDK的BUG导致的内存泄漏。
    快来!我从源码中学习到了一招Dubbo的骚操作!
    我从LongAdder中窥探到了高并发的秘籍,上面只写了两个字...
    震惊!ConcurrentHashMap里面也有死循环,作者留下的“彩蛋”了解一下?
    mybatis 逆向工程使用姿势不对,把表清空了,心里慌的一比,于是写了个插件。
    吐血输出:2万字长文带你细细盘点五种负载均衡策略。
    mybatis开发,你用 xml 还是注解?我 pick ...
  • 原文地址:https://www.cnblogs.com/linuxprobe/p/15366836.html
Copyright © 2020-2023  润新知