一、实施说明
二、实施步骤
为了更好的说明,跑hyperV的源机器叫H,跑kvm的目标机器叫做K
1.在H上将要迁移的的hyperV虚拟机的静态IP改成自动获取,然后关机,将vhd硬盘通过scp或者其他方式拷贝到目标机器K上。【如果有快照,需要对快照进行合并整理,左后只有一个vhd硬盘文件。】
2.获取virtio的windows驱动【该驱动主要用于windows的网卡和硬盘】
cd /var/lib/libvirt/image wget https://alt.fedoraproject.org/pub/alt/virtiowin/latest/images/bin/virtio-win-0.1-81.iso
3.在目标机器K上进行映像格式转换,并建立一个新的磁盘文件【该磁盘文件主要用于windows通过识别新硬盘来安装新的virtio驱动,否则内置只有普通IDE驱动无法进行新的驱动安装】
qemu-img convert -O qcow2 /root/hyperv.vhd /mnt/storage/kvm.qcow2 #将vhd格式转换成qcow2格式 qemu-img create /mnt/storage/disk.img 1G #建立一个新的磁盘
4.使用virt-manager或virt-install进行镜像导入,并将驱动镜像放入cdrom建议使用virt-install
virt-install \ --name server \ --ram 512 \ --os-type=windows \ --vcpus 1 \ --disk path=/mnt/storage/kvm.qcow2,device=disk,bus=ide,format=qcow2 \ --disk path=/mnt/storage/disk.img,format=qcow2,bus=virtio \ --disk path=/var/lib/libvirt/image/virt-win-0.1-81.iso,device=cdrom \ --network bridge=br0,model=virtio \ --graphics vnc \ --noautoconsole \ --import \ --noreboot \ --debug
5.启动虚拟机进入windows,通过cdrom里的镜像安装网卡和硬盘驱动【安装过windows驱动的人应该都会的】,装好后关闭虚拟机。
6.通过virt-manager或者修改kvm虚拟机的/etc/libvirt/qemu/server.xml文件,将新建的磁盘删除,将原有的硬盘bus模式改成virtio,xml方式修改如下:
<disk type='block' device='disk'> <driver name='server' type='qcow'/> <source dev='/mnt/storage/kvm.qcow2'/> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </disk>
【其实通过virt-manager会更方便一些】
7.启动虚拟机进行ip的配置,验证IP连通性,完成迁移。