我怎样才能将丢失并找到的 pv 重新整合到 LVM vg 中?

我怎样才能将丢失并找到的 pv 重新整合到 LVM vg 中?

我最近丢失了一个 RAID,它是我的一个 Linux LVM 卷组的物理卷。我最终做了一个vgreduce --removemissing并继续恢复数据。

好吧,今天我发现了那个 RAID(它隐藏了,别问)。

# pvdisplay -m /dev/md2
  WARNING: Volume group mg20 is not consistent
  "/dev/md2" is a new physical volume of "499.87 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/md2
  VG Name               
  PV Size               499.87 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               SUXIe9-B4xG-Qlbz-5cSd-f1dh-cRQh-vOF4qz

mg20不一致,因为 lost&found PV/dev/md2可能包含提及文件系统的旧逻辑卷目录的副本/dev/md2

我如何重新整合/dev/md2mg20保留其上的文件系统?(并省去恢复其内容的麻烦)一个简化因素是/dev/md2仅包含一个 LV,并且该 LV 完全包含在 上/dev/md2

答案1

我想通了A恢复 raid 的方法。现代 LVM 系统经常备份 VG 配置。您可以使用 查看备份列表以及触发备份的命令vgcfgrestore --list。我选择了之前执行的那个,vgreduce --removemissing并在其中找到了以下相关内容:

pv8 {
        id = "SUXIe9-B4xG-Qlbz-5cSd-f1dh-cRQh-vOF4qz"
        device = "unknown device"       # Hint only

        status = ["ALLOCATABLE"]
        flags = ["MISSING"]
        dev_size = 1048312832   # 499.875 Gigabytes
        pe_start = 2048
        pe_count = 127967       # 499.871 Gigabytes
}

homes18 {
        id = "d7yt43-PMTv-XnsH-qAff-3d5A-ilB6-eQB0Jy"
        status = ["READ", "WRITE", "VISIBLE"]
        flags = []
        segment_count = 1

        segment1 {
                start_extent = 0
                extent_count = 89600    # 350 Gigabytes

                type = "striped"
                stripe_count = 1        # linear

                stripes = [
                        "pv8", 0
                ]
        }
}

所以我创建了该文件的副本并"MISSING"从中删除flags =。我还设置了device = "/dev/md2",尽管这可能不是必要的。我执行了vgcfgrestore -f /etc/lvm/archive/mg20_synthetic-2015.vg mg20,现在我的 mg20/homes18 恢复了并通过了 fsck。

说实话,我对这个答案不是很满意。恢复整个配置有点过头了。

我认为真正的答案可能涉及lvcreate -Z n,但我懒得进行必要的实验来验证这一点。

相关内容