经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Windows » 查看文章
【v2v迁移】Xen2kvm 迁移-Windows篇
来源:cnblogs  作者:wang272  时间:2023/10/18 8:53:40  对本文有异议

导读:

本文系原创,欢迎规范转载。
本文描述了如何处理window虚拟机从xen虚拟化迁移kvm虚拟化遇到问题,包括安装virtio驱动等。

系列文章:

xen2kvm迁移-Windows篇
xen2kvm迁移-Linux篇

迁移环境:

源平台:华为FusionComputeV100R006C10SPC101
目标平台:基于KVM虚拟化的云平台,本文以原生的libvirt为例
虚拟机:Windows server 2012 R2

具体操作步骤:

本文的前3个步骤与【v2v迁移】Xen2kvm 迁移-linux篇基本一致:导出vhd,安装qemu-img-hw工具,转换格式等。

注意:
导出之前,在源Windows系统上卸载uvp-vmtools,否则虚拟机蓝屏无法启动。

1、在源平台导出格式为ovf的磁盘镜像


导出后,得到vhd文件:xen_win2012_C.vhd。将该文件传输到装有libvirt和相关工具套件的Linux环境上,本文所使用的是一台centos7.6物理机,部署了GUI界面,安装了libvirt libvirt-client qemu-img virt-manager等工具。

2、下载华为自研的qemu-img-hw命令

解压得到命令,为命令赋予执行权限:

  1. $ unzip qemu-img-hw.zip
  2. $ cd qemu-img-hw.zip
  3. $ chmod a+x qemu-img-hw

华为公有云文档描述:zvhd和zvhd2是云服务内部自研格式,qemu-img工具无法识别这两种格式的镜像文件,需要使用qemu-img-hw:

  1. # 使用华为提供的qemu-img-hw看到的镜像格式是zvhd
  2. [root@hyperhost ~]$ qemu-img-hw info xen_win2012_C.vhd
  3. image: xen_win2012_C.vhd
  4. file format: zvhd
  5. virtual size: 20G (21474836480 bytes)
  6. disk size: 9.2G
  7. # 使用原生工具qemu-img看到的镜像格式是raw:
  8. [root@hyperhost ~]$ qemu-img info xen_win2012_C.vhd
  9. image: xen_win2012_C.vhd
  10. file format: raw
  11. virtual size: 9.2G (9879011328 bytes)
  12. disk size: 9.2G

3、zvhd转换为qcow2格式:

转换时间依数据量而定

  1. # 这里的目标是一个逻辑卷,需要提前创建:
  2. # 使用qemu-img-hw info 看到的虚拟大小是,因此创建一个20GiB的镜像文件:
  3. [root@hyperhost ~]$ lvcreate -L 20GiB -n vmpool-1/xen_win2012
  4. Logical volume "xen_win2012" created.
  5. # 转换格式:
  6. [root@hyperhost ~]$ qemu-img-hw convert -p -f zvhd -O qcow2 xen_win2012_C.vhd /dev/vmpool-1/xen_win2012
  7. (100.00/100%)
  8. # 检查格式:
  9. [root@hyperhost ~]$ qemu-img-hw info /dev/vmpool-1/xen_win2012
  10. image: /dev/vmpool-1/xen_win2012
  11. file format: qcow2
  12. virtual size: 20G (21474836480 bytes)
  13. disk size: 0
  14. cluster_size: 65536
  15. Format specific information:
  16. compat: 1.1
  17. lazy refcounts: false
  18. refcount bits: 16
  19. corrupt: false

4、配置驱动

virtio-win下载链接

  1. # 在宿主机上下载一个rpm包(下载最新版):
  2. [root@hyperhost ~]$ wget https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.240-1/virtio-win-0.1.240-1.noarch.rpm
  3. # 本地安装:
  4. [root@hyperhost ~]$ yum localinstall virtio-win-0.1.240-1.noarch.rpm

把驱动iso配置为一个storage pool:在virt-manager上点击edit,选择connection details,进一步选择storage,点击左下角?新建一个pool。类型选择dir,路径选择/usr/share/virtio-win/,就可以看到virtio-win.iso了。之后新建虚拟机时挂载这个iso给虚拟机,就可以安装驱动了。

5、部署为kvm虚拟机

本文使用virt-manager将qcow2磁盘部署为虚拟机:

如果创建虚拟机后直接开机,会报找不到磁盘:

这里我们对磁盘总线类型做一些修改:
磁盘总线类型是IDE,存储类型是raw,这里我们修改为qcow2格式就可以启动了。

为了安装virtio磁盘驱动,我们为这台虚拟机新增一块1G的磁盘,总线类型选择virtio,存储类型随意:

为了安装virtio网卡驱动,我们将这台虚拟机的网卡的设备类型从e1000修改为virtio:

新增一个cdrom设备,挂载驱动iso,总线类型选择IDE或者SATA都行:

6、开机,进入设备管理器,为设备安装驱动

安装驱动:

位置选择光驱D盘,单击下一步:

自动查找驱动后提示安装,选择安装:

所有驱动安装后,就可以看到使用virtio总线类型的网卡设备和第二块磁盘:

在OpenStack平台,建议安装qemu-guest-agent,Windows2008可能不支持:

7、收尾工作

关机,卸载网卡,卸载cdrom,卸载磁盘等。导出磁盘,删除临时虚拟机等。

上传OpenStack平台之前,可以使用工具压缩镜像大小:

  1. [root@hyperhost ~]$ qemu-img-hw convert -p -c -O qcow2 /dev/vmpool-1/xen_win2012 win2k12r2_1.qcow2

上传OpenStack平台:

  1. [root@openstack ~]$ openstack image create --file <FILE> --container-format bare --disk-format qcow2 --min-disk <disk-gb> --min-ram <ram-mb> --property os_type=windows --property hw_qemu_guest_agent=yes --public <image-name>
  2. --property os_type=windows # 指明镜像的操作系统类型,有助于正确显示系统时间
  3. --property hw_qemu_guest_agent=yes # 表明镜像安装了qga,宿主机生成时会自动创建设备与之连接通信

原文链接:https://www.cnblogs.com/wang272/p/xen2kvm_Windows_virtual_machine_migration.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号