对新的(KVM)虚拟机使用 Lvm 快照

对新的(KVM)虚拟机使用 Lvm 快照

我需要将一台 CentOS5 (32 位) 物理服务器迁移到虚拟机中。我的想法是拍摄 LV 的快照,然后导入 kvm 以创建新的 vm。这是个好主意吗?更确切地说,我有一个磁盘:

[root@cs5 ~]# fdisk -l

Disco /dev/sda: 292.3 GB, 292326211584 byte

255 heads, 63 sectors/track, 35539 cylinders
Unità = cilindri di 16065 * 512 = 8225280 byte

Dispositivo Boot      Start         End      Blocks   Id  System
/dev/sda1               1           9       72261   de  Dell Utility
/dev/sda2   *          10         271     2104515    b  W95 FAT32
/dev/sda3             272         284      104422+  83  Linux
/dev/sda4             285       35539   283185787+   5  Esteso
/dev/sda5             285       35539   283185756   8e  Linux LVM

[root@cs5 ~]# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda3 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

因此 pv、vg 和 lv 是:

[root@cs5 ~]# pvs
  PV         VG         Fmt  Attr PSize   PFree
  /dev/sda5  VolGroup00 lvm2 a-   270,06G    0 
[root@cs5 ~]# vgs
  VG         #PV #LV #SN Attr   VSize   VFree
  VolGroup00   1   2   0 wz--n- 270,06G    0 
[root@cs5 ~]# lvs
  LV       VG         Attr   LSize   Origin Snap%  Move Log Copy%  Convert
  LogVol00 VolGroup00 -wi-ao 264,91G                                      
  LogVol01 VolGroup00 -wi-ao   5,16G

如图所示,我在 /boot 中安装了 /dev/sda3 和 2 个 LV,一个用于 /,另一个用作交换分区。我认为我需要的唯一快照是 LogVol00,对吗?

此时,我需要向 PV 添加另一个磁盘,然后将其添加到 VG,最后使用以下命令创建快照

lvcreate -L XXG -s -n data_snap /dev/VolGroup00/LogVol00

现在,我该如何在虚拟机中导入该快照?我可以创建快照的 tar.gz 文件,也可以使用 dd,但我没有虚拟机的启动分区。我是否应该先安装新的虚拟机,然后(以单一模式启动)覆盖 / 中的所有文件(/boot 除外)?还有其他方法吗?谢谢

答案1

你基本上有三个选择:

  • 使用实时 CD/USB 启动,复制全部的/dev/sda,并在 KVM 主机上恢复它。
  • 复制两个 LVM 卷(通过快照,或者更好的方法是通过 CD/USB 启动并在 LVM 卷处于非活动状态时复制它)/boot 分区。然后,实时启动虚拟机,恢复分区,chroot 到新恢复的根目录并在 MBR 上重新安装 GRUB
  • 如果适用,您可以使用Red Hat 的 p2v 工具

如果所有方法都失败了,最好的选择是安装新的 RHEL 5 客户机并从旧机器迁移数据(例如:通过 rsync)

相关内容