将虚拟机从KVM导出到ESXi的步骤是什么?

我希望能够将基于KVM的虚拟机导出到ESXi 5.1 / 5.5主机。

我当前的方法最终导致VM无法在ESXi主机上引导。 (我已经尝试在VirtualBox 4.3上导入相同的.ova,这里VirtualBox声称vmdk的大小是895bytes,虽然vmdk接近2GB)。

这些是我采取的步骤:

  1. 停止KVM虚拟机
  2. qemu-img转换为-O vmdk my.qcow2 -o adapter_type = lsilogic,subformat = streamOptimized,compat6 my.vmdk
  3. 生成my.ovf
  4. printf'\ x03'| dd conv = notrunc of = my.vmdk bs = 1 seek = $((0x4))
  5. tar my.ova my.ovf my.vmdk
  6. 在vSphere上使用文件 – >部署OVF模板

部署是“成功”,但机器无法启动。

我在用着:

  • F23 x86_64
  • qemu-img版本2.4.1
  • ESXi 5.1
  • vSphere 5.1

我试过的VirtualBox在Windows 7主机上是4.3.10。

任何提示,将不胜感激。

谢谢。

看来,第4步是必需的,直到这个补丁已经被应用: https : //lists.gnu.org/archive/html/qemu-devel/2015-09/msg04514.html

我find了第4步: https : //bugzilla.redhat.com/show_bug.cgi?id = 1299116从这个对话来看,它似乎是在2014年回复的? https://patchwork.ozlabs.org/patch/359685/

摘自my.ovf:描述了一组虚拟磁盘

<OperatingSystemSection ovf:id="101" vmw:osType="otherLinux64Guest"> <!-- TODO make this a configurable string. --> <Info>RHEL 6</Info> </OperatingSystemSection> <VirtualHardwareSection> <Info>1024MB, 1 CPU, 1 disk, 3 NICs - Virtual Machine.</Info> <System> <vssd:ElementName>Virtual Hardware Family</vssd:ElementName> <vssd:InstanceID>0</vssd:InstanceID> <vssd:VirtualSystemIdentifier>GLS</vssd:VirtualSystemIdentifier> <!-- possible types: kvm Linux:KVM virtualbox-2.2 - VirtualBox 4.3.10. vmx-08 - ESXi 5.0 vmx-07 vmx-04 --> <vssd:VirtualSystemType>vmx-08</vssd:VirtualSystemType> </System> <Item> <rasd:Address>0</rasd:Address> <rasd:Caption>scsiController0</rasd:Caption> <rasd:Description>SCSI Controller</rasd:Description> <rasd:ElementName>scsiController0</rasd:ElementName> <rasd:InstanceID>5</rasd:InstanceID> <rasd:ResourceSubType>lsilogic</rasd:ResourceSubType> <rasd:ResourceType>6</rasd:ResourceType> </Item> <Item> <rasd:AddressOnParent>0</rasd:AddressOnParent> <rasd:Caption>disk1</rasd:Caption> <rasd:Description>Disk Image</rasd:Description> <rasd:ElementName>disk1</rasd:ElementName> <rasd:HostResource>/disk/vmdisk1</rasd:HostResource> <rasd:InstanceID>7</rasd:InstanceID> <!-- The Parent is the Instance ID of the controller, here the SCSI controller. --> <rasd:Parent>5</rasd:Parent> <rasd:ResourceType>17</rasd:ResourceType> <!-- TODO should write-though be optionally be requested in vmware with vmw:Config --> </Item> 

最简单的方法是p2v转换https://www.vmware.com/products/converter 。 之后,你只需要调整networking等细节,你就完成了。 我会走你的路,如果我不得不转换数百个虚拟机,其他任何东西只是使用转换器。

  • Cli可以在这里findhttps://developercenter.vmware.com/web/sdk/60/vcenter-converter