我可以将 LVM PV 和 VG(LV)配置恢复到较小的磁盘吗?

我可以将 LVM PV 和 VG(LV)配置恢复到较小的磁盘吗?

在虚拟机中,将包含 LV 和文件系统的 VG 放在磁盘上并使用所有空间后,错误地发现磁盘大小太大。由于 VMware(他们告诉我)无法减小磁盘大小,因此删除了现有磁盘,并创建了一个具有正确大小的新磁盘。

vgcfgrestore现在我想知道我是否至少可以使用 LVM 的备份数据( )来恢复 PV 和 VG(也许还有 LV)的 UUID?

我第一次尝试恢复 VG 时,结果发现 PV 未找到,第一次尝试恢复 PV(使用pvcreate --restorefile ... -u <UUID>)时,结果出现错误,即新磁盘太小(“物理范围超出设备 /dev/sdd 的末尾“)。

我正在使用 SLES15 SP4。

为了完整性:恢复后,我会将 LV、VG 和 PV“调整”为适当的大小。

答案1

这似乎无法做到,很可能是因为没有vgresize命令(在 LV 的大小减少后也可以使用该命令来减少可用的范围数量):

我可以通过指定先前的 ID 来“恢复”PV:

# pvcreate -u LAWXom-t6Mq-jcqA-3Ejx-cY7D-7T1M-ae8y2E /dev/sdd
  Physical volume "/dev/sdd" successfully created.

然后我可以恢复 VG 配置(这是否应该在不给出警告的情况下成功,或者在不调整(至少建议这样做)大小的情况下成功,这还有待商榷):

# vgcfgrestore my-vg
  Restored volume group my-vg.

此时,VG(和 LV)具有备份完成后的磁盘大小。

# vgs my-vg
  WARNING: Device /dev/sdd has size of 167772160 sectors which is smaller than corresponding PV size of 314572800 sectors. Was device resized?
  WARNING: One or more devices used as PVs in VG my-vg have changed sizes.
  VG     #PV #LV #SN Attr   VSize   Vfree
  my-vg    1   1   0 wz--n- 149.94g     0

因此在那时(因为我找不到类似的工具vgresize)我不得不删除并重新创建 VG 和 LV:

# vgremove my-vg
# vgcreate -s 64M my-vg /dev/sdd
# #...lvcreate..., mkfs...

相关内容