我希望能够将基于 KVM 的 VM 导出到 ESXi 5.1/5.5 主机。
我当前的方法导致 VM 无法在 ESXi 主机上启动。(我尝试在 VirtualBox 4.3 上导入相同的 .ova,VirtualBox 声称 vmdk 的大小为 895 字节,但实际 vmdk 接近 2GB)。
以下是我采取的步骤:
- 停止 KVM 虚拟机
- qemu-img 转换 -O vmdk my.qcow2 -o adapter_type=lsilogic,subformat=streamOptimized,compat6 my.vmdk
- 生成 my.ovf
- printf'\x03'|dd conv=notrunc of=my.vmdk bs=1 seek=$((0x4))
- tar 我的.ova 我的.ovf 我的.vmdk
- 在 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之后,您只需调整网络等细节即可。如果我必须转换数百台虚拟机,我会选择您的方法,对于其他任何事情,只需使用转换器即可。