Export VM from Proxmox

Solution 1:

You may not be able to export an entire VM to another hypervisor, but you can at least export the disk(s):

With VirtualBox:

First, if the disk is not a "raw" type, then run the following on the KVM hypervisor/server:

qemu-img convert -f qcow2 kvm_source.img -O raw kvm_destination.img

Then, from VirtualBox:

VBoxManage convertfromraw   <filename> <outputfile>
                            [--format VDI|VMDK|VHD]
                            [--variant Standard,Fixed,Split2G,Stream,ESX]
                            [--uuid <uuid>

With KVM:

qemu-img convert -O vdi kvm_source.img vbox_destination.vdi

No promises because I've never had to do this myself, but they should work. Also, I would put my money on the KVM solution, personally...


Solution 2:

Proxmox supports two kinds of virtualization technologies, namely full virtualization and container. There are several well known full virtualization productions such as KVM, Xen, and Vmware while container prodcutions includes lxc and OpenVZ. Proxmox only supports KVM and OpenVZ at the moment. So I think your problem is the same as "how to convert a KVM VM to virtualbox or vmware VM". As far as I know, there is not a easy way to convert a KVM vm to a vmware VM. Just Google it by yourself.

Solution 3:

This answer is incomplete, but it should help get you started.

I want to export the vm from proxmox to virtualbox or vmware. Is it possible ?


How ?

The exact method really depends on how your VM is stored. Assuming you have a simple setup with 1 computer acting as both the hypervisor and the storage.

  • ssh to the hypervisor (or otherwise get a shell). You will probably need to be root for commands later
  • Determine how your VM is stored
    • File on disk, eg qcow, vmdk etc will typically be in /var/lib/vz/images
    • On a logical volume use lvs to list the logical volumes

You can now copy the files somewhere else and convert them using qemu-img convert per Soviero's response. If you're behind a firewall you might need to pipe data in reverse via ssh

As an example I needed to move some VM's from one hypervisor to another. Both were using logical volumes to store the raw images so I did the following

source# lvs --units b  2>/dev/null | grep vm-111
  vm-111-disk-1 vglocal01  -wi-ao---  17179869184B

destination# lvcreate -L 17179869184b -n vm-111-disk-1 vg_vms

source# dd if=/dev/vglocal01/vm-111-disk-1 | ssh destination dd of=/dev/vg_vms/vm-111-disk-1