作为个人学习笔记分享,有任何问题欢迎交流!
1. 通过SSH连接到vmware的服务器上,在/vmfs/volumes/目录下找到虚拟机的磁盘文件:
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. libvirt.xml来自vmware,主要参考它的disk信息,磁盘路径修改为centos-H-flat.vmdkd的绝对路径。libvirt.xml.back来自原来实例,主要参考它关于一些外设的描述信息,网络等。原来实例关于ramdisk、console.log、kernel的描述全部删除。
8. 下面是一个经过修改后可以运行的XML:
<domain type='kvm'>
<name>instance-00000001</name>
<uuid>701d6341-1a10-4d5d-8b7f-9d8e1c89b88c</uuid>
<memory>1048576</memory>
<currentMemory>1048576</currentMemory>
<vcpu>1</vcpu>
<vcpu>1</vcpu>
<os>
<type arch='x86_64' machine='pc-1.2'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<devices>
<emulator>/usr/bin/kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='raw' cache='none'/>
<source file='/var/lib/nova/instances/instance-00000001/centos-H-flat.vmdk'/>
<target dev='hda' bus='ide'/>
<!--(注:采用普通的驱动,即硬盘和网卡都采用默认配置情况下,硬盘是 ide模式,对应hda。采用 virtio驱动后,硬盘工作是SCSI模式下,对应是sda,在KVM中用vda代替。)-->
<address type='drive' controller='0' bus='0' unit='0'/>
</disk>
<controller type='ide' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
</controller>
<interface type='bridge'>
<mac address='fa:16:3e:09:15:47'/>
<source bridge='br100'/>
<model type='virtio'/>
<filterref filter='nova-instance-instance-00000001-fa163e091547'>
<parameter name='DHCPSERVER' value='192.168.44.3'/>
<parameter name='IP' value='192.168.44.2'/>
</filterref>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'>
<listen type='address' address='0.0.0.0'/>
</graphics>
<video>
<model type='qxl' vram='131072' heads='1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</memballoon>
</devices>
</domain>
参考资料:
http://www.iyunv.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/
版权声明:本文为博主原创文章,未经博主允许不得转载。 |