wie kann ich ein verlorenes und gefundenes PV wieder in ein LVM-VG integrieren?

wie kann ich ein verlorenes und gefundenes PV wieder in ein LVM-VG integrieren?

Ich habe kürzlich ein RAID verloren, das ein physisches Volume einer meiner Linux-LVM-Volumegruppen war. Ich habe schließlich ein Backup erstellt vgreduce --removemissingund mich an die Wiederherstellung der Daten gemacht.

Nun, heute habe ich das RAID gefunden (es war versteckt, fragen Sie nicht).

# 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

mg20ist nicht konsistent, da das Lost&Found-PV /dev/md2wahrscheinlich Kopien des alten logischen Volumekatalogs enthält, in dem das darauf befindliche Dateisystem erwähnt wird /dev/md2.

Wie kann ich das darauf befindliche Dateisystem wieder integrieren und bewahren? (und mir die Mühe ersparen, den Inhalt wiederherzustellen) Ein vereinfachender Faktor ist, dass /dev/md2nur ein LV enthalten war und dieses LV vollständig auf enthalten war .mg20/dev/md2/dev/md2

Antwort1

Ich fand herausAMöglichkeit, das Raid wiederherzustellen. Moderne LVM-Systeme erstellen recht häufig Backups der VG-Konfiguration. Sie können eine Liste Ihrer Backups und der Befehle, die sie ausgelöst haben, mit sehen vgcfgrestore --list. Ich habe das von vorhin ausgewählt, als ich das gemacht habe, vgreduce --removemissingund habe diese relevanten Teile darin gefunden:

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
}

Und

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
                ]
        }
}

Also habe ich eine Kopie dieser Datei erstellt und sie "MISSING"aus dem entfernt flags =. Ich habe auch den gesetzt device = "/dev/md2", obwohl das wahrscheinlich nicht notwendig war. Ich habe einen ausgeführt vgcfgrestore -f /etc/lvm/archive/mg20_synthetic-2015.vg mg20und jetzt ist mein mg20/homes18 wieder da und besteht einen fsck.

Ehrlich gesagt bin ich mit dieser Antwort nicht wirklich zufrieden. Es ist ein bisschen übertrieben, die GESAMTE Konfiguration wiederherzustellen.

Ich denke, eine echte Antwort könnte beinhalten lvcreate -Z n, aber ich bin zu faul, die notwendigen Experimente durchzuführen, um dies zu überprüfen.

verwandte Informationen