Welcome!
If you already have a ZFS pool, you can arrange for Incus to use a dataset in that pool.
Here’s an educational example. I created a VM and in there I’ll create a ZFS pool over a loopback file (it’s easier for me), and from the zpool I’ll arrange so that Incus uses a separate dataset. The important stuff is what to answer when you run sudo incus admin init
so that you are prompted for a dataset name. Then Incus will only touch it’s own dataset and that’s it.
root@myvm:~# fallocate -l 5G /VOLUME
root@myvm:~# losetup /dev/loop2 /VOLUME
root@myvm:~# zpool create zfsdisk /dev/loop2
root@myvm:~# zfs list
NAME USED AVAIL REFER MOUNTPOINT
zfsdisk 102K 4.36G 24K /zfsdisk
root@myvm:~# incus admin init
Would you like to use clustering? (yes/no) [default=no]:
Do you want to configure a new storage pool? (yes/no) [default=yes]:
Name of the new storage pool [default=default]:
Name of the storage backend to use (zfs, dir) [default=zfs]:
Create a new ZFS pool? (yes/no) [default=yes]: no
Name of the existing ZFS pool or dataset: zfsdisk/incus
Would you like to create a new local network bridge? (yes/no) [default=yes]:
What should the new bridge be called? [default=incusbr0]:
What IPv4 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]:
What IPv6 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]:
Would you like the server to be available over the network? (yes/no) [default=no]:
Would you like stale cached images to be updated automatically? (yes/no) [default=yes]:
Would you like a YAML "init" preseed to be printed? (yes/no) [default=no]:
root@myvm:~# zfs list
NAME USED AVAIL REFER MOUNTPOINT
zfsdisk 588K 4.36G 24K /zfsdisk
zfsdisk/incus 288K 4.36G 24K legacy
zfsdisk/incus/buckets 24K 4.36G 24K legacy
zfsdisk/incus/containers 24K 4.36G 24K legacy
zfsdisk/incus/custom 24K 4.36G 24K legacy
zfsdisk/incus/deleted 144K 4.36G 24K legacy
zfsdisk/incus/deleted/buckets 24K 4.36G 24K legacy
zfsdisk/incus/deleted/containers 24K 4.36G 24K legacy
zfsdisk/incus/deleted/custom 24K 4.36G 24K legacy
zfsdisk/incus/deleted/images 24K 4.36G 24K legacy
zfsdisk/incus/deleted/virtual-machines 24K 4.36G 24K legacy
zfsdisk/incus/images 24K 4.36G 24K legacy
zfsdisk/incus/virtual-machines 24K 4.36G 24K legacy
root@myvm:~#
GPU Passthrough requires to first figure out whether your hardware supports it. It’s a combination of BIOS/firmware, motherboard, CPU and GPU. Once you know that GPU Passthrough is supported on paper (your motherboard’s GPU or that other eGPU), you would need to experiment with a tutorial like the one you posted above. That is, just with your Linux distribution try to make GPU Passthrough work as simply as possible. Perhaps a fresh install with a separate disk?
There are also other communities that can help, such as Reddit - Dive into anything
I am also interested in this in case you get the necessary insight.
Once you know that GPU Passthrough works in the simplest possible setup, then you can re-implement into Incus.