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

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

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

我当前的方法导致 VM 无法在 ESXi 主机上启动。(我尝试在 VirtualBox 4.3 上导入相同的 .ova,VirtualBox 声称 vmdk 的大小为 895 字节,但实际 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 我的.ova 我的.ovf 我的.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

我从以下位置找到了第 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>

答案1

最简单的方法是 p2v 转换https://www.vmware.com/products/converter之后,您只需调整网络等细节即可。如果我必须转换数百台虚拟机,我会选择您的方法,对于其他任何事情,只需使用转换器即可。

相关内容