阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

35次阅读
没有评论

共计 4231 个字符,预计需要花费 11 分钟才能阅读完成。

导读 本文介绍如何恢复已删除的逻辑卷,如要执行恢复将使用 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 中恢复已删除的逻辑卷
/data 目录中的文件如下:
在 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 中恢复已删除的逻辑卷
使用 lvs 命令打印并确认我们已经删除了逻辑卷 lv_data:
在 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 中恢复已删除的逻辑卷
在上面删除逻辑卷的步骤中,使用 lvremove -v /dev/vg_data/lv_data 命令时,可以看到输出的详细信息,有 archiving 和 create backup。
在 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 中恢复已删除的逻辑卷
在恢复之前,使用 --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 中恢复已删除的逻辑卷
试运行没问题之后,去掉 --test 选项,然后再执行一次:

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

在 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 中恢复已删除的逻辑卷
可看到 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 中恢复已删除的逻辑卷
上图可以看到 ”/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 中恢复已删除的逻辑卷
可以看到文件都已经存在了。

总结

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

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计4231字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中