LVM 逻辑卷 VG 卷组丢失的处理流程记录

简介:

LVM 是通过将物理的磁盘或磁盘分区创建成物理卷(PV),多个物理卷添加创建为一个卷组(VG),然后在卷组的基础上创建逻辑卷(LVM),进而在逻辑卷上去创建文件系统,这种在硬盘或分区和文件系统之下的磁盘管理机制大大提高了对磁盘管理的灵活性,也是当前企业 Linux 环境下实现对磁盘分区管理的方式。 但在实际应用管理中,常常因为误操作,系统重启等原因造成卷组丢失,逻辑卷无法挂载等异常的故障,本文将逻辑卷故障处理过程给大家分享因为系统重启原因造成卷组丢失的恢复方法。

背景: 

以下是以centos6系统底层为例做的LVM逻辑卷恢复.且硬盘组的是raid5的阵列.单盘也是一样的流程步骤

 (一)LVM恢复步骤

1、lsblk查看列出关于块设备(如硬盘及其分区)的信息。查看pool0-storage0的LVM是否还存在

#lasblk
NAME                 MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINTS
sda                    8:0    0  3.6T  0 disk  
└─sda1                 8:1    0  3.6T  0 part  
  └─md0                9:0    0 10.9T  0 raid5 
    └─pool0-storage0 252:0    0 10.9T  0 lvm   
sdb                    8:16   0  3.6T  0 disk  
└─sdb1                 8:17   0  3.6T  0 part  
  └─md0                9:0    0 10.9T  0 raid5 
    └─pool0-storage0 252:0    0 10.9T  0 lvm   
sdc                    8:32   1  3.6T  0 disk  
└─sdc1                 8:33   1  3.6T  0 part  
  └─md0                9:0    0 10.9T  0 raid5 
    └─pool0-storage0 252:0    0 10.9T  0 lvm   
sdd                    8:48   1  3.6T  0 disk  
└─sdd1                 8:49   1  3.6T  0 part  
  └─md0                9:0    0 10.9T  0 raid5 
    └─pool0-storage0 252:0    0 10.9T  0 lvm 

2、如果存在的情况下且当前pool0-storage0的LVM逻辑卷有异常需要进行移除

PS:基本为拔插盘,替换m2加速包或者频繁非常规操作替换raid硬盘,导致lvm信息出现混乱。Lvm无法reload,需要解除lvm的报错信息并恢复lvm相关信息。

 (1)pvs vgs lvs 确认卷组是否还在  还存在的话需要  vgremove pool0删除卷组

以下展示为例,VG卷还是存在的

root@test:~# pvs
  PV         VG    Fmt  Attr PSize   PFree
  /dev/md0   pool0 lvm2 a--  <10.92t    0 
root@test:~# vgs
  VG    #PV #LV #SN Attr   VSize   VFree
  pool0   1   1   0 wz--n- <10.92t    0 
root@test:~# lvs
  LV       VG    Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  storage0 pool0 -wi-ao---- <10.92t    

#pvs: 列出物理卷(PV)的信息。显示物理卷的名称(PV)、卷组(VG)、格式(Fmt)、属性(Attr)、物理大小(PSize)和可用空间(PFree)等详细信息。

#vgs: 列出卷组(VG)的信息。显示卷组的名称(VG)、物理卷数量(#PV)、逻辑卷数量(#LV)、快照数量(#SN)、属性(Attr)、卷组大小(VSize)和可用空间(VFree)等详细信息。

#lvs: 列出逻辑卷(LV)的信息。显示逻辑卷的名称(LV)、所属卷组(VG)、属性(Attr)、逻辑卷大小(LSize)、池(Pool)信息、起源(Origin)、数据使用率(Data%)、元数据使用率(Meta%)、移动信息(Move)、日志信息(Log)、拷贝同步率(Cpy%Sync)和转换信息(Convert)等详细信息。  
(2)vgremove pool0移除卷组 或 vgreduce --removemissing --force poolx 如果删除卷组失败的话需要加--force强制移除 

PS: poolx中的x表示数字。按自身实际情况为准

root@test:/etc/lvm/archive# vgremove pool0
Do you really want to remove volume group "pool0" containing 1 logical volumes? [y/n]: y
  Logical volume "storage0" successfully removed.
  Volume group "pool0" successfully removed

