无法恢复 LVM 逻辑卷配置 - 缺少 PV

无法恢复 LVM 逻辑卷配置 - 缺少 PV

我有一个带有 3 个 pv 的 VG。该 VG 有一个使用所有三个 PV 的 LV。然后一个 PV(hdd)坏了。我想尝试恢复我能恢复的一切。所以我需要做的第一件事就是从 LV/VG 中删除丢失的 PV。按照我在谷歌上找到的说明,我使用 vgreduce 删除了那个 PV。但是,据我所知,这也删除了 LV。我现在正尝试恢复原始配置,即 vgreduce 之前的配置,以改用 vgchange。我使用的是 vgcfgrestore -f ,其中存档文件是在 vgreduce 之前创建的。但我一直收到“无法恢复带有 1 个标记为丢失的 PV 的卷组 VGR”。

LV 可以恢复吗?如果可以,如何恢复?

非常感谢您的帮助。

短暂性脑缺血发作

答案1

Linux LVM 默认不会删除带有 LV 的 PV。它需要所有扩展区才能使 LV 具有良好的完整性。 vgreduce --force 虽然可能会删除 LV,但它会禁用多项安全检查。非常在使用选项时要具体而谨慎。记录您的终端会话。

规划恢复。查找此数据的任何现有备份。估计它对组织的价值,以及重新创建需要多长时间。如果没有备份,请考虑从专业数据恢复服务处获取估算。

尝试将故障驱动器镜像到大小相同的好驱动器上。如果自己做,可以使用容错工具,例如dd_rescue。请注意,在某些情况下,如果介质尚未损坏,继续使用可能会进一步损坏介质。数据恢复服务可能能够对其进行手术,以尝试恢复数据。

如果您设法对其进行映像,则新磁盘将具有旧 PV 的标识。重新添加新设备。 vgextend --restoremissing $PV 当您减少 LV 时,这将是再次尝试的时候vgcfgrestore --file,以回到您这样做之前的状态。

如果所有尝试都失败,并且您接受数据丢失,请考虑用新的空驱动器替换发生故障的 PV。这几乎肯定会损坏您的数据。损坏的具体表现取决于文件系统等。但这是值得尝试的。man vgcfgrestore描述了该过程:

要替换 PV,vgdisplay --partial --verbose将显示不再存在的 PV 的 UUID 和大小。如果 VG 中的 PV 丢失,并且您希望用另一个大小相同的 PV 替换,请使用 pvcreate --restorefile filename --uuid uuid(加上适当的其他参数)使用与丢失的 PV 相同的 UUID 对其进行初始化。对 VG 中所有其他丢失的 PV 重复此操作。然后使用 vgcfgrestore --file filename恢复 VG 的元数据。

在没有丢失 PV 的降级较少的情况下,pvmove将在 PV 之间移动范围,并且可用于存储迁移。

今后,要使卷组在硬盘丢失后仍能继续使用,请考虑添加冗余。要么在 LVM 下使用来自阵列 LUN 的 PV,要么在 LVM 层。请参阅手册页mdadmlvmraid软件解决方案。

答案2

我认为这个链接可以回答你的问题 https://unix.stackexchange.com/questions/47380/where-does-lvm-store-data

相关内容