在我的Proxmox6.4主机上,我有一个250 an大的LVM瘦池。我在它上创建了一个Ubuntu (它也对根分区使用了LVM ),但是意外地超额订阅了它,所以VM中的PV被设置为500 to。
所有事情都运行了一段时间,直到我检查了隐藏的250 to限制,VM崩溃了一个I/O错误,并拒绝启动。所以现在我想恢复磁盘。磁盘的分区表似乎完好无损:
$ 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在磁盘的第三个分区内。但是我如何在主机的某个地方挂载它来开始恢复数据呢?显然,来自主机系统的pvscan
看不到它,因为它在另一个LV中。我在这里是否有任何恢复的选择,或者VM认为它有500 Do的事实,而实际上并不意味着我已经损坏了这个无法修复的地方?
发布于 2021-09-11 06:20:30
当瘦池中的空间耗尽时,VM刚刚收到了写I/O错误。对于VM来说,这看起来像是硬盘意外地拒绝了所有写操作。因此,如果VM是裸露的硬件,第一个操作就是找到新的硬盘并将这个坏硬盘克隆到其中。在修复HW之后,您可以修复逻辑结构。
对于虚拟机,您没有任何损坏的硬件,您可以通过恢复瘦卷操作来“修复”“硬盘”。只需放大瘦池,使用lvextend
对瘦池LV添加一些空间。
完成后,从某些恢复(虚拟)媒体启动VM,并执行标准的文件系统恢复。请记住,不会有太大的困难;现代的文件系统通常是设计来承受这种故障的。
监视薄的LVM。虽然数据空间耗尽并不是一个大问题,但元数据耗尽可能会产生更大的影响。别让这种事发生。
https://serverfault.com/questions/1077150
复制相似问题