如何将逻辑卷管理器 (LVM) 配置迁移到新驱动器

如何将逻辑卷管理器 (LVM) 配置迁移到新驱动器

我们有一个Ubuntu 20.04 服务器版安装失败,升级到22.04并且无法启动。该root分区位于旧物理驱动器上,安装在磁盘分区上(例如sda3)。系统设置是我们使用 LVM 来管理其他物理驱动器,但重要的是根分区不在 LVM 上

由于系统物理磁盘较旧,我们想执行全新安装Ubuntu在全新 SSD 上。在其他情况下,我们会使用 克隆驱动器dd,但在这种情况下,我们只想将 LVM 配置从旧系统磁盘迁移到新Ubuntu在新磁盘上安装。

我们如何将现有的 LVM 配置迁移到新驱动器上的新系统安装中?


笔记

  • 我仍然可以使用 LiveCD/USB 访问现有的根分区,但是系统无法启动,而且我不想修复它。
  • 我曾考虑过简单的复制/etc/lvm但不确定是否需要进行其他更改。
  • 我知道vgchangevgexportvgimport命令,但是我有限的理解表明我需要一个工作系统来运行这些命令。

答案1

操作系统发行版已损坏但现有数据意味着创建新操作系统实例,然后块级恢复数据,并复制仍保留的选定数据文件。其他选项可能取决于现有的备份;恢复是一场选择您自己的冒险,您需要思考前进的道路。

开始安装新主机。建议在 LVM 上使用根文件系统,因为这里有其他关于根文件系统已满以及需要进行一些棘手分区的问题。

LVM 元数据

/etc/lvm/backup/ 和 /etc/lvm/archive/ 中的元数据备份是文本文件,记录各种有用的信息:设备 WWN、PV 名称和 ID、LV 名称 ID 和范围图、VG 名称和 ID。将此(可能全部 /etc)存档为旧实例的主机级备份的一部分。但是 LVM 根据磁盘元数据进行操作。在简单情况下,VG 不需要导入或重建此精确元数据。

是否保留 PV

决定是否从旧实例中分离并重新使用磁盘。使用虚拟或 SAN 存储可能很容易。或者可能不是您想要做的,例如对于您想要完成存储迁移的旧物理磁盘。

救援模式

无论哪种方式,在旧主机上启动一些救援发行版,您可以在其中对 LVM 进行操作。运行命令pvs; vgs; lvs; 以获取系统上的 LVM 摘要。 vgimportdevices --all; pvscan --cache 如果 PV 尚未被系统所知,则应将其告知系统。(在更复杂的恢复场景中,LVM 缺少某些内容或已损坏,这时元数据备份就很有用了。)

重复使用磁盘

对于重用磁盘选项,明智的做法是停用并导出 VG,这样旧系统就不会尝试使用它。您可能会在用例下看到此示例将 VG 移动到另一个系统

我没有提供 LVM 参数的示例,这些参数对您来说会有所不同:VG、LV、PV、块设备。请阅读文档以了解使用详情。

# Old host in rescue mode
umount
vgchange -an
vgexport 
# Move disks to other system
# New host
vgimportdevices --all
vgimport
vgchange -ay

不重复使用磁盘

如果跨磁盘切换不方便,或者您想要更改 VG 或 LV 配置,则可以重建 VG 然后恢复数据。

可以在块级别复制数据,与文件级别恢复相比,速度更快。重要提示:复制 LV,而不是较低级别的 PV。如果您有 IP 网络,则可以通过以下方式进行复制通过 ssh 和/或 netcat dd

# Old host in rescue mode
vgchange -ay
umount
# snapshots optionally can capture a point in time while the origin is still in use
# lvcreate --snapshot

# New host
vgcreate 
# be sure LVs are at least as large as the old LVs
lvcreate
# Old host in rescue mode
dd if=/dev/vg/lv | gzip | ssh root@target 'gzip -d | dd of=/dev/vg/lv'

移动

如果新旧磁盘均可连接到新主机,则可以按原样导入 VG,然后迁移到新 PV。无论是现在恢复期间,还是将来的存储迁移中,这都是非常有用的工具。

按照上述重复使用磁盘的步骤导入 VG。

vgextend # new PV
pvmove # old PV
vgreduce --all  # empty old PVs 

验证应用程序功能

在安装新的操作系统和迁移后存储时,检查事物功能是一个好主意。

编辑 /etc/fstab 并添加迁移的卷。安装并更新应用程序。重启。抽查应用程序是否启动并执行应有的操作。

相关内容