#
root@test:/etc/lvm/archive# lvs
root@test:/etc/lvm/archive# vgs
root@test:/etc/lvm/archive# 
#vgremove pool0以后lvs的逻辑卷也会一同卸下来
PS:同理,使用lvremove /dev/pool0/storage0命令也会把VG物理卷组一同卸下来看个人习惯使用其中一条即可
 (3)当移除完卷则以后敲lsblk查询挂载情况
root@test:/etc/lvm/archive# lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINTS
sda             8:0    0  3.6T  0 disk  
└─sda1          8:1    0  3.6T  0 part  
  └─md0         9:0    0 10.9T  0 raid5 
sdb             8:16   0  3.6T  0 disk  
└─sdb1          8:17   0  3.6T  0 part  
  └─md0         9:0    0 10.9T  0 raid5 
sdc             8:32   1  3.6T  0 disk  
└─sdc1          8:33   1  3.6T  0 part  
  └─md0         9:0    0 10.9T  0 raid5 
sdd             8:48   1  3.6T  0 disk  
└─sdd1          8:49   1  3.6T  0 part  
  └─md0         9:0    0 10.9T  0 raid5 
#这时候看到pool0-storage0的LVM逻辑卷已经移除掉了.说明操作是成功的
 (4)如果你想要移除 /dev/md0 上的 LVM 元数据,使其不再作为 LVM 的一部分,可以使用 pvremove 命令
root@test:/etc/lvm/archive# pvs
  PV         VG Fmt  Attr PSize   PFree  
  /dev/md0      lvm2 ---  <10.92t <10.92t
root@test:/etc/lvm/archive# pvremove /dev/md0
  Labels on physical volume "/dev/md0" successfully wiped.
root@test:/etc/lvm/archive# pvs
root@test:/etc/lvm/archive# 
#这时候可以看到pvs是已经成功移除了.

3、恢复存储空间的vg、pv信息

由上可看到存储空间对应的 md0的vg信息已经缺失了,我们需要对存储空间的vg进行恢复。Lvm在创建的时候每一步对lvm的操作都会在/etc/lvm/archive下有快照备份。我们需要对这个目录下的快照文件选择一个来恢复。 

root@test:/etc/lvm/archive# cd /etc/lvm/archive/
root@test:/etc/lvm/archive# ll
drwx------    2 root     root          4096 Mar  6 16:03 ./
drwxr-xr-x    1 root     root          4096 Mar  6 14:07 ../
-rw-------    1 root     root          1304 Mar  6 14:07 pool0_00000-605889447.vg
-rw-------    1 root     root          1296 Mar  6 15:40 pool0_00001-1111255981.vg
-rw-------    1 root     root          1276 Mar  6 15:53 pool0_00002-736100645.vg
-rw-------    1 root     root          1301 Mar  6 16:00 pool0_00003-1927884094.vg
-rw-------    1 root     root          1276 Mar  6 16:03 pool0_00004-265621507.vg
-rw-------    1 root     root          1287 Mar  6 16:03 pool0_00005-1062707757.vg

#这些文件是逻辑卷管理(LVM)中的卷组快照(snapshot)文件。在LVM中,快照是一种可以创建文件系统或逻辑卷(LV)当前状态的只读副本的技术。这些快照文件通常用于备份或恢复数据。
(1)vi在列表中查看快照备份中,找到包含有pv、pool0、storage0的id卷组查看。

文件需要包含有三组主要信息如下:

