如何在Linux分卷中进行数据迁移
小樊
39
2025-12-27 18:17:44
Linux 分卷场景下的数据迁移实用指南
一、常见分卷类型与对应迁移思路
- LVM 逻辑卷:在同一卷组内可在线扩容、跨磁盘迁移数据,适合不停机把数据从旧盘迁到新盘或新卷。
- 分卷压缩包(zip 分包、split 分包):跨网络/介质传输更稳健,中断可从断点续传或重传单个分卷;到达目标后合并再解压。
- 虚拟机分卷磁盘(如 VMware 多 .vmdk):需先合并为单镜像,再转换并写入物理盘或新虚拟磁盘。
二、LVM 场景的在线迁移与扩容
- 新盘加入并初始化
- 识别设备名(如 /dev/sdb),分区并将类型设为 Linux LVM(MBR: 8e,GPT: 8e00);创建物理卷:pvcreate /dev/sdb1;加入卷组:vgextend vg0 /dev/sdb1。
- 在线把数据从旧 PV 迁到新 PV
- 执行:pvmove /dev/sda4 /dev/sdb1(示例把 /dev/sda4 的数据迁到 /dev/sdb1),迁移完成后再从卷组移除旧盘:vgreduce vg0 /dev/sda4;必要时 pvremove /dev/sda4。
- 扩容逻辑卷与文件系统
- 扩展逻辑卷:lvextend -L +100G /dev/vg0/lv_home;文件系统生效:
- ext4:resize2fs /dev/vg0/lv_home
- xfs:xfs_growfs /mount/point(XFS 按挂载点扩容)
- 迁移目录到新 LV(示例:/home)
- 创建并格式化新 LV:mkfs.ext4 /dev/vg0/lv_home;挂载到临时目录:mount /dev/vg0/lv_home /mnt;同步数据:cp -rp /home/* /mnt/;核对无误后改挂载点并写入 /etc/fstab(建议用 UUID,可通过 blkid 获取)。
- 关键提示
- 迁移前做好全量备份;跨磁盘迁移时确保目标空间充足;执行 pvmove 期间避免对源盘做破坏性操作;扩容 XFS 必须在已挂载且为 XFS 的文件系统上执行 xfs_growfs。
三、分卷压缩包迁移(zip/split)
- 在源端分卷压缩与传输
- zip 分卷示例:zip -r -s 100G photos.zip ./photos/(每卷 100GB);排除目录:zip -r -s 100G photos.zip ./photos/ -x “photos/tmp/" "photos/logs/”;跨堡垒机/弱网环境可分批传输分卷,降低重传成本。
- 目标端合并与解压
- zip 分包:只需对首卷解压即可自动拼合,unzip photos.zip;若损坏可用 zip -F A.zip --out B.zip 尝试修复;split 分包:cat 2016.zip.00* > 2016.zip 后 7zz x 2016.zip 或 unzip 2016.zip。
- 校验与一致性
- 推荐做 MD5 校验与文件数量核对;抽查样本文件可用性;注意 Linux 单文件名长度上限约 255 字节,超长文件名可能导致解压失败或异常。
四、虚拟机分卷磁盘迁移到物理机或新虚拟磁盘
- 合并分卷虚拟磁盘
- 多 .vmdk 场景可用 VMware 工具或 qemu-img 合并:qemu-img convert -f vmdk Ubuntu25.vmdk -O raw Ubuntu25.img(会自动处理分卷描述文件)。
- 写入目标介质
- 确认设备名(如 /dev/sdb),用 dd 写入:dd if=Ubuntu25.img of=/dev/sdb bs=4M status=progress conv=fsync;务必核对设备,避免覆盖系统盘。
- 引导修复与硬件适配
- 若启动异常,使用 Live USB 挂载新盘分区并 chroot:mount /dev/sdXn /mnt;mount --bind /dev /mnt/dev;mount --bind /proc /mnt/proc;mount --bind /sys /mnt/sys;chroot /mnt;执行 grub-install /dev/sdX 与 update-grub;重启后按需安装显卡/无线等驱动。
五、迁移前后关键检查清单
- 空间与性能:目标卷/磁盘可用空间≥源数据;必要时先做小规模演练。
- 一致性校验:对比 MD5/文件数/抽样打开;分卷传输保留校验信息与日志。
- 挂载与 fstab:使用 UUID 配置自动挂载,避免设备名变化导致启动失败。
- 文件系统类型:ext4 用 resize2fs、xfs 用 xfs_growfs;XFS 扩容需对已挂载的 XFS 执行。
- 业务停机窗口:目录切换前停写或使用维护页面;迁移完成后再恢复服务并观察 I/O 与错误日志。