6.3. 恢复物理卷元数据


如果物理卷的卷组元数据区域意外覆盖或被破坏,您将收到一条错误消息,表明元数据区域不正确,或者系统无法找到带有特定 UUID 的物理卷。您可以通过在物理卷中编写新元数据区域来从物理卷中恢复数据,并指定与丢失的元数据相同的 UUID。
警告
您不应该尝试使用可以正常工作的 LVM 逻辑卷执行这个步骤。如果您指定了不正确的 UUID,将会丢失您的数据。
以下示例显示了您可能看到元数据区域是否缺失或损坏的输出类型。
# lvs -a -o +devices
  Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
  Couldn't find all physical volumes for volume group VG.
  Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
  Couldn't find all physical volumes for volume group VG.
  ...
您可能可以通过在 /etc/lvm/archive 目录中查找覆盖的物理卷的 UUID。查看卷组的最后一个已知有效归档 LVM 元数据的 VolumeGroupName_xxxx.vg 文件。
另外,您可能会发现取消激活卷并设置 部分 (-P)参数,您可以找到缺少的物理卷的 UUID。
# vgchange -an --partial
  Partial mode. Incomplete volume groups will be activated read-only.
  Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
  Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
  ...
使用 pvcreate 命令的 --uuid--restorefile 参数来恢复物理卷。以下示例将 /dev/sdh1 设备标记为带有上述 UUID 的物理卷,FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk。此命令使用 VG_00050.vg 中包含的元数据信息恢复物理卷标签,这是卷组的最新好归档元数据。restorefile 参数指示 pvcreate 命令使新物理卷与卷组中的旧物理卷兼容,或者新元数据不会放置在旧的物理卷包含数据的位置(例如,如果原始 pvcreate 命令使用了控制元数据放置的命令行参数,或者物理卷最初是使用不同默认值的不同软件版本创建的)。pvcreate 命令只覆盖 LVM 元数据区域,不会影响现有数据区域。
# pvcreate --uuid "FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk" --restorefile /etc/lvm/archive/VG_00050.vg /dev/sdh1
  Physical volume "/dev/sdh1" successfully created
然后,您可以使用 vgcfgrestore 命令恢复卷组的元数据。
# vgcfgrestore VG
  Restored volume group VG
现在您可以显示逻辑卷。
# lvs -a -o +devices
  LV     VG   Attr   LSize   Origin Snap%  Move Log Copy%  Devices
  stripe VG   -wi--- 300.00G                               /dev/sdh1 (0),/dev/sda1(0)
  stripe VG   -wi--- 300.00G                               /dev/sdh1 (34728),/dev/sdb1(0)
以下命令激活卷并显示活跃卷。
# lvchange -ay /dev/VG/stripe
# lvs -a -o +devices
  LV     VG   Attr   LSize   Origin Snap%  Move Log Copy%  Devices
  stripe VG   -wi-a- 300.00G                               /dev/sdh1 (0),/dev/sda1(0)
  stripe VG   -wi-a- 300.00G                               /dev/sdh1 (34728),/dev/sdb1(0)
如果磁盘中的 LVM 元数据尽可能多地消耗超过它的空间,这个命令就可以恢复物理卷。如果覆盖元数据的数据超过了元数据区域,则该卷中的数据可能会受到影响。您可能能够使用 fsck 命令恢复这些数据。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.