Назад | Перейти на главную страницу

Что нужно сделать для экспорта виртуальной машины из KVM в ESXi?

Я хочу иметь возможность экспортировать виртуальную машину на основе KVM на хост ESXi 5.1 / 5.5.

Мои текущие методы заканчиваются тем, что виртуальная машина не может загружаться на хосте ESXi. (Я попытался импортировать тот же .ova в VirtualBox 4.3, и здесь VirtualBox утверждает, что размер vmdk составляет 895 байт, хотя фактический vmdk близок к 2 ГБ).

Я делаю следующие шаги:

  1. Остановите виртуальную машину KVM
  2. qemu-img convert -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 с помощью File -> Deploy OVF Template

Развертывание прошло успешно, но машина не загружается.

Я использую:

VirtualBox, который я пробовал, - 4.3.10 на хосте Windows 7.

Любые подсказки будут оценены.

Спасибо.

Кажется, что требуется шаг 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>

Самый простой способ сделать это - преобразование p2v. https://www.vmware.com/products/converter. После этого вам просто нужно настроить такие детали, как сеть, и все готово. Я бы пошел вашим путем, если бы мне пришлось конвертировать сотни виртуальных машин, для чего-то еще просто используйте конвертер.