TL;DR
ZVOL = block device: dd if=/dev/zvol/pool/vol of=vm.raw. Snapshot first if the VM is running.
On Proxmox a VM disk on ZFS is a ZVOL (rpool/data/vm-101-disk-0), not a file. To copy it to another hypervisor or a USB stick, dump a RAW.
Thread: Import/convert/export RAW images to ZFS volume.
Snapshot and dd
If the VM is running, freeze the disk with a snapshot and read the snap (the @snap ZVOL shows up under /dev/zvol/…):
| |
VM off, you can read the live zvol:
| |
bs=1M matters: the 512 B default takes forever.
qemu-img (qcow2 / vmdk)
| |
Or straight from the zvol:
| |
The other way (RAW → ZVOL)
| |
-s = sparse. The RAW must not be larger than the zvol.
See also: basic commands.