pool0 {                                                                            
                        id = "eEvQNI-W0aA-3v1q-Vhg3-Qx3x-IScI-kWsp2M"  


  pv0 {            
                        id = "aNabPN-iAHw-v2i8-QEzh-IfNu-bOFM-fMGxRG"


storage0 {
                        id = "ajPRz5-ulb8-ErXN-Ohdc-eCo1-zAqz-yyHF0R"
 (2)这时候我们开始操作恢复pv
root@test:/etc/lvm/archive# pvcreate --uuid "aNabPN-iAHw-v2i8-QEzh-IfNu-bOFM-fMGxRG" --restorefile /etc/lvm/archive/pool0_00000-605889447.vg /dev/md0

  WARNING: Couldn't find device with uuid aNabPN-iAHw-v2i8-QEzh-IfNu-bOFM-fMGxRG.
  Physical volume "/dev/md0" successfully created.

root@test:/etc/lvm/archive# pvs
  PV         VG Fmt  Attr PSize   PFree  
  /dev/md0      lvm2 ---  <10.92t <10.92t

#这时候看到pvs是已经被恢复完成了,以下是命令的解释
这条命令是用于在逻辑卷管理(LVM)中恢复一个物理卷(PV)的元数据。这个操作通常在物理卷的元数据损坏或者被意外清除后执行。命令的各个部分如下:

pvcreate:这是执行物理卷创建的命令。在这种情况下,它被用来恢复物理卷的元数据。

---uuid:这个选项后面跟着的是物理卷的UUID(通用唯一标识符)。UUID是LVM用来唯一标识物理卷的一串字符。

"aNabPN-iAHw-v2i8-QEzh-IfNu-bOFM-fMGxRG":这是想要恢复的物理卷的UUID。

--restorefile:这个选项指定了一个文件,该文件包含了物理卷的备份元数据。在LVM中,当你创建物理卷时,系统会创建一个包含物理卷元数据的备份文件,以便在需要时恢复。

/etc/lvm/archive/pool0_00000-605889447.vg:这是恢复文件的路径。这个文件名通常包含了卷组的名称和创建时间戳,以及 .vg 扩展名,这是LVM备份文件的标识。

/dev/md0:这是你想要恢复元数据的物理设备。在这个例子中,md0 是一个设备名,它可能代表一个MD(多设备)设备,这是一个由多个物理硬盘组成的逻辑设备。也有可能是sdb或sda1具体按实际情况而定
 (3)上面恢复完pv以后,现在我们操作恢复vg
root@test:/etc/lvm/archive# vgcfgrestore -f /etc/lvm/archive/pool0_00000-605889447.vg pool0

  Restored volume group pool0.

root@test:/etc/lvm/archive# vgs
  VG    #PV #LV #SN Attr   VSize   VFree
  pool0   1   1   0 wz--n- <10.92t    0 

root@test:/etc/lvm/archive# lvs
  LV       VG    Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  storage0 pool0 -wi------- <10.92t  
                                                  
root@test:/etc/lvm/archive# 

#这是看到vgs和lvs都被恢复了,以下是对vg恢复的命令解释:

vgcfgrestore 命令是 LVM(逻辑卷管理)中用于恢复卷组配置的工具。当卷组配置丢失或损坏时,可以使用这个命令来从备份中恢复。这个命令通常在系统恢复或迁移过程中使用。

vgcfgrestore:这是执行卷组配置恢复的命令。

-f:这个选项后面跟着的是卷组配置备份文件的路径。

/etc/lvm/archive/pool0_00000-605889447.vg:这是卷组配置备份文件的完整路径。

pool0:这是你想要恢复的卷组的名称。
 (4)执行/etc/init.d/lvm2 restart重新激活所有lvm的状态
root@test:/etc/lvm/archive# /etc/init.d/lvm2 restart
  0 logical volume(s) in volume group "pool0" now active
  Found volume group "pool0" using metadata type lvm2
  1 logical volume(s) in volume group "pool0" now active

PS:如果是centos7或debian系统可以执行这两个命令重启LVM服务
systemctl restart lvm2-lvmetad.service
systemctl restart lvm2-lvmpolld.service

#执行完以后lsblk查看是否有挂载上.
root@test:/etc/lvm/archive# lsblk
NAME                 MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINTS
sda                    8:0    0  3.6T  0 disk  
└─sda1                 8:1    0  3.6T  0 part  
  └─md0                9:0    0 10.9T  0 raid5 
    └─pool0-storage0 252:0    0 10.9T  0 lvm   /mnt/60d5846b-716f-489a-8f74-94bdaacea780
sdb                    8:16   0  3.6T  0 disk  
└─sdb1                 8:17   0  3.6T  0 part  
  └─md0                9:0    0 10.9T  0 raid5 
    └─pool0-storage0 252:0    0 10.9T  0 lvm   /mnt/60d5846b-716f-489a-8f74-94bdaacea780
sdc                    8:32   1  3.6T  0 disk  
└─sdc1                 8:33   1  3.6T  0 part  
  └─md0                9:0    0 10.9T  0 raid5 
    └─pool0-storage0 252:0    0 10.9T  0 lvm   /mnt/60d5846b-716f-489a-8f74-94bdaacea780
sdd                    8:48   1  3.6T  0 disk  
└─sdd1                 8:49   1  3.6T  0 part  
  └─md0                9:0    0 10.9T  0 raid5 
    └─pool0-storage0 252:0    0 10.9T  0 lvm   /mnt/60d5846b-716f-489a-8f74-94bdaacea780

 

到这里已是完整结束, 操作需要对linux系统的xfs文件系统分区以及系统挂载硬盘信息有一定的基础和了解.希望对大家有帮助

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ycchenG7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值