首页 > 系统相关 >【v2v迁移】Xen2kvm 迁移-Windows篇

【v2v迁移】Xen2kvm 迁移-Windows篇

时间:2023-10-17 19:00:29浏览次数:39  
标签:virtio img Windows xen hw win2012 Xen2kvm 迁移 qemu

迁移环境:

源平台:华为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命令

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

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

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

# 使用华为提供的qemu-img-hw看到的镜像格式是zvhd
[root@hyperhost ~]$ qemu-img-hw info xen_win2012_C.vhd
image: xen_win2012_C.vhd
file format: zvhd
virtual size: 20G (21474836480 bytes)
disk size: 9.2G

# 使用原生工具qemu-img看到的镜像格式是raw:
[root@hyperhost ~]$ qemu-img info xen_win2012_C.vhd
image: xen_win2012_C.vhd
file format: raw
virtual size: 9.2G (9879011328 bytes)
disk size: 9.2G

3、zvhd转换为qcow2格式:

转换时间依数据量而定

# 这里的目标是一个逻辑卷,需要提前创建:
# 使用qemu-img-hw info 看到的虚拟大小是,因此创建一个20GiB的镜像文件:
[root@hyperhost ~]$ lvcreate -L 20GiB -n vmpool-1/xen_win2012
  Logical volume "xen_win2012" created.

# 转换格式:
[root@hyperhost ~]$ qemu-img-hw convert -p -f zvhd -O qcow2 xen_win2012_C.vhd /dev/vmpool-1/xen_win2012
    (100.00/100%)

# 检查格式:
[root@hyperhost ~]$ qemu-img-hw info /dev/vmpool-1/xen_win2012
image: /dev/vmpool-1/xen_win2012
file format: qcow2
virtual size: 20G (21474836480 bytes)
disk size: 0
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false
    refcount bits: 16
    corrupt: false

4、配置驱动

virtio-win下载链接

# 在宿主机上下载一个rpm包(下载最新版):
[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

# 本地安装:
[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平台之前,可以使用工具压缩镜像大小:

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

上传OpenStack平台:

[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>


--property os_type=windows      # 指明镜像的操作系统类型,有助于正确显示系统时间
--property hw_qemu_guest_agent=yes       # 表明镜像安装了qga,宿主机生成时会自动创建设备与之连接通信

标签:virtio,img,Windows,xen,hw,win2012,Xen2kvm,迁移,qemu
From: https://www.cnblogs.com/wang272/p/xen2kvm_Windows_virtual_machine_migration.html

相关文章

  • 使用docker搭建drogon windows10,linux,mac下开发环境
    2023年10月13日14:52:26本机环境Windows10专业版22H2操作内核19045.2965如果直接在windows,linux,mac上直接搭建环境确实有一点难度,之前drogon官方并未提供官方镜像,现在有了docker镜像确实方便了,其实我是最近才有简述安装dockerdesktop,windows的虚拟化有2个方案hyper-v和w......
  • Windows Server 2016 OVF, updated Oct 2023 (sysin) - VMware 虚拟机模板
    WindowsServer2016OVF,updatedOct2023(sysin)-VMware虚拟机模板2023年10月版本更新,现在自动运行sysprep,支持ESXiHostClient部署请访问原文链接:https://sysin.org/blog/windows-server-2016-ovf/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org现在......
  • Windows Server 2019 OVF, updated Oct 2023 (sysin) - VMware 虚拟机模板
    WindowsServer2019OVF,updatedOct2023(sysin)-VMware虚拟机模板2023年10月版本更新,现在自动运行sysprep,支持ESXiHostClient部署请访问原文链接:https://sysin.org/blog/windows-server-2019-ovf/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgWind......
  • 【Python微信机器人】第一篇:在windows11上编译python
    前言我打算写一个系列,内容是将python注入到其他进程实现inlinehook和主动调用。本篇文章是这个系列的第一篇,后面用到的案例是注入python到PC微信实现基本的收发消息。文章着重于python方面的内容,所以对于微信找收发消息的call不会去讲过程,有兴趣的可以直接百度搜PC微信逆向。我......
  • Windows Server 2016 Standard RemoteApp应用发布配置举例
    RemoteApp应用发布介绍RemoteApp是微软在WindowsServer2008之后,在其系统中集成的一项服务功能,用户可以通过远程桌面访问远端服务器的桌面与程序,客户端本机在无须安装操作系统与应用程序的情况下也能正常使用远端服务器发布的各种桌面与应用。而在Windows2016中RemoteApp已......
  • windows 11不能锁屏了, Win + L无反应
    windows10、windows11不能锁屏了,Win+L无反应您好,了解到您在使用时遇到问题。请您尝试分别按Win键和L键,查看是否有效。然后,请您打开开始,点击用户头像,查看有无锁定的选项。如果有,请尝试点击后能否锁屏。另外,请您尝试以下方法,查看能否解决问题。由于以下方法需要更改注......
  • 珍惜免费升级Win11机会!微软宣布放弃Windows 10时间:还有2年
    对于微软来说,不升级Windows11的用户,就是最大的阻碍,如果你还坚守Windows10,那么不好意思了。Windows10支持将于2025年10月14日结束,用户正好有两年时间升级硬件并安装Windows11。整整两年后(距今730天),微软将发布Windows10家庭版和专业版的最后一次安全更新。这意味着Windows......
  • windows根据条件判断,重启网卡
    @echooffTITLE网络检测time/T>ping.txtpingwww.baidu.com-n1>>ping.txtfindstr/n"主机"ping.txtif%errorlevel%==0(rem网卡重启netshinterfacesetinterface"以太网"disablednetshinterfacesetinterface"以太网"en......
  • windows C++ 环境配置完整记录
    今日尝试在windows上配置C++编程环境,比Linux麻烦一些,但是搞清楚了也不复杂。大体上参考了vscode的官方教程,这里记录一下所有需要做的事情。基础流程安装vscode以及C/C++插件InstallingtheMinGW-w64toolchain主要利用了MSYS2,是一个在Windows平台上模拟Linux运......
  • 使用NSSM将server注册为windows系统服务说明
    1、如果server目录下有regServerService.bat批处理脚本,直接点击运行就自动注册为系统服务了,完成后在系统服务启动wgcloud-server-release,如果正在窗口模式运行server,那先关闭运行窗口如果没有这个批处理脚本,则继续往下看2、下载nssm-2.24-101-g897c7ad.zip,若已下载过,请忽略3、解压n......