P2V迁移(Windows XP - KVM虚拟化)

Linux / 2023-03-07

前提条件

  • 提前安装virt-win驱动的Windows XP系统(本次实验使用虚拟机)
  • 安装KVM、qemu、virt-p2v、virt-v2v的Linux系统(本次实验使用CentOS 7.9 2009)
  • ESXI或vCenter主机(可选)

架构设计图

image-1678179635776

安装Windows XP系统

示例一、物理机安装Windows XP系统

注意事项:
主板BIOS支持Legacy引导模式
硬盘类型MBR
系统分区NTFS

引导模式未验证通过

示例二、VMware安装Windows XP系统
注意事项:
磁盘类型IDE

驱动未验证通过

示例三、KVM安装Windows XP系统

注意事项:
磁盘类型VirtIO Disk
挂载virt-win软盘或提前安装virt-win驱动
网卡模式选择virtio,选择KVM宿主机网卡,并启用bridge模式

命令安装

virt-install --name=windows-xp-virtio --ram 1024 --vcpus=1 \
 --disk path=/var/lib/libvirt/images/windows-xp-virtio.qcow2,bus=virtio,size=30,format=qcow2 \
 --accelerate --cdrom /var/lib/libvirt/images/xp.iso \
 --vnc --vncport=6000 --vnclisten=0.0.0.0 --force --autostart \
 --disk path=/var/lib/libvirt/images/virtio-win-0.1.96_x86.vfd,device=floppy

命令解释:

Windows XP原版镜像:/var/lib/libvirt/images/xp.iso (必须存在)
创建的qcow2磁盘:/var/lib/libvirt/images/windows-xp-virtio.qcow2 (必须不存在)
virt-win驱动软盘:/var/lib/libvirt/images/virtio-win-0.1.96_x86.vfd (必须存在)

备份、迁移系统

工具:VMware vCenter Converter Standalone

方法一、本地备份

  1. 打开VMware vCenter Converter Standalone;
  2. 连接本地服务器;
  3. 点击左上角的转换计算机;
  4. 源系统为“此本地计算机”,表示当前计算机;
  5. 目标系统类型为“VMware Workstation或其他VMware虚拟机”,表示保存为本地;
  6. 选择虚拟机保存的位置、备份的数据盘、数据之后的大小等;
  7. 配置完后浏览摘要,确认无误后点击完成,等待备份进度;
  8. 在目标位置找到备份的vmx、vmdk文件。

方法二、远程备份

注:当本地磁盘空间不满足备份或省略后期扩容步骤。

  1. 打开VMware vCenter Converter Standalone;
  2. 连接本地服务器;
  3. 点击左上角的转换计算机;
  4. 源系统为“此本地计算机”,表示当前计算机;
  5. 目标系统类型为“VMware Infrastructure 虚拟机”,表示远程备份;
  6. 配置连接ESXi或vCenter服务器、备份的数据盘、数据之后的大小等;
  7. 配置完后浏览摘要,确认无误后点击完成,等待备份进度;
  8. 在对应的ESXi或vCenter上找到目标虚拟机。

报错:SSL Exception: Unexpected EOF
原因:Converter版本号与ESXI、vCenter不匹配,升级到最新6.3版本。

转换KVM虚拟机
工具:qemu-img、virt-v2v(任一即可)

vmdk转换qcow2

\1. 将备份的vmdk或ESXI主机找到vmdk文件

\2. 将备份后的vmdk磁盘拷贝到KVM服务器,转换为qcow2格式。

\3. qemu-img convert -p -f vmdk file.vmdk -O qcow2 file.qcow2

使用virt-v2v工具(适用于上一步采用远程备份到ESXI的虚拟机)

测试链接并查看虚拟机

virsh -c esx://root@172.20.100.2/?no_verify=1 list –all

迁移

virt-v2v -ic esx://root@172.20.100.2/?no_verify=1 -os vmdisk -of qcow2 -b br0 winxp

命令解释:
no_verify=1表示忽略证书检查
-os表示指定到KVM中的哪个存储池
-of表示迁移转出的虚机磁盘格式
-b表示指定KVM中的虚拟网桥。
winxp表示ESXI虚拟机名称

验证迁移后虚拟机

  1. 使用已有的磁盘创建虚拟机;
  2. 选择转换后的qcow2磁盘;
  3. 磁盘类型VirtIO Disk
  4. 网卡模式选择virtio,选择KVM宿主机网卡,并启用bridge模式;
  5. 开机并验证数据完整性。