迁移VMWare虚拟机到KVM
一、手动迁移 VMwareWorkstation/Player 上的虚拟机到 KVM
从物理机的文件系统看,VMware虚拟机是由一组文件组成。这些文件可能集中存储在存储服务器上,如 VMware ESX/ESXi,也可能存储在本地,如 VMware Workstation/Player。关闭虚拟机的情况下,这些文件内容不会改变。所以我们可以用手动迁移的方法,拷贝这些文件到 KVM 主机并且转换这些文件的格式或内容,使 libvirt 能够管理和识别。这样就完成了 VMware 虚拟机的手动迁移。
1.1、迁移步骤
在 VMware 虚拟机众多的文件中,最重要的是虚拟机镜像文件 .vmdk 和系统配置文件 .vmx。所以手动迁移就是要分别处理这两种文件。需要将VMware虚拟机镜像文件 .vmdk 和系统配置文件 .vmx转化为KVM虚拟机镜像文件 .img和系统配置文件 .xml。
- 合并分散的 vmdk 镜像文件。在 VMware Workstation 上创建虚拟机的时候,可以选择存储虚拟磁盘为一个文件或多个文件。但是 libvirt 不能管理多个文件组成的磁盘镜像,所以需要在迁移前合并这些文件为一个单独的文件。VMware Workstation 自带了离线的磁盘管理工具 vmware-vdiskmanager.exe 来合并 vmdk 文件
- qemu-img 转换 vmdk 的文件格式。KVM 主机上安装 qemu-img 包,可以察看并转换 vmdk 文件到 raw/qcow2 文件格式。
- 创建 xml 文件。VMware 的系统配置文件是 vmx,必须转换成 libvirt 能够识别的 xml 格式。一种方法是根据 VMware 虚拟机的硬件信息,手动创建一个新的 xml 文件;另一种方法是利用工具辅助转换 vmx 文件。比如 virt-goodies/vmware2libvirt 工具,可以从下面 link 下载安装 virt-goodies:https://launchpad.net/ubuntu/+source/virt-goodies/0.4
1.2、详细的迁移步骤
1. 登录宿主机 Windows XP 系统,在 VMware Workstation 上检查 SLES11SP1 虚拟机,如果安装了 VMware Tools,以 root 用户运行vmware-uninstall-tools.pl 卸载它。
2. 关闭该虚拟机。
3. 检查虚拟机的镜像文件。本例中,虚拟机的镜像存储在多个 vmdk 文件中,所以需要在迁移前合并他们。用 vmware-vdiskmanager.exe 合并多个 vmdk 文件。
DOS命令终端执行可执行文件E:\Program Files\VMwareWorkstation>vmware-vdiskmanager.exe,其中E:\ProgramFiles\VMware Workstation为VM的安装路径。
vmware-vdiskmanager.exe -r “D:\VM\OVS2\Ubuntu H 64位.vmdk” -t 0 “D:\VM\OVS2\ubuntu-single.vmdk”
4、生成KVM虚拟机镜像
sudo qemu-img convert -f vmdk -O qcow2 ubuntu-single.vmdk ubuntu-single.img
5、生成KVM虚拟机xml文件
需要使用virt-goodies/vmware2libvirt工具,可以从下面 link下载安装 virt-goodies:https://launchpad.net/ubuntu/+source/virt-goodies/0.4
./vmware2libvirt -f /home/minelab/www1234/Ubuntu.vmx > /home/minelab/www1234/Ubuntu.xml
转换 vmx 文件。virt-goodies/vmware2libvirt脚本是用来做 vmx 到 xml 转换的简单工具。但是由于它很长时间没有升级,而且不同的 Linux 发行版对 KVM/libvirt 安装方式不同,vmware2libvirt 工具转换后的 xml 文件需要手动更改或添加某些配置。
注意不同 Linux 发行版 qemu-kvm 的路径不同,RHEL6.1 下是 /usr/libexec/qemu-kvm。
把虚拟机的镜像文件路径及名字改成 /home/images/migration/Ubuntu.img。
vmware2libvirt 只转换第一块网卡,如果有多块网卡需要手动添加。
vmware2libvirt 不转换 CDROM、Floppy、USB 和显示设备,需要手动为 KVM 虚拟机添加。
磁盘和网卡采用默认的驱动程序,因为 Windows 系统没有预装 virtio 驱动
6、打开KVM管理器,修改配置
sudo virsh define Ubuntu.xml
Storage format需要改为qcow2
7、打开虚拟机
参考文献:http://www.net130.com/cms/pub/special/special_virtual/special_virtual_fa/2011_11_14_30322_4.htm