Wiederherstellen eines verschachtelten PV

Wiederherstellen eines verschachtelten PV

Auf meinem Proxmox 6.4-Host hatte ich einen 250 GB großen LVM Thin Pool. Ich habe darauf eine Ubuntu-VM erstellt (die LVM auch für die Root-Partition verwendete), diese aber versehentlich überbucht, sodass der PV innerhalb der VM auf 500 GB eingestellt wurde.

Eine Zeit lang lief alles prima, bis ich das versteckte 250-GB-Limit überschritten habe und die VM mit einem E/A-Fehler abstürzte und sich weigerte zu booten. Also versuche ich jetzt, die Festplatte wiederherzustellen. Die Partitionstabelle der Festplatte scheint intakt zu sein:

$ fdisk -l /dev/vm-disks/vm-101-disk-0
Disk /dev/vm-disks/vm-101-disk-0: 500 GiB, 536870912000 bytes, 1048576000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 65536 bytes / 65536 bytes
Disklabel type: gpt
Disk identifier: 30874BBC-0B29-4083-B5BF-E973C665D87F

Device                          Start        End    Sectors  Size Type
/dev/vm-disks/vm-101-disk-0p1    2048       4095       2048    1M BIOS boot
/dev/vm-disks/vm-101-disk-0p2    4096    2101247    2097152    1G Linux filesystem
/dev/vm-disks/vm-101-disk-0p3 2101248 1048573951 1046472704  499G Linux filesystem

Ich bin gelaufen

$ kpartx -a /dev/vm-disks/vm-101-disk-0

/dev/mapperum Einträge für die 3 Partitionen darin zu erstellen vm-101-disk-0, und das funktioniert. Wenn ich ausführe:

$ file -sL /dev/mapper/vm--disks-vm--101--disk--0p3
/dev/mapper/vm--disks-vm--101--disk--0p3: LVM2 PV (Linux Logical Volume Manager), UUID: fdOzWR-sPcy-hyYo-Lj2H-YEnZ-wK3c-J6biES, size: 535794024448

Dann kann ich dieses PV in der 3. Partition der Festplatte sehen. Aber wie kann ich es irgendwo im Host mounten, um mit der Datenwiederherstellung zu beginnen? Offensichtlich pvscansieht das Hostsystem es nicht, da es sich in einem anderen LV befindet. Habe ich hier überhaupt Optionen zur Wiederherstellung oder bedeutete die Tatsache, dass die VM dachte, sie hätte 500 GB, obwohl das in Wirklichkeit nicht der Fall war, dass ich es irreparabel beschädigt habe?

Antwort1

Die VM hat gerade Schreib-E/A-Fehler bekommen, als der Speicherplatz im Thin Pool erschöpft war. Bei einer VM sieht das so aus, als ob die Festplatte unerwartet alle Schreibvorgänge verweigert hat. Wenn die VM also reine Hardware war, bestand die erste Aktion darin, die neue Festplatte zu finden und diese fehlerhafte Festplatte darauf zu klonen. Nachdem die Hardware repariert ist, können Sie die logischen Strukturen reparieren.

Bei virtuellen Maschinen haben Sie keine defekte Hardware. Sie können die „Festplatte“ „reparieren“, indem Sie den Thin-Volume-Betrieb wiederherstellen. Vergrößern Sie einfach den Thin-Pool und verwenden Sie ihn lvextendauf dem Thin-Pool-LV, um etwas Speicherplatz hinzuzufügen.

Und wenn es fertig ist, booten Sie die VM von einem (virtuellen) Wiederherstellungsmedium und führen Sie eine Standardwiederherstellung des Dateisystems durch. Denken Sie daran, dass es nicht allzu schwierig sein kann; moderne Dateisysteme sind im Allgemeinen so ausgelegt, dass sie dieser Art von Fehler standhalten.


Überwachen Sie den Thin LVM. Obwohl die Erschöpfung des Datenspeicherplatzes kein so großes Problem darstellt,MetadatenErschöpfung kann einen viel größeren Einfluss haben. Lassen Sie das nicht zu.

verwandte Informationen