• centos/redhat 系统误删除逻辑卷之后如何恢复


    此次操作只针对同一台机器的逻辑卷,如果不同机器物理卷分区的start 和 end磁柱是相同的话,也可以用此方法恢复,但是还是只建议通过备份文件恢复本机逻辑卷

    首先查看系统卷组和逻辑卷的信息

    [root@master ~]# pvs
      PV         VG     Fmt  Attr PSize    PFree
      /dev/sda2  centos lvm2 a--   <19.00g    0
      /dev/sdb   iso    lvm2 a--   <50.00g    0
      /dev/sdc   iso    lvm2 a--  <100.00g    0
    [root@master ~]# vgs
      VG     #PV #LV #SN Attr   VSize   VFree
      centos   1   2   0 wz--n- <19.00g    0
      iso      2   1   0 wz--n- 149.99g    0
    [root@master ~]# lvs
      LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      root centos -wi-ao---- <17.00g
      swap centos -wi-ao----   2.00g
      iso  iso    -wi-ao---- 149.99g
    [root@master ~]#

    逻辑卷iso就是本次测试的卷,现在查看/dev/mapper/iso-iso的挂载和使用情况,确定一会删除逻辑卷,恢复逻辑卷的操作之后,改卷里面存储的数据还在

    [root@master ~]# mount|grep iso
    /dev/sr0 on /mnt type iso9660 (ro,relatime)
    /dev/mapper/iso-iso on /iso type xfs (rw,relatime,attr2,inode64,noquota)
    [root@master ~]# ll -h /iso/
    total 12G
    drwxrwxr-x   8 root root  301 Dec 14 15:16 Aug_c7
    -rw-r--r--   1 root root 3.7G Apr 13 09:55 CentOS-6.7-x86_64-bin-DVD1.iso
    -rw-r--r--   1 root root 3.7G Apr 13 09:58 rhel-server-6.10-x86_64-dvd.iso
    -rw-r--r--.  1 root root 4.2G Dec 16  2020 rhel-server-7.6-x86_64-dvd.iso
    drwxr-xr-x   2 root root  329 Dec 24  2020 xrdp_rpm
    [root@master ~]# md5sum /iso/CentOS-6.7-x86_64-bin-DVD1.iso
    51f90e8ddd2ea199780065eaf75130ad  /iso/CentOS-6.7-x86_64-bin-DVD1.iso
    

     目前/dev/mapper/iso-iso 挂载点是 /iso ,随便测试一个该目录下文件的md5值,接下来卸载/iso 删除逻辑卷/dev/mapper/iso-iso

    [root@master ~]# pwd
    /root
    [root@master ~]# umount /iso/
    [root@master ~]# mount|grep iso
    /dev/sr0 on /mnt type iso9660 (ro,relatime)
    [root@master ~]# lvremove /dev/mapper/iso-iso
    Do you really want to remove active logical volume iso/iso? [y/n]: y
      Logical volume "iso" successfully removed
    [root@master ~]# lvs
      LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      root centos -wi-ao---- <17.00g
      swap centos -wi-ao----   2.00g
    [root@master ~]# vgs
      VG     #PV #LV #SN Attr   VSize   VFree
      centos   1   2   0 wz--n- <19.00g      0
      iso      2   0   0 wz--n- 149.99g 149.99g
    [root@master ~]# vgdisplay iso
      --- Volume group ---
      VG Name               iso
      System ID
      Format                lvm2
      Metadata Areas        2
      Metadata Sequence No  8
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                0
      Open LV               0
      Max PV                0
      Cur PV                2
      Act PV                2
      VG Size               149.99 GiB
      PE Size               4.00 MiB
      Total PE              38398
      Alloc PE / Size       0 / 0
      Free  PE / Size       38398 / 149.99 GiB
      VG UUID               iGQ1co-OmqO-twIM-2q0k-DOXo-scwU-GKvLaV

    现在已经看不到逻辑卷/dev/mapper/iso-iso了,接下来的是本次测试的重点,通过/etc/lvm/backup 下面的文件恢复误删除的逻辑卷

    [root@master ~]# vgcfgrestore -l iso

      File:         /etc/lvm/archive/iso_00000-1039582144.vg
      Couldn't find device with uuid M5ny55-aaxW-B1a6-mfO8-71KS-esUy-vVR7US.
      VG name:      iso
      Description:  Created *before* executing 'lvcreate -l 100%VG -n iso iso'
      Backup Time:  Wed Dec 16 22:49:04 2020


      File:         /etc/lvm/archive/iso_00001-526221888.vg
      VG name:      iso
      Description:  Created *before* executing 'vgextend iso /dev/sdc'
      Backup Time:  Tue Apr  6 10:37:32 2021


      File:         /etc/lvm/archive/iso_00002-911244127.vg
      Couldn't find device with uuid zi6nCl-SafG-ZeMQ-BLWr-eBfJ-M3cQ-bXBYO4.
      VG name:      iso
      Description:  Created *before* executing 'lvextend -l +100%FREE /dev/mapper/iso-iso'
      Backup Time:  Tue Apr  6 10:41:34 2021


      File:         /etc/lvm/archive/iso_00003-618668943.vg
      VG name:      iso
      Description:  Created *before* executing 'lvremove /dev/mapper/iso-iso'
      Backup Time:  Tue Apr 19 08:46:26 2022


      File:         /etc/lvm/backup/iso
      VG name:      iso
      Description:  Created *after* executing 'lvremove /dev/mapper/iso-iso'
      Backup Time:  Tue Apr 19 08:46:26 2022

     从备份文件查看卷组iso的元数据信息,因为/dev/mapper/iso-iso 是从卷组iso创建出来的,备份文件中有两条信息比较重要

      File:         /etc/lvm/archive/iso_00003-618668943.vg
      VG name:      iso
      Description:  Created *before* executing 'lvremove /dev/mapper/iso-iso' #该备份文件是在remove逻辑卷之前创建的备份文件,我们一会通过该文件恢复
      Backup Time:  Tue Apr 19 08:46:26 2022
    
    
      File:         /etc/lvm/backup/iso
      VG name:      iso
      Description:  Created *after* executing 'lvremove /dev/mapper/iso-iso'  #该备份文件是所有关于卷组操作之后最终状态的备份文件
      Backup Time:  Tue Apr 19 08:46:26 2022
    

     我们根据 /etc/lvm/archive/iso_00003-618668943.vg 恢复逻辑卷 /dev/mapper/iso-iso

    [root@master ~]# vgcfgrestore -f /etc/lvm/archive/iso_00003-618668943.vg iso
      Restored volume group iso
      Scan of VG iso from /dev/sdb found mda_checksum 24fd491d mda_size 1283 vs previous c4bc5e04 864
      Scan of VG iso from /dev/sdc found mda_checksum 24fd491d mda_size 1283 vs previous c4bc5e04 864
    [root@master ~]# lvs
      LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      root centos -wi-ao---- <17.00g
      swap centos -wi-ao----   2.00g
      iso  iso    -wi------- 149.99g  #此时iso卷虽然恢复,但是还没有激活,相关知识点跳过本文最后附加知识点去看
    或者通过以下命令查看
    [root@master ~]# lvscan
      ACTIVE            '/dev/centos/swap' [2.00 GiB] inherit
      ACTIVE            '/dev/centos/root' [<17.00 GiB] inherit
      inactive          '/dev/iso/iso' [149.99 GiB] inherit    #inactive 未激活
    [root@master ~]# vgs VG #PV #LV #SN Attr VSize VFree centos 1 2 0 wz--n- <19.00g 0 iso 2 1 0 wz--n- 149.99g 0

     激活vg,挂载验证

    [root@master ~]# vgchange -ay iso
      1 logical volume(s) in volume group "iso" now active
    [root@master ~]# lvs
      LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      root centos -wi-ao---- <17.00g
      swap centos -wi-ao----   2.00g
      iso  iso    -wi-ao---- 149.99g  #此时逻辑卷已经激活
    [root@master ~]# mount /dev/mapper/iso-iso /iso/
    mount: /dev/mapper/iso-iso is already mounted or /iso busy
           /dev/mapper/iso-iso is already mounted on /iso
    [root@master ~]# ll -h /iso/
    total 12G
    drwxrwxr-x   8 root root  301 Dec 14 15:16 Aug_c7
    -rw-r--r--   1 root root 3.7G Apr 13 09:55 CentOS-6.7-x86_64-bin-DVD1.iso
    -rw-r--r--   1 root root 3.7G Apr 13 09:58 rhel-server-6.10-x86_64-dvd.iso
    -rw-r--r--.  1 root root 4.2G Dec 16  2020 rhel-server-7.6-x86_64-dvd.iso
    drwxr-xr-x   2 root root  329 Dec 24  2020 xrdp_rpm
    [root@master ~]# md5sum /iso/CentOS-6.7-x86_64-bin-DVD1.iso
    51f90e8ddd2ea199780065eaf75130ad  /iso/CentOS-6.7-x86_64-bin-DVD1.iso  #md5值一样,说明数据恢复回来了
    

     因为数据是最终存储在底层的,所以即使删除了lv,也不会真的把数据删除

    附加知识点

    pvs 显示字段
     参数               标题              描述
     dev_size        DevSize          创建物理卷的基本设备的大小
     pe_start         1st PE          在基本设备中调整到第一个物理扩展的起始位置
     pv_attr         Attr             物理卷状态:可分配(a)或者导出的(x)。
     pv_fmt          Fmt              物理卷的元数据格式(lvm2 或者 lvm1)
     pv_free         PFree            物理卷中剩余的可用空间
     pv_name         PV               物理卷名称
     pv_pe_alloc_count Alloc          已经使用的物理扩展数目
     pv_pe_count     PE               物理扩展数量
     pvseg_size       SSize           物理卷的片段大小
     pvseg_start      Start           物理卷片段的起始物理扩展
     pv_size         PSize            物理卷的大小
     pv_tags         PV Tags          附加到物理卷的 LVM 标签
     pv_used         Used             目前物理卷中已经使用的空间量
     pv_uuid         PV UUID          物理卷的 UUID
     
    vgs 显示字段
     参数              标题               描述
     lv_count        #LV              卷组中含有的逻辑卷数目
     max_lv          MaxLV            卷组中最多可用逻辑卷数量(如果没有限制就是 0)
     max_pv          MaxPV            卷组中最多允许的物理卷数目(如果没有限制就是0)
     pv_count        #PV              定义卷组的物理卷数目
     snap_count      #SN              卷组包含的快照数目
     vg_attr         Attr             卷组状态:可写入(w)、只读(r)、可重新定义大小(z)、导出 的(x)、不完整的(p)和群集的(c)。
     vg_extent_count #Ext             卷组中的物理扩展数目
     vg_extent_size  Ext              卷组中物理扩展的大小
     vg_fmt          Fmt              卷组(lvm2 或者 lvm1)的元数据格式
     vg_free         VFree            卷组中剩余可用空间
     vg_free_count   Free             卷组中可用物理扩展数目
     vg_name         VG               卷组名称
     vg_seqno        Seq              代表修正卷组的数字
     vg_size         VSize            卷组大小
     vg_sysid        SYS ID           LVM1 系统 ID
     vg_tags         VG Tags          附加到卷组中的 LVM 标签
     vg_uuid         VG UUID          卷组的 UUID
     
    lvs 显示字段
     参数           标题           描述
     chunksize    Chunk        快照卷的单位大小
     chunk_size
     copy_percent Copy%        镜像卷的同步化比例,还可在使用 pv_move 命令移动物理扩展时使
                               用。
     devices      Devices      组成逻辑卷的基本设备:物理卷、逻辑卷以及起始物理和逻辑扩展
     lv_attr      Attr         逻辑卷状态。逻辑卷属性字节如下:
                               字节 1:卷类型:镜像(m)、不带初始同步的镜像(M )、源(o)、pvmove(p)、快照(s)、不可用快照(S)、虚拟(v)
                               字节 2:权限:可写入(w),只读(r)
                               字节 3:分配策略:持续(c)、正常(n)、任意(a)、继承(i)。如果在修改分配时锁定了卷,就会显示成大写,比如在执行pvmove 命令的时候。
                               字节 4:固定的副号码(m)
                               字节 5:激活(a)、暂停的(s)、不可用快照(I)、不可用暂停 快照(S)、不带表格的映射设备(d)、带未激活表格的映射设备(i)
                               字节 6:设备开放(o)
     lv_kernel_major KMaj      逻辑卷的真实主设备号码(如果是未激活就减 1)
     lv_kernel_minor KMIN      逻辑卷的真实副设备号码(如果是未激活就减 1)
     lv_major     Maj          逻辑卷持久的主设备号码(如果未指定就减 1)
     lv_minor     Min          逻辑卷持久的副设备号码(如果未指定就减 1)
     lv_name      LV           逻辑卷名称
     lv_size      LSize        逻辑卷的大小
     lv_tags      LV Tags      附加到逻辑卷的 LV 标签
     lv_uuid      LV UUID      逻辑卷的 UUID
     mirror_log   Log          镜像分支所在设备
     modules      Modules      使用此逻辑卷符合内核设备映射器目标需要
     move_pv      Move         用 pvmove 命令创建的临时逻辑卷的源物理卷
     origin       Origin       快照卷的源设备
     regionsize   Region       镜像逻辑卷的单元大小
     region_size
     seg_count    #Seg         逻辑卷中片段的数目
     seg_size     SSize        逻辑卷中片段的大小
     seg_start    Start        修正逻辑卷中的片段
     seg_tags     Seg Tags     附加到逻辑卷片段的 LVM 标签
     segtype      Type         逻辑卷的片段类型(例如:镜像、条状、线性)
     snap_percent Snap%        已经使用的快照卷的比例
     stripes      #Str         逻辑卷中条带或者镜像的数目
     stripesize   Stripe       条状逻辑卷中条带的单位大小
     stripe_size 
    
  • 相关阅读:
    Windows--查看端口占用
    设计模式--策略模式--简记
    Java--运算符的优先级表
    乐观锁和悲观锁--简记
    设计模式--适配器模式--简记
    设计模式--建造者模式--简记
    设计模式--抽象工厂模式--简记
    设计模式--工厂方法模式--简记
    寒假学习进度
    程序员修炼之道--从小工到专家阅读笔记03
  • 原文地址:https://www.cnblogs.com/augusite/p/16163866.html
Copyright © 2020-2023  润新知