1. 前言
本文主要讲解如何把VMware的虚拟机向KVM迁移。
VMware虚拟机向KVM迁移,最重要的步骤就是虚拟磁盘格式的转换和新硬件环境的适配。如果能成功迁移,那么该虚拟机就可以在其它基于KVM虚拟化技术的平台上运行,比如OpenStack。
最终成果:
把vmware的虚拟机迁移到KVM平台。
部署前提条件:
- 熟悉Linux基本的命令行操作
- 具有系统的root账号权限或者sudo权限
- 已经拥有vmware虚拟机磁盘文件
- Linux系统上已经安装kvm套件
组件介绍:
- Ubuntu 20.04 或 CentOS 操作系统
- qemu-utils:提供
qemu-img
转换工具,把vmware虚拟磁盘格式转换为KVM格式 - VNC客户端:需要在测试终端上安装VNC客户端。Linux不需要安装该组件。
2. 把VMware的虚拟硬盘文件转换为KVM格式
我们知道VMware的虚拟硬盘文件的后缀名为:vmdk
本教程中,将会用该文件作演示:CentOS7.vmdk
我们来看看该文件的信息:
ll -h CentOS7.vmdk
输出结果:
-rw-rw-r-- 1 test test 1.7G 1月 22 2021 CentOS7.vmdk
可以看到该文件的大小为1.7G。
接下来,我们将要把VMware的虚拟磁盘格式vmdk转换为KVM的qcow2格式:
sudo qemu-img convert -O qcow2 CentOS7.vmdk /var/lib/libvirt/images/CentOS7.qcow2
如果没有输出任何信息,就表示转换成功,我们来看看转换后的文件:
由于普通账户无权限查看 目录/var/lib/libvirt/images/
,该目录是KVM虚拟硬盘文件的默认目录。
先切换到root用户
su -
ll -h /var/lib/libvirt/images/CentOS7.qcow2
输出结果:
-rw-r--r-- 1 root root 1.7G 1月 22 09:13 /var/lib/libvirt/images/CentOS7.qcow2
可以看到,转换出来的文件同样是1.7G。
下一步是测试该虚拟磁盘文件。
3. 测试从vmdk转换出来的qcow2文件是否可用
先查看该虚拟磁盘的信息:
qemu-img info /var/lib/libvirt/images/CentOS7.qcow2
输出结果:
image: /var/lib/libvirt/images/CentOS7.qcow2
file format: qcow2
virtual size: 40 GiB (42949672960 bytes)
disk size: 1.61 GiB
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
refcount bits: 16
corrupt: false
可以看到,该虚拟硬盘大小为40G。
导入KVM虚拟机,内存4096M,2核CPU,VNC端口号5911:
virt-install --name=centos7 --ram=4096 --vcpus=2 --os-type=linux --os-variant=centos7.0 --network default,model=virtio --graphics=vnc,password=linuxrumen.com,port=5911,listen=0.0.0.0 --noautoconsole --accelerate --import --disk path=/var/lib/libvirt/images/CentOS7.qcow2,device=disk,format=qcow2,bus=virtio,cache=writeback,size=40
看见以下信息即表示创建成功:
我们使用VNC客户端连接该KVM虚拟机的显示器看看:
我们发现,这样启动其实并不行,启动失败,进入dracut
模式。
测试失败,原因是我们的硬件环境发生了变化, initramfs 和 initrd需要重建。
查看KVM虚拟机列表:
virsh list --all
关于虚拟机:
virsh destroy centos7
删除虚拟机的配置文件,保留磁盘文件:
virsh undefine centos7
由于我的镜像是CentOS 7,所以先下载好CentOS 7的光盘镜像,用于重建initramfs和initrd,放入目录/var/lib/libvirt/images/
ll -h /var/lib/libvirt/images/CentOS-7-x86_64-Minimal-2003.iso
-rw-r--r-- 1 libvirt-qemu kvm 1.1G 1月 22 09:54 /var/lib/libvirt/images/CentOS-7-x86_64-Minimal-2003.iso
可以看到该文件大小为1.1G,是CentOS7的安装光盘。
接下来我们使用该光盘镜像启动虚拟机,记得加入从VMware转换过来的qcow2文件
virt-install --name=centos7_2003 --ram=4096 --vcpus=2 --virt-type=kvm --os-type=linux --os-variant=centos7.0 --network default,model=virtio --graphics=vnc,password=linuxrumen.com,port=5911,listen=0.0.0.0 --noautoconsole --accelerate --cdrom=/var/lib/libvirt/images/CentOS-7-x86_64-Minimal-2003.iso --disk path=/var/lib/libvirt/images/CentOS7.qcow2,device=disk,format=qcow2,bus=virtio,cache=writeback,size=40
迅速启动VNC客户端连接该虚拟机的显示器。进入Rescue模式。
然后通过yum重新安装initramfs 和initrd即可。
4. 总结
通过本文,您应该可以了解到如何把VMware的虚拟机迁移到KVM平台了吧。其实,转换很简单,最关键的是解决转换后虚拟机的兼职性问题。如果有更好的方法,请留言。
评论前必须登录!
注册