vgexport与vgimport是最稳妥的lvm卷组离线迁移组合:导出前须卸载lv、停用vg、确认磁盘健康;导出后vg消失,导入时重建注册;遇同名冲突可重命名导入;导入后必须验证vgdisplay、lvdisplay及文件系统完整性。

Linux LVM 卷组迁移中,vgexport 和 vgimport 是最稳妥的离线迁移组合——它不碰数据块,只管理元数据注册状态,适合跨主机、换存储路径、或数据中心搬迁等需彻底断开原环境的场景。
导出前必须做好的三件事
vgexport 不是“拔掉就走”,而是系统级注销。操作前务必确认:
- 所有逻辑卷已卸载:用
umount /mount/point,并用fuser -v /mount/point或lsof +D /mount/point确保无进程占用 - 卷组已完全停用:执行
vgchange -an <vgname></vgname>,确保vgs显示状态为inactive - 目标物理设备(如 /dev/sdb)未被其他 VG 使用,且磁盘健康、连接稳定
导出与导入的标准流程
导出后卷组从系统“消失”,导入时靠物理设备上的元数据重建注册信息:
- 源端导出:
vgexport <vgname></vgname>—— 成功后vgs不再显示该 VG,可安全移除磁盘 - 目标端准备:将磁盘接入新主机,确认识别(
lsblk或fdisk -l),安装 lvm2 包(如未安装) - 目标端导入:
vgimport <vgname></vgname>—— 若失败,先运行pvscan --cache && vgscan --cache刷新设备缓存 - 激活并挂载:
vgchange -ay <vgname></vgname>,然后mount /dev/<vgname>/<lvname> /mnt</lvname></vgname>
遇到同名冲突或设备名变化怎么办
常见于多台主机共用模板、SAN 存储重映射或克隆环境:
- 名称冲突:直接
vgimport会报错。可在导入时指定新名:vgimport -v newname /dev/mapper/san-lun01 /dev/mapper/san-lun02 - 设备路径不同(如从 /dev/sdb 变为 /dev/mapper/p1):导入前运行
pvscan --cache,再检查vgdisplay -v <vgname></vgname>中 PV UUID 是否匹配;不一致需用pvmove迁移或vgimportclone重生成 UUID - 更推荐预处理:导出前在源端用
vgrename oldname newname,避免目标端命名纠缠
导入后必须验证的三项内容
别跳过验证——LVM 元数据虽小,但错一个字节就可能导致 VG 无法激活:
- 查看卷组结构:
vgdisplay <vgname></vgname>确认 PE 总数、空闲空间、PV 数量与预期一致 - 检查逻辑卷状态:
lvdisplay <vgname></vgname>核对 LV 名称、大小、路径(如/dev/mapper/vgname-lvname) - 抽查文件系统:挂载后
ls -l /mnt、df -h /mnt,必要时用xfs_info(XFS)或dumpe2fs -h(ext4)确认超级块完整性











