vgimport命令用于导入已导出的卷组,配合map文件使目标系统识别迁移的vg;需先在源端vgchange -an停用、vgexport导出,再在目标端vgscan扫描后vgimport导入并vgchange -ay激活。

vgexport 和 vgimport 是 LVM 提供的专用于跨主机迁移卷组(VG)的配套命令,核心作用是安全标记、解除绑定并重新注册卷组元数据,避免新旧系统间 UUID 冲突或设备自动激活导致的数据错乱。它不复制数据本身,而是让目标主机“认出”并接管原有逻辑结构——真正平滑迁移的关键在于配合正确的卸载、设备识别和文件系统一致性处理。
迁移前必须完成的准备动作
源服务器上不能有任何进程正在访问该卷组中的逻辑卷(LV),包括挂载点、swap、数据库数据目录、容器存储等。未彻底停用就执行导出会引发元数据不一致,后续导入可能失败或损坏数据。
- 逐个卸载所有挂载点:例如 umount /mnt/data、umount /var/lib/mysql
- 关闭基于该 VG 的 swap:如已启用 swapoff /dev/vg01/lv_swap
- 停用整个卷组:vgchange -an vg01(an 表示 de-activate,这是 vgexport 的前提)
- 确认状态:运行 vgs 应显示该 VG 的 Attr 列为 wz--n-(末位 n 表示 inactive)
在源端执行 vgexport 导出卷组
vgexport 本质是清除卷组的“活跃标识”,并在 PV 元数据中标记该 VG 为“已导出”,同时移除 /etc/lvm/cache 中的缓存记录。它不改动数据,也不移动任何文件。
- 执行导出:vgexport vg01
- 验证是否成功:vgscan --cache 后再运行 vgs,应不再列出 vg01;pvscan 仍能看到对应 PV,但状态中会标注 exported
- 此时可安全关机,将物理磁盘(或虚拟磁盘文件)移至目标服务器
在目标端识别磁盘并导入卷组
目标主机需能识别到迁移来的物理设备(如 /dev/sdb、/dev/sdc2),且 LVM 工具已安装(RHEL/CentOS 默认包含 lvm2)。导入前务必确认无同名 VG 存在,否则需先重命名或删除冲突项。
- 连接磁盘后扫描:pvscan 或 vgscan,应发现 “#orphans” 或 “exported” 状态的 PV
- 若 vgscan 未自动发现,可强制刷新:vgscan --cache
- 执行导入:vgimport vg01
- 激活卷组:vgchange -ay vg01(ay 表示 auto-activate + yes)
- 检查 LV 状态:lvs 应显示所有逻辑卷为 active,且路径如 /dev/vg01/lv_data 可访问
挂载与校验(关键收尾步骤)
导入激活后,LV 设备节点已就绪,但文件系统可能因上次非正常卸载存在脏位,建议先做一致性检查再挂载。
- 对 XFS 文件系统:xfs_repair /dev/vg01/lv_data(只读模式下可加 -n 预检)
- 对 ext4 文件系统:e2fsck -f /dev/vg01/lv_data
- 创建挂载点并挂载:mkdir -p /mnt/data && mount /dev/vg01/lv_data /mnt/data
- 验证数据完整性:检查关键目录、文件时间戳、应用配置是否完整;如有 fstab 条目,确认 UUID 或设备路径是否仍匹配(推荐用 /dev/mapper/vg01-lv_data 或 UUID=... 方式)











