Here is a tutorial on how to use
zfs send and
zfs recv to migrate a virtual machine (VM) from one system to another:
- On the source system, create a snapshot of the ZFS file system that contains the VM:
zfs snapshot pool/filesystem@snapshot
- Send the snapshot to the destination system over the network:
zfs send pool/filesystem@snapshot | ssh destination "zfs recv pool/filesystem"
- On the destination system, list the received snapshot to verify that it was received successfully:
zfs list -t snapshot
- (Optional) If the VM is running on the source system, you can stop it before sending the snapshot to ensure that the VM is in a consistent state.
- (Optional) If the VM is a Linux system, you may need to update the boot loader (e.g. GRUB) on the destination system to ensure that the VM can boot properly after the migration.