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

原因分析

查看 /etc/lvm/archive/VG 名文件中 PV 的 ID 号,与 pvdisplay /dev/vdc 命令中显示的 UUID 号不一致,初步判断是因为系统重启后,/dev/vdc 的 UUID 号发生变化了。导致 VG 无法找到对应的物理卷。

VG找回步骤

  1. 为了防止数据丢失或破坏,首先对 /dev/vdc 设备的数据进行备份。

    dd if=/dev/vdc of=/data/vdc.img
  2. Linux 的 LVM 会默认存储用户对 PV/VG/LV 的每一步操作,并自动把当前的 VG 的信息备份到一个文件里面,位置是 /etc/lvm/backup/VG 名或者 /etc/lvm/archive/VG 名。这个文件里面记录的东西大概跟 vgdisplay/pvdisplay/lvdisplay 输出的信息一致,里面也包括了对于恢复 VG 信息至关重要的 PV UUID。

    cat /etc/dev/vdc/vgtest_00002-645033136.vg
    bestp linux lvm datarecovery 1
  3. 使用原来的 PV UUID 来创建 PV,并使用自动备份的文件来恢复信息。

    pvcreate /dev/vdc -u qaTzJn-Hdgc-aeC5-EUT0-H1l1-tPiA-rYXnDx --restorefile /etc/lvm/archive/vgtest_00002-645033136.vg
  4. 恢复 VG。

    vgcfgrestore -f archive/vgtest_00002-645033136.vg vgtest
  5. 激活 VG。

    vgchange -ay vgtest
  6. 挂载。

    mount /dev/vgtest/lvtest

    挂载之后可以让业务方确认数据是否已恢复。