For Proxmox with zfs filesystem, we can utilize zfs to migrating a VM to another Proxmox host with minimal downtime. As long the target also use zfs file sistem. You can read more about zfs on this link.
With pipe viewer (PV) we also can limit the bandwith amount when performing migration using zfs send and receive.
This is how to perform the migration
- Configure ssh key-less from node source to node target
- Check the vm disk in in zfs
- Make sure pv installed
#sudo apt-get install pv
- Snapshot the VM disk for initial data
#zfs snap [pool/data/vm-id-disk-1]@snapshot-name
- Send initial zfs data to the Proxmox host target. In this example we limit the transfer bandwith to 25Mb
#zfs send -vc [pool/data/vm-202-disk-1]@snapshot-name | pv -q -L 25M| ssh node-target zfs recv -s [pool/data/vm-202-disk-1]@snapshot-name
- Shutdown the vm to make sure there is no data changes to perform final disk migration and create second snapshot for the VM disk
#zfs snap [pool/data/vm-202-disk-1]@snapshot-name2
- Send inital and second snapshot of the vm disk to target node.
#zfs send -i [pool/data/vm-202-disk-1]@snapshot-name [pool/data/vm-202-disk-1]@snapshot-name2 | pv -q -L 25M | ssh node-target zfs recv -s [pool/data/vm-202-disk-1]@snapshot-name
- Send the vm config to the node-target
#scp /etc/pve/nodes/node-source/qemu-server/202.conf node-target:/etc/pve/nodes/node-target/qemu-server/202.conf
- Start the vm on the new host.
Hope this help.