迁移vmware VM到KVM下的方法

作为个人学习笔记分享,有任何问题欢迎交流!


1. 通过SSH连接到vmware的服务器上,在/vmfs/volumes/目录下找到虚拟机的磁盘文件:

迁移vmware VM到KVM下的方法_第1张图片

centos-H-flat.vmdk:如果你用“现在分配所有的磁盘空间”选项创建vmware虚拟机时,Flat文件会被使用,Flat.vmdk文件包含了所有数据,可以直接转换成qcow2。

Centos-H-flat.vmdk文件为raw格式,所以可以直接拷贝至KVM的实例下面,作为KVM实例的磁盘。

centos-H.vmx:是定义vmware虚拟机的文件,相当于KVM实例的xml文件的作用。


2. 可以通过scp拷贝centos-H-flat.vmdk 和centos-H.vmx,到openstack中已准备好的一个实例的文件目录里,该实例为redhat:


3. 备份好原来的XML文件:cp libvirt.xml libvirt.xml.back


4. 安装virt-goodies:

apt-get installvirt-goodies


5. 用vmware2libvirt把vmware的xmv转换成xml:

Vmware2libvirt –f centos-H.vmx > libvirt.xml


6. 现在就只剩下修改虚拟机的XML文件了,先virsh destroy instance-xxxxxxxx,参照libvirt.xml和libvirt.xml.back,在virsh edit instance-xxxxxxxx中修改,修改后virsh start intance-xxxxxxx. 实例启动成功后,把 virsh editinstance-xxxxxxx的结果复制到libvirt.xml中。


7. l ibvirt.xml来自vmware,主要参考它的disk信息,磁盘路径修改为centos-H-flat.vmdkd的绝对路径。libvirt.xml.back来自原来实例,主要参考它关于一些外设的描述信息,网络等。原来实例关于ramdisk、console.log、kernel的描述全部删除。

8. 下面是一个经过修改后可以运行的XML:


  instance-00000001
  701d6341-1a10-4d5d-8b7f-9d8e1c89b88c
  1048576 
  1048576
  1
  1
  
    hvm
    
  
  
    
  
  
  destroy
  restart
  destroy
  
    /usr/bin/kvm
    
      
      
      

      

参考资料:

http://www.linuxidc.com/Linux/2012-09/70027.htm

http://blog.mymediasystem.net/uncategorized/vmware-kvm-migration-guide/

http://blog.bodhizazen.net/linux/convert-vmware-vmdk-to-kvm-qcow2-or-virtualbox-vdi/




你可能感兴趣的:(openstack)