Восстановление вложенного PV

Восстановление вложенного PV

На моем хосте Proxmox 6.4 у меня был пул LVM Thin размером 250 ГБ. Я создал на нем Ubuntu VM (которая также использовала LVM для корневого раздела), но случайно переподписал ее, поэтому PV внутри VM был установлен на 500 ГБ.

Все работало отлично некоторое время, пока я не превысил скрытый лимит в 250 ГБ, и виртуальная машина рухнула с ошибкой ввода-вывода и отказалась загружаться. Так что теперь я пытаюсь восстановить диск. Таблица разделов диска, похоже, не повреждена:

$ 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

Я бежал

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

для создания /dev/mapperзаписей для 3 разделов внутри vm-101-disk-0, и это работает. Если я запускаю:

$ 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

Затем я вижу этот PV внутри 3-го раздела диска. Но как мне смонтировать его где-нибудь на хосте, чтобы начать восстановление данных? Очевидно, pvscanчто хостовая система его не видит, так как он находится внутри другого LV. Есть ли у меня вообще какие-либо варианты восстановления, или тот факт, что VM думала, что у нее 500 ГБ, когда на самом деле это не так, означает, что я повредил его без возможности восстановления?

решение1

VM только что получила ошибки ввода-вывода записи, когда пространство в тонком пуле было исчерпано. Для VM это выглядит так, как будто жесткий диск неожиданно отклонил все записи. Так что если VM была голым оборудованием, первым действием было найти новый жесткий диск и клонировать на него этот плохой. После исправления HW вы можете исправить логические структуры.

В случае виртуальных машин, у вас нет сломанного оборудования, вы можете "исправить" "жесткий диск", восстановив работу тонкого тома. Просто увеличьте тонкий пул, используйте lvextendна тонком пуле LV, чтобы добавить немного места.

И когда это будет сделано, загрузите VM с какого-нибудь (виртуального) носителя для восстановления и выполните стандартное восстановление файловой системы. Помните, что не может быть больших трудностей; современные файловые системы, как правило, спроектированы так, чтобы выдерживать такие сбои.


Контролируйте тонкий LVM. Хотя исчерпание пространства данных не является такой уж большой проблемой,метаданныеУсталость может иметь гораздо большее влияние. Не позволяйте этому случиться.

Связанный контент