proxmox

Proxmox is a great piece of software to manage your VM's and Linux Containers

installation images can be put in

/var/lib/vz/template/iso

check vm configuration

cat /etc/pve/qemu-server/103.conf

create zfs volume

zfs create -V 100G [zfspl]/[dataset]

add zfs volume to vm

qm set 103 -virtio1 zfspool:vm-103-disk-1

add zfs volume as virtio scsi device to vm

qm set 105 --scsihw virtio-scsi-pci --scsi9 vmdata:vm-105-disk-8

remove volume from vm

qm unlink 103 --idlist virtio1

Sync a vm via zfs snapshot to another physical machine

pve-zsync sync --source [vmid] --dest [receiving physical host]:zpool/[dataset] --name somevm --maxsnap 1 --method ssh --source-user root --dest-user root

Import zfs snapshot as zfs volume for pve usage

zfs send [zfs pool name]/[dataset]/vm-101-disk-2@rep_some_vm_2022-05-03_17:18:37 |zfs receive [zfs pool name]/vm-101-disk-2

Copy the pve vmconfig to the right dir

cp /var/lib/pve-zsync/[dataset name]/101.conf.qemu.rep_rep_some_vm_2022-05-03_17:18:37  /etc/pve/nodes/[pve node name]/qemu-server/101.conf

Edit the vmconfig to update the disk path

vim /etc/pve/nodes/[pve node name]/qemu-server/101.conf

You can a snapshot of a proxmox VM-disk (zvol). First you have to make the volumes visible.

sudo zfs set snapdir=visible zpool1/nextcloud

now you can mount it

mount /dev/zvol/zpool1/nextcloud/vm-109-disk-1 /mnt/nxc

.part files are the partitions

Do a direct vzdump over ssh to another machine

vzdump 101 --stdout | ssh root@server01 "cat > /zfspl1/somedataset/vmname" 

import that vzdump on the other side

cat /zfspl1/somedataset/vmname |qmrestore --storage zfspl1 - 103