I would be interested in hearing more about this setup. Would you care to do a post on this someday?
Oh it was not that difficult but it was certainly involved.
In order to use ZFS as storage you must first create a ZFS pool and mount the pool somewhere, then ensure the mode of the mounted directory is
root:qubes 770 g+s, then you must create a
qvm-pool using the driver
file, pointed at the mountpoint of your pool.
Then you can set the default driver to be your
file-based Qubes storage pool.
After you have done this, you can begin creating VMs backed by the new pool. Moving VMs from your LVM-based pool to your file-based pool is not exactly in scope within this explanation, but it can be achieved by using
qvm-clone or other tricks.
Quite honestly let me say that ZFS support should be built into Qubes as a proper storage pool driver. The file-based driver has bad shortcomings.
Thanks for the explanation. I’ll try and fill in the gaps once I try this.
Qubes 4.2 will make it impossible to use ZFS with Qubes, as there is no ZFS storage driver, and the (buggy) file storage driver will be retired (the file-reflink driver would cause multiple gigabytes to be copied every time a VM is started, which makes the driver worthless in practice).
I’ve offered to fund the development of such a driver, with no successful response.
I would also love to hear more about ZFS, since, as per my non-extensive research, it would be the only pool level enabled deduplication that we could benefit of as right now, where using the file storage would be a big no.
Non-extensive research on pool level deduplication: